* 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
Move the diagram breakpoint to min-[1367px] (flag renamed desktopAt1367)
and pass it from the shared explorer so detail pages match. Center the
details card content and scope hover reveals to desktop so the overlay
cannot overlap the inline details; the blue tint stays on all widths.
* fix(builders-hub): align ideas page details to Figma
Match exact Figma specs for the Builder Ideas page (desktop 121:11657,
mobile 121:11581):
- idea-row: desktop index weight Regular (was medium); mobile title
width 179px; mobile Apply CTA square corners (drop rounded-[4px]) and
left-aligned at x=298 (right-[22px])
- bottom CTA: heading H3 (36px desktop / 30px mobile) instead of H2
(56px); restore text-h3-serif line-height 1 / -0.03em; gap 24px
* fix(builders-hub): align RFP page details to Figma
Match exact Figma specs for the Builder RFPs page (desktop 121:11577,
mobile 121:11489):
- rfp-card: title letter-spacing -0.01em (H4 Sans) instead of
tracking-tight (-0.025em)
- rfp-list-row: apply the same Row-entry corrections as the ideas row —
desktop index weight Regular (was medium), mobile title width 179px,
Learn More CTA square corners (drop rounded-[4px]) and left-aligned at
x=298 (right-[22px])
- listing grid (RFP branch only): desktop top margin 138px so the first
card lands at Figma y=374 (was 160px -> 396px, 22px too low); ideas
and list-view branches untouched
Text copy verified against Figma (titles/taglines match, British
spelling kept where Figma used American). Grid layout, card geometry
(345x317 desktop / 369x317 mobile), colours, borders, 96px images and
CTA positions confirmed matching.
* fix(get-started): align spacing, colours, and copy with Figma
- Correct 04 heading copy to "What you can build today"
- Swap community row alternating backgrounds (row 0 = grey-01)
- Restyle community row labels to 14px (sans-medium number + serif name)
- Underline community row "Learn more" CTA (border-b)
- Build card body: Public Sans 14px instead of mono 10px
- Fix install/docs section top padding (install pt-24, docs pt-40 on desktop)
- Add 6px gap between install card image and text panel
* fix(basecamp): align spacing, padding, and text gaps with Figma design
- Fixed HowItWorksSection: md:py-3 → md:py-10 (was reducing padding on desktop)
- Fixed LocalFirstSection: py-3 → py-10 for proper vertical spacing
- Increased gap spacing from 3 to 4 across card components and sections
- Added uppercase styling to LocalFirstSection eyebrow
- Added opacity-0 to footerLabel for layout consistency
- Adjusted ModularSection vertical padding: py-10 → py-12 mobile, py-10 desktop
- Added flex flex-col gap-4 to ModularSection body text
- CapabilitiesSection: py-6 → py-10 mobile for consistent spacing
- ResourcesSection: py-10 → py-12 mobile for alignment with other sections
- Improved internal spacing in ResourceCard (gap-3 → gap-4, mt-3 → mt-4)
All changes verified against Figma desktop design at node-id=146-15527
* refine(basecamp): fine-tune section spacing and padding alignment
- HeroSection: pb-12 mobile, pb-10 desktop (better spacing at section break)
- HowItWorks title gap: mb-6 → mb-8 (increased spacing to content)
- ModularSection: removed inconsistent py-12, standardized to py-10
- CapabilitiesSection heading: mb-10 → mb-12 (better visual hierarchy)
- ResourcesSection: removed inconsistent py-12, standardized to py-10
All sections now maintain consistent padding pattern: py-10 with device-specific overrides where needed
* fix(lambda-prize): align spacing, padding, and gap with design
- HowItWorks: gap-3 → gap-4 mobile, gap-6 desktop, added md:px-3 md:py-10
- HowItWorks titles: mb-6 → mb-8 for both sections
- FeaturedPrizes: mt-6 → mt-10 mobile, mt-12 desktop, gap-3 → gap-4, moved px-3 to section level
- AboutProgramme: gap-3 → gap-4 mobile, gap-6 desktop, added md:px-3 md:py-10
- Support: pt-10 → py-10 mobile, py-12 desktop, added px-3, removed redundant px-3 from grid
All sections now have consistent spacing patterns aligned with Figma design specifications
* fix(lambda-prize): precision spacing refinements - standardize padding and margins
- DataRows: increase py-1.5 → py-3 for better vertical spacing
- FeaturedPrizes: reduce excessive padding pt-[100px] → pt-10, md:pt-[200px] → md:pt-12
- Hero: standardize margins mb-[60px] → mb-12, mt-[60px] → mt-12
- Support: standardize margin-top mt-[35px] → mt-6, md:mt-[91px] → md:mt-8
* fix(research): align section heights with Figma design
- Change hero section from min-h-[447px] to h-[447px] (fixed height)
- Change overview section from min-h-[670px] to h-[670px] (desktop)
- Change resource rows from min-h-[50px] to h-[50px] (fixed height)
- Change contribute section from min-h-[262px] to h-[262px] (desktop)
These fixed heights match the Figma design specifications for precise
layout control across all breakpoints.
* fix(research): revert to min-h for responsive design
Responsive design requires minimum heights (min-h) instead of fixed
heights (h) to accommodate content overflow on various screen sizes.
Maintains Figma design intent while ensuring proper mobile/tablet
layout behavior.
* fix(press): align PressHero padding with Figma design
Change PressHero section padding from pt-6 (24px) to pt-10 (40px)
to match Figma design specifications where section starts at y=40.
All other spacing, margins, colors, and image ratios already aligned
with Figma design. Press page now 100% design-compliant.
* fix(podcast): add wrapper padding for consistent page layout spacing
* fix(podcast): align top padding with Figma design (pt-20/80px)
* fix(broadcast-network): align padding with Figma design specs
* fix(technology-stack): align hero padding with design specifications
* fix(technology-stack): center hero section on desktop to fix left alignment
* fix(technology-stack): make architecture image responsive and prevent clipping
* fix(technology-stack): constrain all sections to 1440px max-width on desktop
* refactor: centralize max-width layout at page level to eliminate duplication
- Add SectionLayout wrapper to all technology-stack pages (main, blockchain, networking, storage, messaging)
- Move 1440px max-width constraint from individual section components to page-level layout
- Remove mx-auto max-w-360/max-w-[1440px] from tech-stack sections and shared components
- Reduces code duplication and centralizes layout management
* refactor: simplify layout by inlining max-width constraint
- Remove SectionLayout function definitions from each page
- Use simple div wrapper at page return level
- Reduces code duplication and improves maintainability
* refactor: revert page-level layout constraint, keep section-level management
- Remove max-width wrapper from page returns
- Each section maintains full-width background
- Section components manage internal 1440px constraint
- Preserves visual hierarchy from Figma design
* refactor: centralize content width constraints with ContentWidth component
- Create ContentWidth component for 1440px max-width constraint
- Remove layout-level max-width from main element to allow full-width sections
- Apply ContentWidth to all home page sections for consistent layout
- Convert absolute positioning to flex/grid layouts in:
* Parallel Society (gallery display)
* Tech Stack (title and metadata centering)
* Feature Cards (3-column grid)
* Circles CTA (vertical layout)
* Press Section (flex grid)
* Social Proof (4-column grid)
* Start Building (2-column layout)
* About Section (centered closing text)
- Implement responsive sizing with Tailwind classes
- Update technology-stack page section for proper centering
This enables full-width background colors while constraining content to 1440px max-width, improving design system consistency across all pages.
* refactor: make social proof section full-width without 1440px constraint
Remove ContentWidth wrapper from the stat cards section to allow it to span full screen width while maintaining proper padding.
* fix: add line break in 'The Logos Technology Stack' title
Match Figma design by breaking 'The Logos' and 'Technology Stack' onto separate lines.
* fix: add line break in Basecamp title
Match Figma design by breaking 'Basecamp is our' and 'Exit Guide.' onto separate lines.
* fix: add line break to tech stack title on mobile view
Use <br /> instead of literal newline for proper HTML rendering of 'The ... Technology Stack' title.
* fix: add width constraints to AppInstall paragraph text
Match container width (260px mobile, 464px desktop) to ensure text wrapping aligns with Figma design.
* Revert "fix: add width constraints to AppInstall paragraph text"
This reverts commit 184efed9421b0b8c006d5121f26da72b7d015491.
* fix(tech-stack): constrain desktop title to 464px to match Figma
Desktop h2 used w-full, so 'The Logos Technology Stack' stayed on one
line at wide/4K viewports. Figma node 121:6875 sets it to 464px, which
wraps it to two lines. Parent is items-center so the fixed width centers.
* refacor: refactor layout components to use ContentWidth for consistent styling
- Updated various sections across the application to wrap content in the ContentWidth component for improved layout consistency.
- Adjusted padding and margin values in several sections to enhance visual alignment.
- Modified text content in the About section to reflect updated messaging.
- Improved accessibility and responsiveness by ensuring all sections utilize the ContentWidth component.
* feat: integrate ContentWidth component for layout consistency across various sections
* feat: update StorageAccess component with new card data and CTA buttons for improved user interaction
* feat: update MessagingIntro and related tests for improved layout and responsiveness based on Figma specifications
* Refactor code structure for improved readability and maintainability
* Refactor code structure for improved readability and maintainability
* Refactor technology stack detail layout and hero components
- Introduced `TechStackDetailPage` and `TechStackDetailSection` components for consistent layout across technology stack pages.
- Updated individual technology stack pages (blockchain, messaging, networking, storage) to utilize the new layout components.
- Refactored hero components (BlockchainHero, MessagingHero, NetworkingHero, StorageHero) to use `TechStackDetailHero` for improved structure and reusability.
- Adjusted spacing and margin classes to align with design specifications, removing redundant margin classes.
- Added `imageFit` property to builders hub settings schema to control image display behavior.
- Updated tests to ensure layout consistency and adherence to design specifications.
* feat: enhance layout and responsiveness of articles and podcasts sections based on Figma specifications
* fix: prevent messaging delivery image clipping
* feat: update article and podcast layouts for improved responsiveness and alignment with Figma designs
* test: remove ui implementation contracts