Files
Jinho Jang 96be50d8d0 refactor: make @repo/content the single source for home, get-started & movement page copy (#62)
* docs: add page-copy single-source spec and implementation plan

* feat(content): add typed home section schemas and migrate home copy into content

Add 7 bespoke home* section schemas (+ techStack ctas) to the page section
union and populate content/pages/en/home.json with home copy moved verbatim
from messages.

* refactor(web): source home page copy from @repo/content; drop home namespace from messages

Feed every home section from content via findSection/data props (replacing
next-intl getTranslations), remove the home namespace from messages/en.json,
and add a regression guard plus content-based tests. Render output unchanged.

* docs: add get-started/movement page-copy dedup spec and plan

* feat(content): add get-started & movement section schemas and content docs

Move get-started/movement page copy verbatim into content/pages so it is
single-sourced in @repo/content.

* refactor(web): source get-started/movement copy from content; drop those namespaces from messages

Feed both pages from content via findSection/data props (replacing next-intl),
switch them to content-based metadata, delete pages.getStarted/movement from
messages, and add content-based tests + ownership guard. Render unchanged.

* docs: add navbar-pages CMS copy spec and plan

* feat(content): add navbar page section schemas + Pages docs (book, brand-kit, research, node-programme, lambda-prize, manifesto, media, podcast, broadcast, tech-stack explorer)

* refactor(web): source navbar pages copy from content; drop those namespaces from messages

Migrate book, brand-kit, research (incl. rich-text via a tagged-text renderer),
node-programme, lambda-prize, manifesto, media, podcast, logos-broadcast-network,
and the tech-stack explorer to read copy from content via findSection/data props
and content-based metadata; remove the migrated pages.* namespaces from messages;
update guards + contracts. Render output unchanged.

* feat(web): source activist/coalition pages copy from content (CMS title/description)

Migrate activistBuilder, activistLeaderSteward, and coalitionPartner page
metadata from next-intl messages.pages.* into @repo/content PageCopy JSON,
following the established bookCopy pattern.

- Add activistBuilderCopySectionSchema, activistLeaderStewardCopySectionSchema,
  coalitionPartnerCopySectionSchema to packages/content/src/schemas/pages.ts
  and wire them into the pageSectionSchema discriminated union
- Create content/pages/en/activist-builder.json,
  activist-leader-steward.json, coalition-partner.json with verbatim
  title/description/heading values from the old messages namespace
- Switch all three route pages from createTranslatedPageMetadata to
  createPageMetadata(ROUTE), removing the NAMESPACE constant
- Remove activistBuilder, activistLeaderSteward, coalitionPartner from
  apps/web/messages/en.json pages object
- Add schema parse tests, renderToStaticMarkup page tests, messages ownership
  guards, and content-route contract entries for all three pages

* chore(web): remove dead faq (pages.faq + unused FaqSection components)

* fix: remove stale faq links

* fix: pass payload env through turbo build

* fix: preserve lambda prize support labels

* fix: preserve live copy after master rebase

* fix: address page copy review feedback

* refactor: move design guide copy to content

* feat: add schemas for home and page copy sections

- Introduced home section schemas including homeSocialProof, homeChoosePath, homeDecide, homeStartBuilding, homeAbout, homeUseCases, and homeBuilderPortal.
- Added page copy section schemas such as getStartedCopy, movementCopy, bookCopy, designGuideCopy, activistBuilderCopy, activistLeaderStewardCopy, coalitionPartnerCopy, researchCopy, nodeProgrammeCopy, lambdaPrizeCopy, mediaCopy, podcastCopy, broadcastCopy, and manifestoCopy.
- Created shared schema for section keys to maintain consistency across sections.

* chore(web): remove dead pages.faq from messages

* fix: resolve page copy migration conflicts

* fix: source connect form page copy from content

* fix: remove duplicated afform page copy exports

* fix: stop generating afform page copy exports

* fix(cms): require only server actions key

* fix(cms): load env files before build validation

* fix(cms): make env loader available during build

* fix(cms): load next env via require

* test(cms): isolate missing env validation

* feat: add homepage testnet highlight

* fix: restore lambda prize support links
2026-07-06 19:09:02 +09:00

102 lines
3.8 KiB
JSON

{
"schemaVersion": 1,
"language": "en",
"route": "/get-started",
"title": "Get Started | Logos",
"description": "Install Basecamp, read the Logos docs, join the community, and start building with the Logos testnet.",
"sections": [
{
"componentType": "getStartedCopy",
"key": "getStarted.copy",
"heading": "Get Started",
"intro": "Everything you need to start building privacy-first, decentralised applications. Install Basecamp, read the docs, learn the stack, write code.",
"sections": {
"install": {
"number": "01",
"heading": "Install Basecamp",
"cardTitle": "Install Logos Basecamp",
"body": "Basecamp is the development environment for Logos. It sets up a local node, connects you to the testnet, and provides CLI tools for interacting with all three protocol modules.",
"cta": "Install Basecamp",
"imageAlt": "Logos Basecamp application interface"
},
"docs": {
"number": "02",
"heading": "Start Building",
"items": {
"docs": {
"title": "Read the docs",
"body": "Deep dive into the Logos stack architecture, modules, APIs and integration guides."
},
"scaffold": {
"title": "Start with the Scaffold Boilerplate",
"body": "A Rust CLI for bootstrapping LEZ (Logos Execution Zone) program_deployment projects in standalone mode."
},
"sampleApps": {
"title": "Sample Apps",
"body": "Run real sample apps to learn from."
},
"workshops": {
"title": "Workshops and Tutorials",
"body": "Live coding sessions and step by step guides."
}
},
"viewDocsCta": "View the docs",
"learnMoreCta": "Learn more",
"atomicSwapsCta": "Atomic swaps",
"multisigCta": "Multisig"
},
"community": {
"number": "04",
"heading": "Join the community",
"cta": "Learn more",
"items": {
"forum": "Community Forum",
"research": "Research Forum",
"discord": "Discord",
"xLogosNetwork": "X Logos_network",
"xLogosDevs": "X Logos_devs",
"youtubeTutorials": "YouTube Tutorials"
}
},
"build": {
"number": "04",
"heading": "What you can build today",
"cta": "Run app",
"nodeCta": "Run a node",
"messagingCta": "Messaging SDK",
"deployCta": "Deploy",
"tryItOutCta": "Try it out",
"scaffoldCta": "Run scaffold",
"items": {
"node": {
"title": "Run a node",
"body": "Participate in the testnet by running a full node. Help validate module integration and stress-test the infrastructure."
},
"messaging": {
"title": "Build with Logos Messaging SDK",
"body": "Add private, censorship-resistant messaging to any application using the JavaScript, Nim, or Go SDKs."
},
"lez": {
"title": "Deploy to the LEZ",
"body": "The Logos Execution Zone is the first Sovereign Zone. Deploy applications using the sequencer, block explorer, and core APIs."
},
"storage": {
"title": "Store files on Logos Storage",
"body": "Use decentralised storage for application data, documents, or media."
},
"atomicSwaps": {
"title": "Run Atomic Swaps Demo App"
},
"zkMultiSig": {
"title": "Run ZK Multi-Sig Demo App"
},
"scaffold": {
"title": "Logos Scaffold"
}
}
}
}
}
]
}