← All designs

Compare the pieces

Six versions, one shop. Each row is one question; each column is one version’s answer, linked to the page where you can see it. Pick a hero from one, a menu from another, a voice from a third. The couplings at the bottom say which picks fight each other.

Versions: Pressing · Reissue · B-Side · White Label · Gatefold · Jukebox · archive

Copy register

How does the site talk?

src/data/copy.ts (v1) · copy.v2.ts · copy.v3.ts · copy.v4.ts
recipe: --copy v1|v2|v3|v4 (Pressing=v1, Reissue+Gatefold=v2, B-Side+Jukebox=v3, White Label=v4)

Pressing

v1. Short warm lines written for the site (“Good coffee, next door.”, “Stop in, stay awhile.”). Numbered features. Some corniness.

Reissue

v2. v1 trimmed: order blurb cut, numbers dropped, About shortened. Same clipped-fragment register; not less corny.

B-Side

v3. Only what the shop wrote or printed: Square descriptions, door decal, cup sticker, chalkboard, IG story, their “Order Online”. No tagline, no story prose; customers quoted for warmth.

White Label

v4. Full plain sentences that state facts. No fragments, closers or rhythm; caveats written out (hours pending, prices may change).

Gatefold

v2, used only as captions. The pictures talk; text is name + price + one intro line.

Jukebox

v3. Their phrases as labels (“milk of choice”, “Order Online”, the board lines as chips).

Hero / first screen

What do you see first?

src/variants/<id>/Home.astro (top section)
recipe: --home <id>

Pressing

Text hero: eyebrow, headline, lede, two pill buttons. No image. Four ruled feature blurbs below.

Reissue

Client lockup (“Good Coffee. / Good Music. / Good Company.”) beside the storefront photo with a slow-spinning record-logo disc. Two buttons.

B-Side

The sign over the door, typeset huge (R&BEANS / COFFEE), the cup-sticker line under it, storefront photo at right. Then the board.

White Label

A heading and one factual paragraph; the hours table is the first thing below it. No image.

Gatefold

Edge-to-edge photo mosaic: storefront big, drink photos with name + price, shop photos interleaved. One intro line in a strip.

Jukebox

The menu itself: a Find box, the board lines as chips, Coffee & Tea starts immediately. Sidebar carries the rest.

Hours / address / ‘today’ block

Where are the facts a customer actually needs?

src/components/parts/TodayStrip.astro (Reissue strip, portable) · otherwise inside <id>/Shell.astro (Gatefold bar, Jukebox sidebar) or <id>/Home.astro
recipe: --home <id> for in-page blocks; Today strip: import parts/TodayStrip.astro into any Home

Pressing

Footer only (hours, address, phone, socials).

Reissue

Today strip under the hero: today’s hours with live Open/Closed state, address + Directions, phone. Also footer.

B-Side

Door decal reproduced as printed (note: differs from IG-bio hours; flagged), address + phone in the decal box; footer columns.

White Label

First section: hours table + address + phone, with the hours-conflict caveat spelled out. Repeated in footer dl.

Gatefold

Thin top bar: both hours rows + address, always visible; Order button in the bar. Footer line.

Jukebox

Sidebar, always visible: hours, address, phone, Order Online button (top bar on mobile).

Order flow

How do you get to Square?

src/variants/<id>/Order.astro · portable: parts/AlsoOn.astro (the fixed “Also on” line)
recipe: --order <id>

Pressing

Heading, blurb (“Pick your drinks, pay with Square…”), button, hint, “Also onjoe.coffee” (spacing bug).

Reissue

Blurb deleted; “Also on joe.coffee and Grubbio delivery.” fixed; hours dl under it.

B-Side

“Pick up” (the door decal word) + “Order Online” (their Square title) + door hours box.

White Label

States exactly what happens: where orders are placed, where you pick up, pickup hours table.

Gatefold

Photo beside the button; same fixed ‘Also on’ line; facts in small caps.

Jukebox

Order Online button lives in the sidebar on every page; /order is a short confirmation page.

About treatment

How is the story told?

src/variants/<id>/About.astro
recipe: --about <id>

Pressing

Narrative paragraphs from the press profile (v1 telling), lede “A husband, a wife, a coffee shop.”

Reissue

Same facts, shorter; photo sticky at right.

B-Side

No prose: four facts in big condensed type, the sticker, their drink names, customers quoted.

White Label

Plain narrative paragraphs with a sourcing caveat; storefront photo captioned.

Gatefold

Photo-first split: image left, short v2 text right.

Jukebox

Facts list + sticker + quotes, secondary page off the sidebar.

Type & palette

What does it look like?

src/variants/<id>/Shell.astro :root block + font imports
recipe: comes with --shell <id>; pages from other versions are restyled to it (the scaffold lists the tokens to add)

Pressing

Fraunces + Karla. Cream / espresso / caramel. (One of the three clichés; it’s the baseline, kept as-is.)

Reissue

Bricolage Grotesque + Karla. Paper white / ink / chair yellow.

B-Side

Barlow Condensed + Barlow. White / black / logo orange, green + pink highlight boxes.

White Label

IBM Plex Sans only. White / grey rules / one link blue.

Gatefold

DM Sans, small. Charcoal ground, white type, photos do the work.

Jukebox

Red Hat Text + Red Hat Mono. Off-white / panel grey / one electric blue accent.

Couplings: what fights what

Honest notes on which picks are independent and which are tied together. “Fights” means you would have to change one of the two to make it work.

Writing a recipe

A recipe is one line that names a version for each piece. It maps one-to-one onto the scaffold command, which copies the right files, rewrites ids and copy imports, writes the route stubs, registers the variant, and prints what still needs adapting:

npm run new-variant -- --id final-a --name "Final A" \
  --shell reissue --copy v3 \
  --home gatefold --menu reissue --about bside --order whitelabel --gallery reissue \
  --line "one-line look" --diff "what is different about this one"

Rules that keep it honest: the --shell is the base (tokens, fonts, header/footer); every page copied from another version is restyled to that Shell, and the scaffold prints the exact tokens and classes it is missing. Portable parts (Today strip, sticky rail, menu table, caveats, “Also on”) are imported from src/components/parts/ and themed through --rail-* / --today-* / --mt-* variables. Jukebox’s menu is its home page, so “menu: Jukebox” means --home jukebox. Check the couplings above before committing to a line; the ones marked fights mean two picks need one of them changed.

Full procedure, including promotion to the real site when one wins: docs/FINAL-ROUND.md.