listsof30 production

Lists of 30 App

AI co-writer and creator platform for structured 30-item lists, with a 200+ 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 200+ published lists, write your own with an AI co-writer that suggests items in 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 200+ published lists, a tool for anyone to write their own, and a community layer where users submit lists and get AI-assisted support from a co-writer that writes in the Clemens Wan voice.

Who It’s For

Four types of users:

The AI Co-Writer

The co-writer is not trained on the archive or on your writing. Each time it runs, it reads your topic, the items you have already written, and four published lists as voice examples: the two closest to your topic and two picked at random. It returns 3 suggestions at a time, which you can add, skip, or add all at once, and it will not repeat an item you already have.

Suggestions are one of two modes. The other asks instead of answers: three questions, each from a different angle (a specific moment, the cost, someone else’s eyes), and only your answer goes into the list. It is free and unlimited.

Beside the editor, Inspiration Peek shows published lists close to your topic. The matching runs in your browser, so a draft never leaves your device to find them. You can read one without leaving the editor and borrow a single item into your next empty slot, with Undo.

The composer splits a list into three zones:

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

11 logged updates over 88 days, 3 Aug 2026 to 29 Oct 2026.

  1. Launch prep for a public post (publish date, co-writer rate limit, social card)feature

    Prep before posting the app to an expected ~100 users.

  2. Notifications that start a list, and three writing conveniencesfeature

    What shipped. Four PRs from a concurrent session, all merged to main.

  3. Scheduling, first-load cut, polish, and the audit P2sdocs

    What shipped. The publish-due-lists cron publishes it and it is featured on Discover.

  4. Inspiration Peek & Clembot "3 Questions" Modefeature

    Writers composing a List of 30 had two gaps in the editor (ComposeScreen): 1. Reading a similar published list for inspiration required leaving /compose for Discover/Read, interrupting flow.

  5. SEO, Agentic & Indexing Remediation (GSC Parity + Agentic 100/100)feature

    Live audit of https://app.listsof30.com/ scored 22/100 on agentic readiness due to multiple structural gaps: 1.

  6. 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.

  7. 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.

  8. 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.

Show the earlier 3 entries
  1. 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.

  2. 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.

  3. 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.