310 lines
15 KiB
JavaScript
310 lines
15 KiB
JavaScript
export const SECTION_ITEMS = [
|
||
{ id: 'what-worlds-are', label: 'What Worlds are' },
|
||
{ id: 'worlds-vs-other-surfaces', label: 'Worlds vs other surfaces' },
|
||
{ id: 'building-a-world', label: 'Building a World' },
|
||
{ id: 'attached-content-and-sections', label: 'Attached content and sections' },
|
||
{ id: 'preview-publishing-and-promotion', label: 'Preview, publishing, and promotion' },
|
||
{ id: 'recurrence-and-new-editions', label: 'Recurrence and new editions' },
|
||
{ id: 'media-seo-and-theme-presets', label: 'Media, SEO, and theme presets' },
|
||
{ id: 'best-practices', label: 'Best practices' },
|
||
{ id: 'common-mistakes', label: 'Common mistakes' },
|
||
{ id: 'faq', label: 'FAQ' },
|
||
{ id: 'troubleshooting', label: 'Troubleshooting' },
|
||
{ id: 'related-help', label: 'Related help' },
|
||
]
|
||
|
||
export const HERO_METRICS = [
|
||
{
|
||
label: 'Core purpose',
|
||
value: 'Editorial campaign hub',
|
||
note: 'A World is a curated destination for seasonal, event, tribute, or campaign storytelling across multiple content types.',
|
||
},
|
||
{
|
||
label: 'Operational strength',
|
||
value: 'Attached content with structure',
|
||
note: 'Worlds are built from explicit attachments, section order, section visibility, and preview-first editorial review.',
|
||
},
|
||
{
|
||
label: 'Golden rule',
|
||
value: 'Curate, then publish',
|
||
note: 'A World should feel intentional before it goes live. Treat preview, section checks, and promotion scope as part of the workflow.',
|
||
},
|
||
]
|
||
|
||
export const WHAT_WORLDS_ARE_ITEMS = [
|
||
{
|
||
title: 'Worlds are not filters',
|
||
body: 'A World is not just a search result, category page, or tag landing page. It is an editorial surface shaped around a theme, moment, or campaign.',
|
||
},
|
||
{
|
||
title: 'Worlds bundle multiple content types',
|
||
body: 'A single World can attach artworks, collections, creators, groups, news, challenges, events, releases, and cards into one public-facing story.',
|
||
},
|
||
{
|
||
title: 'Worlds are designed for reuse',
|
||
body: 'Recurring campaigns such as Halloween, Pixel Week, or tribute weeks can be rolled forward into new editions instead of rebuilt from scratch.',
|
||
},
|
||
]
|
||
|
||
export const COMPARISON_COLUMNS = [
|
||
{ key: 'topic', label: 'Topic' },
|
||
{ key: 'world', label: 'World' },
|
||
{ key: 'collection', label: 'Collection' },
|
||
{ key: 'group', label: 'Group page' },
|
||
]
|
||
|
||
export const COMPARISON_ROWS = [
|
||
{
|
||
id: 'purpose',
|
||
topic: 'Primary purpose',
|
||
world: 'Run a themed editorial or seasonal campaign with curated modules and promotion logic.',
|
||
collection: 'Organize a set of items into a more focused list or presentation set.',
|
||
group: 'Represent a shared identity, members, and collaboration activity under one collective surface.',
|
||
},
|
||
{
|
||
id: 'composition',
|
||
topic: 'How content is assembled',
|
||
world: 'Explicit attachments are placed into named sections such as featured artworks, creators, events, and news.',
|
||
collection: 'Items are gathered into a collection-first structure rather than a multi-module campaign layout.',
|
||
group: 'Content is shaped by ownership, members, and shared publishing rather than editorial campaign modules.',
|
||
},
|
||
{
|
||
id: 'public-output',
|
||
topic: 'Public output',
|
||
world: 'One hero, one intro, optional CTA and badge, then a controlled set of editorial modules.',
|
||
collection: 'A more focused item grouping surface.',
|
||
group: 'A public identity and activity surface for the collective itself.',
|
||
},
|
||
{
|
||
id: 'promotion',
|
||
topic: 'Promotion role',
|
||
world: 'Can stand alone at its own URL or be promoted on Worlds surfaces and homepage spotlight areas.',
|
||
collection: 'Usually promoted as a collection destination rather than a campaign system.',
|
||
group: 'Promotion is about the Group and its output, not a dedicated campaign moment.',
|
||
},
|
||
{
|
||
id: 'reuse',
|
||
topic: 'Operational reuse',
|
||
world: 'Supports duplication and next-edition workflows for recurring campaigns.',
|
||
collection: 'Usually reused by copying or curating a new collection manually.',
|
||
group: 'Persistent long-term identity, not a short-term edition workflow.',
|
||
},
|
||
]
|
||
|
||
export const BUILD_WORLD_STEPS = [
|
||
{
|
||
title: 'Choose the World type and title',
|
||
description: 'Pick the clearest campaign framing first: seasonal, event, campaign, or tribute. Use a title that still reads well in preview, homepage spotlight, and archive contexts.',
|
||
},
|
||
{
|
||
title: 'Select a theme preset',
|
||
description: 'Theme presets can prefill accent colors, background motif, icon, related tags, and suggested badge or CTA labels, while still allowing manual overrides.',
|
||
},
|
||
{
|
||
title: 'Write the intro and define the identity',
|
||
description: 'Add tagline, summary, description, badge, CTA, and the visual identity needed to make the public page feel coherent.',
|
||
},
|
||
{
|
||
title: 'Attach curated content',
|
||
description: 'Use the relation picker to search supported entity types, assign them to sections, mark featured items, and add context labels when needed.',
|
||
},
|
||
{
|
||
title: 'Adjust section order and visibility',
|
||
description: 'Control both where modules appear and whether they appear at all. A World should show only the sections that help the campaign land cleanly.',
|
||
},
|
||
{
|
||
title: 'Set lifecycle and recurrence',
|
||
description: 'Define status, publish timing, campaign window, featured promotion state, and recurring edition metadata before the page goes live.',
|
||
},
|
||
{
|
||
title: 'Preview before publish',
|
||
description: 'Use the mini preview for in-editor confidence and the full preview page for a public-surface check before publishing or featuring the World.',
|
||
},
|
||
]
|
||
|
||
export const ATTACHMENT_WORKFLOW_ITEMS = [
|
||
{
|
||
title: 'The relation picker is the composition tool',
|
||
body: 'Add relation opens a structured picker with entity type, search, result previews, section assignment, featured state, and optional context labels.',
|
||
},
|
||
{
|
||
title: 'Attachments belong to specific sections',
|
||
body: 'Each attached item is placed intentionally into a section such as featured artworks, curated collections, related events, or themed cards.',
|
||
},
|
||
{
|
||
title: 'Attached rows stay editable',
|
||
body: 'After attachment, relation cards support edit, remove, and reorder actions so the final World reads like deliberate editorial composition rather than a hidden data list.',
|
||
},
|
||
]
|
||
|
||
export const SECTION_ITEMS_DETAIL = [
|
||
{ title: 'Featured artworks', body: 'Standout pieces curated for the World.' },
|
||
{ title: 'Curated collections', body: 'Collections that deepen the theme and reward longer exploration.' },
|
||
{ title: 'Featured creators', body: 'Creators shaping the atmosphere of the moment.' },
|
||
{ title: 'Featured groups', body: 'Collectives, scenes, and crews connected to the campaign.' },
|
||
{ title: 'Related news', body: 'Editorial context, announcements, and stories tied to the World.' },
|
||
{ title: 'Challenge spotlight', body: 'Challenges attached to the campaign or recent participation around it.' },
|
||
{ title: 'Related events', body: 'Upcoming or recent sessions, launches, and live moments.' },
|
||
{ title: 'Release spotlights', body: 'Projects and releases that belong in the campaign space.' },
|
||
{ title: 'Themed cards', body: 'Cards that extend the World identity into designed communication surfaces.' },
|
||
]
|
||
|
||
export const RELATION_TYPE_ITEMS = [
|
||
'Artworks',
|
||
'Collections',
|
||
'Creators',
|
||
'Groups',
|
||
'News articles',
|
||
'Challenges',
|
||
'Events',
|
||
'Releases',
|
||
'Cards',
|
||
]
|
||
|
||
export const LIFECYCLE_ITEMS = [
|
||
{
|
||
title: 'Draft, scheduled, live, and archived thinking',
|
||
body: 'Worlds move through an editorial lifecycle. Drafts are private workspaces, published Worlds can be scheduled or already live, and archive state keeps past editions visible when the campaign has ended.',
|
||
},
|
||
{
|
||
title: 'Featured promotion goes beyond the page itself',
|
||
body: 'When a World is marked for homepage and Worlds spotlight treatment, it moves from a standalone public page into platform-level campaign promotion readiness.',
|
||
},
|
||
{
|
||
title: 'The summary card is operational, not decorative',
|
||
body: 'Use the editor summary to verify lifecycle state, campaign window, theme, recurrence, relation count, enabled sections, and current promotion scope at a glance.',
|
||
},
|
||
]
|
||
|
||
export const RECURRENCE_GUIDANCE = [
|
||
'Turn on recurring mode when the World belongs to a repeatable campaign family such as halloween, retro-month, or pixel-week.',
|
||
'The recurrence key identifies the campaign family. The edition year identifies the current edition within that family.',
|
||
'Duplicate plus new-edition actions exist so editors can roll successful Worlds forward into the next campaign cycle more safely.',
|
||
'Recurring Worlds should not reuse the same recurrence key and edition year pair. Each edition needs its own distinct year value.',
|
||
]
|
||
|
||
export const MEDIA_AND_SEO_GUIDANCE = [
|
||
'Theme presets are acceleration tools, not constraints. Editors can override autofilled colors, motif, icon, tags, badge label, and CTA label at any time.',
|
||
'Cover and OG assets currently use absolute URLs or CDN storage paths. The editor already includes preview support and is prepared for a future shared media picker.',
|
||
'CTA label and URL should represent the real campaign action: explore, join, enter, submit, discover, or a similar world-specific path.',
|
||
'SEO title, SEO description, and OG image should describe the World as a public destination, not as an internal draft.',
|
||
]
|
||
|
||
export const BEST_PRACTICES = [
|
||
'Lead with one strong hero idea instead of trying to make the World cover every possible related surface.',
|
||
'Attach only the content that sharpens the campaign. More relations do not automatically create a better World.',
|
||
'Use section visibility deliberately so empty or weak modules do not dilute the page.',
|
||
'Preview the World before publish, especially when promotion scope or homepage spotlight is involved.',
|
||
'Use recurrence metadata and new-edition workflows for annual campaigns instead of rebuilding the structure manually each year.',
|
||
'Keep CTA, badge, summary, and theme signals aligned so the World feels like one coherent editorial destination.',
|
||
]
|
||
|
||
export const COMMON_MISTAKES = [
|
||
'Treating a World like a generic dump of related content instead of an intentional editorial surface.',
|
||
'Leaving sections enabled just because attachments exist, even when those modules do not strengthen the public story.',
|
||
'Marking a World as featured without checking whether the campaign is truly ready for homepage or spotlight promotion.',
|
||
'Ignoring recurrence fields until the next edition arrives and the campaign family becomes harder to manage.',
|
||
'Using weak asset paths or unreviewed OG values that make the preview feel unfinished.',
|
||
'Confusing Worlds with collections, group pages, or challenges when the real need is a different public surface.',
|
||
]
|
||
|
||
export const FAQ_ITEMS = [
|
||
{
|
||
question: 'What is a World on Skinbase?',
|
||
answer: 'A World is a curated editorial destination for a seasonal moment, event, tribute, or campaign. It combines one strong hero with a controlled set of attached modules and optional promotion across public surfaces.',
|
||
},
|
||
{
|
||
question: 'What can I attach to a World?',
|
||
answer: 'Worlds can attach artworks, collections, creators, groups, news, challenges, events, releases, and cards. Each item is assigned to a specific section so the page stays structured.',
|
||
},
|
||
{
|
||
question: 'Can I preview a World before publishing?',
|
||
answer: 'Yes. The editor includes a mini preview for live confidence and a dedicated full preview page for saved Worlds so editors can check the public result before it goes live.',
|
||
},
|
||
{
|
||
question: 'How is a World different from a collection?',
|
||
answer: 'A collection groups content. A World is a larger editorial campaign surface with multiple module types, lifecycle controls, promotion readiness, and recurrence support.',
|
||
},
|
||
{
|
||
question: 'What does featured promotion mean?',
|
||
answer: 'Featured promotion means the World is eligible for promoted Worlds surfaces and homepage spotlight treatment once it is in the right lifecycle state.',
|
||
},
|
||
{
|
||
question: 'How do recurring Worlds work?',
|
||
answer: 'Recurring Worlds use a recurrence key to identify the campaign family and an edition year to identify the specific edition. Duplicate and new-edition actions help you roll the structure forward.',
|
||
},
|
||
{
|
||
question: 'Can I hide sections even if attachments exist?',
|
||
answer: 'Yes. Section visibility is explicit. A module can remain disabled on the public page even if attached relations exist for that section.',
|
||
},
|
||
]
|
||
|
||
export const TROUBLESHOOTING_ITEMS = [
|
||
{
|
||
title: 'I can’t find the Worlds workspace',
|
||
body: 'Start from Studio and open the Worlds index. If you still do not have access, the issue may be permission-related rather than route-related.',
|
||
linkKey: 'studio_worlds',
|
||
linkLabel: 'Open Worlds workspace',
|
||
},
|
||
{
|
||
title: 'My World does not look right in preview',
|
||
body: 'Review hero copy, attached relations, section visibility, theme overrides, and cover or OG asset paths before publishing.',
|
||
linkKey: 'create_world',
|
||
linkLabel: 'Open create World flow',
|
||
},
|
||
{
|
||
title: 'I’m not sure whether this should be a World',
|
||
body: 'If the need is a multi-module campaign hub with editorial curation and promotion, use a World. If not, the better answer may be a collection, group surface, or another publishing format.',
|
||
linkKey: 'help_cards',
|
||
linkLabel: 'Compare with other creative formats',
|
||
},
|
||
{
|
||
title: 'I can’t publish or feature the World',
|
||
body: 'Check the lifecycle state, campaign dates, and whether the attached content and section controls are ready for a public or promoted surface.',
|
||
linkKey: 'studio_help',
|
||
linkLabel: 'Read Studio workflow help',
|
||
},
|
||
{
|
||
title: 'The attached content feels messy',
|
||
body: 'Trim the relation list, move items into clearer sections, and disable weak modules. Worlds work best when the page is curated, not crowded.',
|
||
linkKey: 'worlds_index',
|
||
linkLabel: 'Browse live Worlds for reference',
|
||
},
|
||
{
|
||
title: 'A route or editor action feels broken',
|
||
body: 'Use support or bug reporting when the problem is not editorial uncertainty but an actual platform issue with the workflow.',
|
||
linkKey: 'report_issue',
|
||
linkLabel: 'Report a problem',
|
||
},
|
||
]
|
||
|
||
export const RELATED_HELP_ITEMS = [
|
||
{
|
||
eyebrow: 'Live help',
|
||
title: 'Studio help',
|
||
body: 'Use the Studio guide when the real question is about workspace context, drafts, publishing behavior, or creator operations beyond Worlds.',
|
||
linkKey: 'studio_help',
|
||
tone: 'sky',
|
||
},
|
||
{
|
||
eyebrow: 'Live help',
|
||
title: 'Upload help',
|
||
body: 'Use Upload help when the blocker is asset preparation, artwork metadata, or the publishing workflow feeding into a World.',
|
||
linkKey: 'upload_help',
|
||
tone: 'amber',
|
||
},
|
||
{
|
||
eyebrow: 'Live help',
|
||
title: 'Cards help',
|
||
body: 'Use Cards help when the question is really about designed communication surfaces that may later be attached to a World.',
|
||
linkKey: 'help_cards',
|
||
tone: 'white',
|
||
},
|
||
{
|
||
eyebrow: 'Live help',
|
||
title: 'Groups help',
|
||
body: 'Use Groups help when the campaign work is tied to shared identity, contributors, collaboration, or group-owned publishing.',
|
||
linkKey: 'groups_help',
|
||
tone: 'white',
|
||
},
|
||
] |