mirror of
https://github.com/logos-co/logos-web.git
synced 2026-08-27 12:11:14 +00:00
* 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
98 lines
3.8 KiB
JSON
98 lines
3.8 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"language": "en",
|
|
"route": "/node-programme",
|
|
"title": "Node Programme | Logos",
|
|
"description": "Sign up for early access to the Logos node programme and help decentralise the network.",
|
|
"sections": [
|
|
{
|
|
"componentType": "nodeProgrammeCopy",
|
|
"key": "nodeProgramme.copy",
|
|
"hero": {
|
|
"eyebrow": "Node Programme",
|
|
"title": "Be the first to join the node programme",
|
|
"body": "Sign up for early access to the upcoming node programme and help decentralise the network.",
|
|
"cta": "Sign up",
|
|
"secondaryCta": "View the stack",
|
|
"guideCta": "Node operator guide"
|
|
},
|
|
"builders": {
|
|
"eyebrow": "Operate",
|
|
"title": "Calling builders and node operators",
|
|
"body": "The node programme is for anyone who wants to join our movement to revitalise civil society using decentralised technologies. Whether you are a builder or a node operator, there is a role for you.",
|
|
"imageAlt": "Logos node programme builders and node operators"
|
|
},
|
|
"stack": {
|
|
"title": "The Logos technology stack is a unified ecosystem.",
|
|
"titleMuted": "Private-by-default. Built for real life.",
|
|
"items": [
|
|
{
|
|
"title": "Blockchain",
|
|
"body": "Advanced privacy for a new era of decentralised applications and social institutions.",
|
|
"icon": "/images/node-programme/blockchain.png",
|
|
"alt": "Blockchain"
|
|
},
|
|
{
|
|
"title": "Messaging",
|
|
"body": "Private peer-to-peer communication that resists surveillance and censorship.",
|
|
"icon": "/images/node-programme/messaging.png",
|
|
"alt": "Messaging"
|
|
},
|
|
{
|
|
"title": "Storage",
|
|
"body": "Secure decentralised storage enabling fully decentralised apps and file sharing.",
|
|
"icon": "/images/node-programme/storage.png",
|
|
"alt": "Storage"
|
|
}
|
|
]
|
|
},
|
|
"useCases": {
|
|
"title": "Use cases.",
|
|
"titleMuted": "We know today's systems are captured and brittle. We build alternatives to give people a choice. Build on Logos and serve your community.",
|
|
"items": [
|
|
{
|
|
"title": "Community governance",
|
|
"body": "Self-organising groups that define and enforce their own rules, voluntarily and transparently."
|
|
},
|
|
{
|
|
"title": "Corruption-resistant public registries",
|
|
"body": "Tamper-proof records for votes, land, licences, and trade agreements."
|
|
},
|
|
{
|
|
"title": "Private financial networks",
|
|
"body": "Money that moves securely and freely, without borders."
|
|
},
|
|
{
|
|
"title": "Decentralised archives",
|
|
"body": "Permanent, censorship-resistant preservation of knowledge, culture, and history."
|
|
},
|
|
{
|
|
"title": "Secure communications",
|
|
"body": "Resilient, private messaging for coordination in hostile environments."
|
|
}
|
|
]
|
|
},
|
|
"signup": {
|
|
"title": "Sign up for the node programme",
|
|
"emailLabel": "Email address",
|
|
"emailPlaceholder": "Enter email",
|
|
"roleLabel": "Role",
|
|
"rolePlaceholder": "Select role",
|
|
"roles": [
|
|
"Node operator",
|
|
"Builder",
|
|
"Activist"
|
|
],
|
|
"submit": "Submit",
|
|
"submitting": "Submitting",
|
|
"invalidEmail": "Please enter a valid email address.",
|
|
"missingRole": "Please select a role.",
|
|
"genericError": "Failed to submit. Please try again.",
|
|
"success": "Thanks for stepping in early.",
|
|
"successLink": "Join our server",
|
|
"imageAlt": "Forest landscape for the Logos node programme"
|
|
}
|
|
}
|
|
]
|
|
}
|