the index — for the people building this
Every page this site has, and every one it doesn't yet.
Each row is generated from the page's own source file, so this list cannot drift from the site. The page to send someone to is the door; this one is the map behind it.
- Marketing pages
- 4
- Ideas, unbuilt
- 6
- Design labs
- 11
01 — the marketing pages
Concepts.
Each one is a different argument for the same product, aimed at someone different. The greyed rows have been thought of and not built.
The front door /door
One screen, one moving ground, one sentence, two ways in. Took the apex from The Seam on 2026-08-23; moved to /door on 2026-09-07 when this index took it. Wants a hero video at public/design/marketing/hero.mp4 and falls back to a plate montage without one.site/pages/door.html · layout-seam
The construction page /seam
The long one. Hero loom, the five plans, the feature ledger, the honest answers, a look at the wall. It was the front page until the door replaced it. Owns the whole visual language in public/design/seam.css.site/pages/seam.html · layout-seam
How it works /photopool
The eight-act scroll narrative, with a live pool embedded in the hero. Still on the OLD site.css layout, not the seam one, which is why it can never light up in the nav.site/pages/photopool.html · layout-site
One occasion, argued end to end /weddings
The template for occasion pages: same product, one audience, its own care label. Nothing here is licensed stock standing in for a real wedding, on purpose.site/pages/weddings.html · layout-seam
Plans, on their own page /pricing
The five plans are only arguable inside The Seam right now, three screens down. A page of their own is the one every visitor asks for by name and the one every ad would point at. The numbers already come from config.plans through the build (plan_<key>_price and friends), so this page would not restate them, it would expand them.site/catalog-ideas.json
The iOS app /app
The host app is real and in external TestFlight, and the site does not mention it anywhere. Needs: what the app does that the browser cannot (the wall, the projector, the deck), and an honest line about it being beta.site/catalog-ideas.json
For venues and planners /for-venues
The franchise system is built (join and invite keys, comped mega_plus events, wholesale physical goods, the /staff/franchises workspace) and has no public page at all, so the only way to become one is to already know. This is the highest-leverage missing page: it sells to the people who run twenty parties a year instead of one.site/catalog-ideas.json
Photobooks /photobooks
The editor and the print foundation exist; Lulu fulfilment is still a stub. Do not build this page until an order can actually be placed, or it becomes the thing the care label has to apologise for. Parked here so it is not forgotten.site/catalog-ideas.json
One code, printed once /codes
Durable QR codes: print a code, repoint it at whatever event is happening this weekend. Built (/q/<key>, the qr_links table, the /qr manager) and completely unadvertised. Small page, concrete demo, no new engineering.site/catalog-ideas.json
Another occasion no route yet Weddings proved the shape: same product, one audience, its own care label. The next one is whichever occasion we have actually run. Do not write it before we have, and do not illustrate it with stock. That rule is the reason the weddings page is any good.site/catalog-ideas.json
idea02 — the labs
Where the pieces were worked out.
Internal, unlinked from anywhere else, and kept: each one is the working version of something that now ships inside a real page.
Wordmark animation studies /lab/wordmark
Side-by-side entrance candidates for the drawn log wordmark.site/pages/lab/wordmark.html · layout-seam
Compact mark candidates /lab/mark
Marks derived from the wordmark for the collapsed nav bar. F3a is the one in use.site/pages/lab/mark.html · layout-seam
Lockup to mark /lab/collapse
The bar collapse, isolated. Ships in every seam page's header.site/pages/lab/collapse.html · layout-seam
The rolling O /lab/roll
The O rolling down the stem, used as a section structure.site/pages/lab/roll.html · layout-seam
Shapes as rolling bodies /lab/shapes
A system where a shape's number of sides decides how it moves.site/pages/lab/shapes.html · layout-seam
Neon as a state channel /lab/neon
Console lettering. Renders on the host cascade, not the seam one. Shipped into the host sidebar.site/pages/lab/neon.html · layout-console-lab
The console's system /lab/console
The acceptance surface for the host console's rebuild onto the app's printed-room grammar (2026-09-07): every pp-* component under ink, pink and blue, the room developing and breathing, the wordmark fold and kick, the switch, the tiles, the notice, a rolling figure. If it is not right here it is not right anywhere.site/pages/lab/console.html · layout-app
Buttons, six ways /lab/buttons
Ideation for the console's one button family (2026-09-07). The first cut was a faithful port of BrandButton.swift and read as generic pills on the web; these are six directions that each obey the room, to pick from. Delete when one wins and lands in console.css.site/pages/lab/buttons.html · layout-app
Buttons with glyphs that move /lab/glyphs
The app's icon method on the web (2026-09-07): stages generated with the image model, parts measured off the art, one progress per glyph, a spring between states. Direction 1's chrome (bare words; only the key has a face). Delete when it lands in console.css.site/pages/lab/glyphs.html · layout-app
What replaces the popups /lab/layers
The trays and popups round (2026-09-07): one selection grammar (a bar under the word), feedback on the trigger instead of a toast, share as an anchored popover, settings rows that open in place, hold-to-confirm for the consequential acts, the context menu without its blur, and creating an event as a room in the stage. Approve here before it lands on the board.site/pages/lab/layers.html · layout-app
The key, lit /lab/key
Round three of the console's button (2026-09-07), after research into the app's own controls: the key is the app's showcoat (never flat) lit by the pointer the way the phone's is lit by tilt; the press dims the paint and throws the label into its two ink passes; ghosts keep their hairline. Delete when it lands in console.css.site/pages/lab/key.html · layout-app
03 — the rest
Legal and system pages.
Reachable only from the footer, and load-bearing for exactly that reason.
Terms of service /terms
Plain-language early-access terms. Reachable only from the footer.site/pages/terms.html · layout-blank
Privacy /privacy
What is collected, what is not, how long it is kept. Reachable only from the footer.site/pages/privacy.html · layout-blank
Not found /404
Rendered by the error handler, not served from a route of its own, so it is listed here without a link. sitemap:false.site/pages/404.html · layout-blank
Server error /500
Rendered by the error handler, not served from a route of its own, so it is listed here without a link. sitemap:false.site/pages/500.html · layout-blank
04 — how to get on this list
Have the idea, then write it down.
Both halves of this index are files. Nothing about the page below needs touching either way.
An idea for a page that does not exist.
Add an entry to backend/site/catalog-ideas.json. Only
role and note are required; write the honest note,
including what already exists to build it from.
{
"role": "For venues and planners",
"path": "/for-venues",
"note": "What it would argue, and what is already built.",
"order": 120
}
A page you are building.
Add a catalog block to its front-matter, then delete its entry from
the ideas file. A page with no block is deliberately absent, which is how the
thirty-odd signed-in console pages stay out of a marketing index.
"catalog": {
"group": "concept", // concept | lab | legal
"status": "live", // live | draft
"role": "The page in a phrase",
"note": "What it is for, and what is still missing from it.",
"order": 50
}
Then npm run build:site from backend/. A page also needs a
route in MARKETING_PAGES in backend/src/handlers/app.js
before it will serve.