listsof30 production October 7, 2026

Clemens, in One Link

One link for the person behind Lists of 30. An Author / Engineer switch swaps the whole page, and 30 elements each open a published list.

AstroTypeScriptCSS custom propertiesFontsourceCloudflare Pages
Author mode: ink on paper, a typed headline, and the ID card under it.
Author mode: ink on paper, a typed headline, and the ID card under it.
Engineer mode: the same page on a blueprint grid, in mono, with the portrait printed as a negative.
Engineer mode: the same page on a blueprint grid, in mono, with the portrait printed as a negative.
Flip the ID card and it says hi. GitHub only shows on the engineer side.
Flip the ID card and it says hi. GitHub only shows on the engineer side.
The writer side: 400+ lists since 2012, year-end reviews since 2008, then Lists of 30, the books, and Clem's Travels.
The writer side: 400+ lists since 2012, year-end reviews since 2008, then Lists of 30, the books, and Clem's Travels.
The engineer side: six tools I built, each with its own logo.
The engineer side: six tools I built, each with its own logo.
Thirty elements in five rows. Tap one and the list it came from opens below.
Thirty elements in five rows. Tap one and the list it came from opens below.
Five firework patterns, never the same twice in a row. The lemons land on the cards and roll off the edges.
Five firework patterns, never the same twice in a row. The lemons land on the cards and roll off the edges.

My Substack profile was a wall of “Read full story” embeds. 400+ lists, two books, a travel map, a games hub and an AI practice, and the only way to see any of it was to scroll a feed. When someone asked what I do, I had no single link to send them.

What It Is

One page at clemens.listsof30.com. It opens on a typed line, “I love lists of 30.”, then an ID card with an engraved portrait. Flip the card and it says hi: email, socials, the Substack.

A switch at the top changes who you are reading about. Author is ink on warm paper, set in Lora. Engineer turns the page near-black with a blueprint grid, every letter in JetBrains Mono, the portrait printed as a negative, and the headline becomes “I build tools I actually use.” Adding #engineer to the link opens that side directly, so a professional contact gets a different first impression from the same address.

Each side has its own numbers and its own work. The writer side has Lists of 30, the books, and Clem’s Travels. The engineer side has Clembot, Study, Job Search, the essays, the games, and Recipe Flow.

Thirty Elements

The brief I started from asked for a skills grid laid out like a periodic table. A skills grid is a résumé, and this page is not one, so the table became thirty elements of my life in five rows: Write, Wander, Make, Family, Self. Tap one and a single panel opens under the table with the list it came from.

Twenty-eight of the thirty open a published list, from 30 Lasts with Evie to 30 Beginner Table Tennis Advice. The other two, Mentoring and Osaka & Hamburg, do not have a link yet. I renamed a few elements along the way to match the post I wanted there, so Happy Memories became Peak Dad Moments. The last element is Future Clemens, because item 30 of a list is supposed to zoom out.

How the Swap Works

Every color, font, and corner on the page is a token. Engineer mode overrides five color tokens, two font roles, and the radii, and that is the whole swap. No component knows which mode it is in. A script in the page head sets the mode before the first paint, so the engineer link never flashes the paper version first.

Every interaction has a version without JavaScript. The switch disappears and both sides show. The ID card shows both faces. The thirty elements become a plain list.

The page is black and white with one exception. Logos keep their color, because a logo redrawn in grey stops being that logo.

Lemons

Tap anywhere and lemons fly out. The lemon is the See Lemons mark from my sign-off, so it counts as a logo here and stays yellow.

Each tap fires one of five fireworks: a ring, a two-layer peony, a fountain, a spiral, or a drooping willow, never the same one twice in a row. Then they fall. The lemons bounce off the ID card, the work cards, the number tiles, and the thirty elements. They land on top of them, ride along when you scroll, and roll off the edges. Each one lasts about four seconds, so tapping fast builds a show. Up to 240 can be on screen at once, and the oldest fade out early so every tap still fires.

None of it gets in the way. The tap still reaches the link or button under it, and if your device asks for reduced motion, no lemons appear.

What Broke

The site went down for about ten minutes on launch day. A build ran out of memory and left its output folder empty, the deploy read the build’s log text instead of its exit code, and the empty folder went to production. Every URL returned 404. The machine had run out of memory because preview servers I had started earlier that day were still running. Deploys now refuse to run unless the build exits cleanly and produces every file it should.

The security headers caught one thing too, and only on the live host. A strict font rule blocked seven small font files that no local preview could show, and the first check against the real domain found it.

Status

Live at clemens.listsof30.com, a static Astro site on Cloudflare Pages. A few facts still carry a dashed underline. That means I have not confirmed them yet, and they stay marked on the live page until I do.

Development timeline

9 logged updates over 9 days, 5 Oct 2026 to 13 Oct 2026.

  1. A line drawing per modefeature

    Clemens asked for a Hairline drawing on the Engineer side, then one in the same spot on the Author side: a working desk with a typewriter.

  2. Lemon fireworksfeature

    Clemens liked the single burst and asked for variety and a longer linger, so rapid clicks build into a show.

  3. Lemons with physicsfeature

    Clemens asked for the lemons to interact with the page: fall and bounce off the ID card and the other cards.

  4. Audit fixesfix

    Driven by the /audit run of 2026-10-09 (19/28; Lighthouse 98/100/100/92; agentic 27/100). - Real 404, robots.txt, sitemap.

  5. Lemon burstfeature

    Every tap or click releases six small lemons from the pointer. Clemens asked for a lemon cursor or lemon animations on click; the burst won because phones have no cursor and a replaced pointer hides the click point on desktop.

  6. Live at clemens.listsof30.comfeature

    Custom domain attached by Clemens in the dashboard.

  7. Mode marksfeature

    Each mode got its own logo above the hero and as the tab icon, supplied by Clemens: "Life in Lists of 30" (quill, author) and the Clembot lemon-and-chip mark (engineer). Both trimmed from 500x500 transparent PNGs to 240px-tall webp (10…

  8. Two modes, Author and Engineerfeature

    Clemens asked for the two sides to be swappable, with the whole page changing: light and literary for the author, black and engineering for the AI-enabled engineer. Built as a sticky switch that sets data-mode on <html>; every component…

Show the earlier 1 entry
  1. Project createdfeature

    Domain: clemens.listsof30.com, not clemens.wanessalabs.com. Clemens: a personal writer's page about life, not a professional pursuit.

Written from this project's decision log as work happened, not afterwards. 2 entries were withheld from publication. See every project →