LS / MTLLuke Sidney
Lighting the room0%
10th floor · Quartier Latin · golden hour
Montreal, QC·lukesidney.me·Fresh 2 · DenoNo cookies · No forms
Plate01

Front page.What it is

Live

flowingkhaos

Build-in-public workshops and repair logs for people who can build with AI and still cannot ship.

Free fixes, gated workshops, and code you buy once and keep.

The flowingkhaos home page: 'You can build with AI. You still cannot ship.'
Plate02

Set in type.The stack

What it runs on

A static site on Cloudflare, and one box on Railway behind it.

Site

  • Astro7.3prerendered pages
  • Preact10.29islands for checks and progress
  • Pagefind1.5search
  • Cloudflare Workershosting

Box

  • Payload3.82fixes, workshops, products
  • Hono4.13the API
  • Better Auth1.6Google and email sign-in
  • Postgres17with Drizzle 0.45, on Railway

AI + money

  • AI SDK7.0writes the step checks, via OpenRouter
  • Polarmerchant of record
  • Resendemail
Plate03

On the press.How it works

5 steps, in order

Free to read, gated to learn, paid once to own.

  1. Read the fixes

    Free, multi-part write-ups of real failures on my own apps: what broke, what it cost, the repair.

    A flowingkhaos fix page: 'Vercel Hobby could not carry the CMS', with the stack, the apps affected and the cost.
  2. Start a workshop

    Sign in with Google or email. Each workshop takes one app from git clone to production.

    A flowingkhaos workshop: 'Deploy your own Travole', seven steps with progress per account.
  3. Pass the check

    Every step ends with three questions written by AI from the step itself. The next step opens only when you pass.

  4. Pass the final

    Seven questions drawn from every step; five to pass.

  5. Own the code

    Buy a one-time licence to build and resell, paid once through Polar.

    A flowingkhaos marketplace listing: 'The Box — Payload CMS, API and Postgres on Railway', a one-time licence.
Plate04

Pulled proof.The code

Steps open one at a time

api/src/quiz/score.ts · lines 149–164real source
/** * The route is walked in order: a step is open when every step before it is passed, or holds * no check to pass. The first step is always open. A step with no generated check cannot be * passed, so it must not shut the route behind it — otherwise a workshop whose checks are * not written yet would dead-end every reader at step two. */export function openSteps(steps: { slug: string }[], passedSlugs: string[], checkedSlugs: string[]): string[] { const passed = new Set(passedSlugs) const checked = new Set(checkedSlugs) const open: string[] = [] for (const step of steps) { open.push(step.slug) if (checked.has(step.slug) && !passed.has(step.slug)) break } return open}

A step with no check yet cannot trap a reader. Only a written, unpassed check closes the route.

Plate05

The reel.The walkthrough

Watch it run

Software demo coming soonAbout 2 minutes: a fix page, starting a workshop, failing then passing a step check, the next step opening.
Plate06

Corrections.What it fixes

The problems it solves

  • AI-built apps stall at auth, migrations, deploys and cost.

    Each workshop walks one of those to production.

  • Courses you can click through without learning.

    Steps open one at a time, behind a check.

  • Monthly fees for code you never own.

    Pay once; keep a licence to build and resell.

  • Tutorials that hide what running it costs.

    Every fix states what the failure cost.

Plate07

Editor's letter.Why I built it

Why it exists

I needed a product only I can publish: the real record of one person running software with agents.

The column and the free fixes bring people in. The paid code lives on my own site, sold through Polar, so the list and the checkout stay mine.

Riso illustration: a workshop bench seen from the street through an open window.
Plate08

Against the rack.Better than average

Against the usual tools

Against Skool, Maven and Indie Hackers. Their side was read from each vendor's own pages on 2026-09-27.

WhatThe market averageThis app
ProgressLessons ticked done by the member, or a closing reflection.A check per step and a final exam.vendor's page
What you keepAccess to the lessons; on Skool, only while you pay.A perpetual licence to the code.vendor's page
Where you sign up and payOn the platform; the member list can be exported.On my own site, with Polar as merchant of record.vendor's page
Running costA monthly fee, a cut of each sale, or both.Static pages and one box, about CA$24 a month planned; card fees still apply.estimated
Plate09

The imprint.How long it took

71 commits, live in 11 days

commits
71
days with a commit
13
days, first commit to live
11
2026-09-07commits per day · busiest: 252026-09-25
  1. The rebuild starts
  2. Live
  3. Latest site commit. The API adds 13 commits over 5 days.

Measured: git log of the site since the rebuild, 2026-09-27. The shared starter template is excluded.

Plate10

Colophon.Where it sits in the ledger

Remote▲ ▼ section · ◀ ▶ project · OK opens