listsof30 production

Lists of 30 App

AI co-writer and creator platform for structured 30-item lists, with a 400+ catalog and community submissions.

ReactSupabaseViteGemini Flash
The archive as an app: browse your lists, discover other people, or start your own thirty.
The archive as an app: browse your lists, discover other people, or start your own thirty.
Reading a list of 30 on the surface most people actually read it on.
Reading a list of 30 on the surface most people actually read it on.
Discover, filtered. Every entry is somebody thinking in thirty parts about one subject.
Discover, filtered. Every entry is somebody thinking in thirty parts about one subject.

A creator community platform built on the idea that everyone has 30 things to say about everything. Browse 400+ published lists, write your own with an AI co-writer trained on the Clemens Wan voice, and submit to the community.

What It Is

Lists of 30 is built around a simple constraint: every topic deserves exactly 30 things said about it. Not 10 tips. Not an infinite scroll. Thirty considered, escalating items, from the obvious to the philosophical.

The app is simultaneously a showcase of Clemens Wan’s 400+ published lists, a tool for anyone to write their own, and a community layer where users submit, suggest topics, and get AI-assisted support from a co-writer trained on the Clemens Wan voice.

Who It’s For

Four types of users:

The AI Co-Writer

The co-writer is trained on Clemens Wan’s 400+ published lists. It returns 3 suggestions per call: one literal, one abstract, one philosophical, calibrated to where you are in the list. It knows the difference between item 5 and item 28.

The escalation model:

Features

Stack

ToolRole
React + ViteFrontend
SupabaseDatabase and auth: Google, email, or magic link
Gemini Flash (GStack)AI co-writer, targeting under $0.01 per call
Cloudflare PagesHosting

Development timeline

6 logged updates over 22 days, 3 Aug 2026 to 24 Aug 2026.

  1. Discover stopped showing the same lists firstfeature

    dataService.fetchPublishedLists() orders by updated_at descending and DiscoverTab rendered that array directly. With 400+ published lists, the same handful sat at the top on every visit and most categories were never seen.

  2. The same outage fired again, and the git integration is now disconnectedfeature

    The entry above ended "Still armed." It fired roughly 24 hours later. Same signature: HTTP 200, #root with zero children, PAGEERROR: supabaseUrl is required.

  3. Deploying the fixes exposed a 9-hour production outage I had causedfix

    Shipping the review fixes above revealed that app.listsof30.com had been serving a blank page for roughly nine hours, and that my own pushes did it.

  4. Mobile layout flip fixed, deployed, and the live redesign finally committedfix

    Bug: on a phone, scrolling swapped the mobile layout for the desktop side nav. Root cause: useDesktop() read window.innerWidth, which on mobile reports the visual viewport, not the layout viewport.

  5. Site-anatomy exportfeature

    Read-only export from prd/lineage/roadmap plus the project page source. Redacted for public use: no commit hashes, no deployment IDs, no hosting-project or backend-provider names.

  6. The redesign reviewed, and four findings fixedfix

    Suite went 127 → 133 tests, 17 files, all passing.

Written from this project's decision log as work happened, not afterwards. See every project →

What's next

5 open items

Plans, not promises. Taken from this project's own roadmap.