CommonGround Narrative Site — Design Spec

Date: 2026-04-19 Status: Approved (design phase); implementation plan to follow Owner: ap@uxtheory.co


1. Purpose

Turn the ICOS / CommonGround documents — currently a set of ~20 markdown specs in /docs — into a single-page, scroll-driven narrative website. The site serves as the public invitation to the project: it makes the manifesto land, introduces ICOS as the substrate, and routes researchers and builders to the canonical source documents.

This is the v1 marketing narrative. It is explicitly not the MVP application (proposal / deliberation / voting), which is a separate, later project.

2. Audience

Hybrid, with a primary / secondary split:

TierAudienceWhat they should leave with
PrimaryPotential collaborators and co-founders”I understand what this is, I want to be part of it, here is how to reach you.”
PrimaryGeneral curious public (literate, non-expert)“This is a serious, humane take on collective governance. I could read more.”
SecondaryAcademics / researchers (governance, commons, integral theory)“The source documents are here, cleanly presented, linkable, citable.”
SecondaryBuilders / developers”The architecture is coherent and forkable. Repo and protocol docs are reachable.”

Tone for primary audiences: invitational, accessible, emotive-but-restrained. Secondary audiences are served by sub-pages, not by distorting the narrative.

3. Naming

Rationale: the docs already lean this way (12 commonground-*.md files vs 2 ICOS_*.md files); “CommonGround” is warmer and self-explanatory for primary audiences; “ICOS” still lands for secondary audiences when it appears.

4. Narrative structure

Three-act arc: Diagnosis → Commitments → Architecture. Nine scenes on a single scroll.

#ActSceneSource copy
00Opening plate — “CommonGround” wordmark + single linenew copy
01I. Diagnosis§01 Premise — the four “we believe” linesdocs/manifesto.md stanza 1
02I. Diagnosis§02 Rejection — extractive / opaque / irreversibledocs/manifesto.md stanza 2
03II. Commitments§03 Affirmations — stewardship, revocability, transparency, pluralitydocs/manifesto.md stanza 3
04II. Commitments§04 Commitments — “we commit to building systems that…”docs/manifesto.md stanza 4
05II. Commitments§05 Understanding — closing coupletdocs/manifesto.md stanza 5
06III. Architecture§06 The Substrate — pivot into ICOSnew transitional copy + docs/README.md
07III. Architecture§07 Five Layers — personal → relational → collective → ecological → AIdocs/ICOS_Overview.md
08III. Architecture§08 Design Goal — adaptive, participatory, resistant to capture, developmentally supportivedocs/ICOS_Overview.md tail
09§09 Invitation — closing plate, two CTAs (read constitution / build with us)new copy

Two animation anchors: §01 (manifesto type reveal) and §07 (five-layers stack-build). All other scenes use the baseline scroll reveal.

5. Visual system

Typography

Palette

--paper:  #FAFAF7   /* warm off-white background */
--ink:    #1A1A1A   /* body text */
--rule:   #D9D6CE   /* hairlines, section dividers */
--muted:  #6B6B66   /* metadata, subtitles */
--accent: #B8341F   /* used only on §02 rejection plates and pull-quotes */

Body-text contrast vs --paper is ≥ 7:1. Accent color is used scarcely and intentionally.

Grid

Ornament

Motion baseline

6. Animation anchors

Anchor A — §01 Manifesto Type Reveal

Anchor B — §07 Five Layers Stack-Build

7. Routes and content model

PathPurposeTreatment
/Narrative scroll (all 9 scenes)Scrollytelling — Lenis, ScrollTrigger, anchors A and B
/constitutionFull commonground-constitution-v3.mdArticle page, shared editorial type system
/covenantFull commonground-covenant.mdArticle page
/protocolFull commonground-protocol.mdArticle page
/overviewICOS_Overview.md + static SVG of the five-layer diagramArticle page + diagram
/manifestoPlain-text manifestoArticle page
/docsIndex of all source documents (including whitepaper, academic papers)List page

All long-form text lives in docs/ (canonical). The site reads docs/ directly via an Astro content collection — no duplication. Editing docs/manifesto.md updates the site on the next build.

Narrative scenes are Astro components that import the relevant stanzas from the source markdown. Sub-pages render the full source verbatim with the shared editorial type system.

Inline footnotes use standard HTML anchors (<a href="/constitution#section-id">) — no JS required.

8. Tech stack

ConcernChoice
FrameworkAstro 5, static output (output: 'static')
LanguageTypeScript (strict)
UI frameworkNone — Astro components only
ContentAstro content collections pointing at ../docs
AnimationGSAP + ScrollTrigger
Smooth scrollLenis
MarkdownAstro MDX (built-in)
FontsSelf-hosted Source Serif 4 + IBM Plex Mono, preloaded
DeployCloudflare Pages (primary), Vercel (fallback)
AnalyticsNone in v1

9. File layout

ICOS/
├── docs/                               # canonical source, untouched
├── site/
│   ├── astro.config.mjs
│   ├── package.json
│   ├── public/
│   │   └── fonts/
│   ├── src/
│   │   ├── content/
│   │   │   └── config.ts               # collection pointing to ../docs
│   │   ├── layouts/
│   │   │   ├── Narrative.astro
│   │   │   └── Article.astro
│   │   ├── components/
│   │   │   ├── scenes/
│   │   │   │   ├── Scene00Opening.astro
│   │   │   │   ├── Scene01Premise.astro      # Anchor A
│   │   │   │   ├── Scene02Rejection.astro
│   │   │   │   ├── Scene03Affirmations.astro
│   │   │   │   ├── Scene04Commitments.astro
│   │   │   │   ├── Scene05Understanding.astro
│   │   │   │   ├── Scene06Substrate.astro
│   │   │   │   ├── Scene07Layers.astro       # Anchor B
│   │   │   │   ├── Scene08DesignGoal.astro
│   │   │   │   └── Scene09Invitation.astro
│   │   │   ├── LayerDiagram.astro            # shared by Scene07 and /overview
│   │   │   ├── SectionNumber.astro
│   │   │   └── Footnote.astro
│   │   ├── lib/
│   │   │   ├── scroll.ts                     # Lenis + ScrollTrigger, reduced-motion
│   │   │   └── anchors/
│   │   │       ├── premise.ts                # Anchor A
│   │   │       └── layers.ts                 # Anchor B
│   │   ├── styles/
│   │   │   ├── tokens.css
│   │   │   └── global.css
│   │   └── pages/
│   │       ├── index.astro
│   │       ├── constitution.astro
│   │       ├── covenant.astro
│   │       ├── protocol.astro
│   │       ├── overview.astro
│   │       ├── manifesto.astro
│   │       └── docs.astro
│   └── tsconfig.json

10. Performance and accessibility budgets

11. Success criteria

v1 ships when:

  1. All 9 scenes render on / with copy sourced live from docs/.
  2. Anchors A and B function as specified in recent Chrome, Safari, Firefox (current – 2).
  3. Reduced-motion paths verified manually.
  4. All 7 sub-pages render docs/ markdown with correct typography.
  5. Lighthouse Performance ≥ 95 on / (mobile throttle).
  6. Deployed to Cloudflare Pages at a chosen domain.
  7. No console errors on any route.

12. Out of scope for v1

13. Open questions (defer to implementation)

These are content / decision items, not blockers for building the scaffolding. The implementation plan will surface them as “decide before launch” tasks.