Lab

brikz, a home page you build by talking

The first tab I open every morning. Every tile on it is a tiny app, and I make new ones by describing them to Claude inside the tile.

See it live ↗
My brikz board today: live tiles for Tokyo time, a focus timer, Newport Beach tides, Three Arch Bay surf, a habit tracker, a tee-time watcher and a clay-art pet.
Status Live
Started July 2026
Role Founder, product designer and builder
Stack Claude Code · Claude API (Sonnet 5 · Opus 4.8 · Haiku 4.5) · Claude Design · Workers AI (FLUX.1 schnell · BGE embeddings · Llama 3.2 · Llama Guard 3) · Cloudflare Vectorize · Photon (WebAssembly) · Cloudflare Workers · D1 · R2 · React 19 · Vite · Tailwind · Pixi.js · GSAP · Resend · Stripe

The brief

Anyone can now describe a small tool and get one. The trouble comes after: the thing you made ends up as a stray link you never open again, and nobody else ever finds it. I wanted one place for those tools. A board that is the first tab I open each morning, where every tile is a tiny app with two states: a glance on the board, and a full tool when you open it.

The top of my brikz board: a Japanese conjugation drill for the verb taberu, a clock, a tee-time watcher for Long Beach, a focus timer, a habit tracker called The Hearth and a surf report.
The top of my board this week, including a Japanese verb drill.

The rules I wrote on day one still run the project. Every tile has to earn a daily open. The look is the product: warm off-white, deep warm charcoal, one coral accent. And the main way to make a tile is a conversation, not a code editor.

I started on July 7, 2026. brikz is live at buildbrikz.com, invite-only for now. All 70 commits were written with Claude Code; I set the direction, the rules and the quality bar, and I approve what ships.

How it works

You add a blank tile, type what you want (“a tile showing tide times for Belmont Shore, with tomorrow’s tides when expanded”), and press Build. A Cloudflare Worker sends that to Claude Sonnet 5 with a long, fixed set of instructions. Opus 4.8 is the “max” option for harder builds. Two to four minutes later the tile fills in.

A brikz board with a new tile mid-build: a grid of small blocks filling in coral, the prompt shown in the tile header and a progress bar reading Laying bricks.
A tile building in place. The prompt sits in its header while it works.
  • One contract for every tile. The model must return a single line of JSON (name, emoji, suggested size, a one-sentence summary) and then one complete HTML file. That file has to draw two views, the small board tile and the expanded tool, and keep anything worth saving in the tile’s settings, because a tile restarts every time you open or close it.
  • A sandbox. Generated code runs in an iframe that can only run scripts. It can’t touch the page around it, my cookies or storage. It talks to the board through a small messaging bridge: read and save settings, ask for data, open a link, resize. A tile can only reach the outside web through domains it declares at the top of its own file, and a security policy enforces exactly that list. Because the declaration lives in the source, it travels with every share and remix.
  • Real data, not pretend. The instructions give the model a ladder: built-in sources first (weather, tides, live tee times), then free public APIs, then a guarded server-side fetch for pages and APIs that block browsers, then shared spaces for group features. Fake sample data counts as a failed build. A tile can also set an alert, a structured rule like “tell me when a tee time opens”, that the platform checks every minute and emails when it comes true. The tee-time data comes from my golf tee-time alerts project, opened up so a brik can use it.
  • Editing is talking too. Open a tile, type the change, and the model gets the current code plus your request. The saved chat only keeps one-line summaries, so the code is always the source of truth.
  • Illustrated art. Language models draw creatures badly out of circles and boxes. So when a tile needs a pet or a scene, the model asks for it by name, and the platform makes it with FLUX on Workers AI in one locked “clay” style. Before generating, it checks a library of past art by meaning, so “glowing sunshine” can reuse an existing “sun”. A small model confirms borderline matches and Llama Guard screens new requests. Characters get their backgrounds cut out in the Worker.
  • Publish and remix. Any tile can be published to a shared repository. Claude Haiku drafts the listing copy, the author edits it, and a junk flag blocks publishing. Remixing copies the code, not the conversation. A published tile gets its own public page, so a link shows the real thing running.
The Surf Report tile expanded to full size: Three Arch Bay at 4 to 5 feet over an illustrated sea, with a five-day outlook.
A tile has two states. This is the Surf Report opened up into a full tool.
The Surf Report tile with the Edit by talking panel open. I asked to pick a beach or city; the reply explains it added a spot picker with Open-Meteo geocoding, saved in settings.
A real edit. I asked for a beach picker; the tile rebuilt itself and told me what changed.
The brikz Explore page: the repository of published briks, with category filters and an editor's pick called Meanwhile.
The repository. Every brik here was built by talking, and the source comes with it.
The public page for a Surf Report brik: live Bolsa Chica wave heights over an illustrated sea, a five-day outlook, and buttons to remix it or build your own.
A published brik's public page, captured live. Anyone can open it; remixing lands it on your own board.

Where I sign off

  • The look. The design system was set in Claude Design and applied from there. Every visual change gets judged by eye against it, and the build instructions tell the model to throw out anything that looks like a plain card.
  • The art. Before any of the image plumbing was built, the plan stopped for a test sheet of sample art that I had to approve. If it hadn’t cleared my bar, the pipeline wouldn’t exist.
  • Plans before code. Big features start as a written plan with clear yes/no decision points, marked as waiting on my approval until I give it.
  • Anything public. AI-written listing copy is always a suggestion, never posted silently. Deleting asks first. Secrets and production settings stay with me, never in the code.
  • Daily use. The rule for wider sharing is 14 straight mornings of me actually living in it.

What broke

  • Blank tiles. Now and then the model wrote JavaScript with a typo, often a badly escaped apostrophe, and the tile loaded as an empty white card. Now the Worker test-compiles every script before shipping. It tries a mechanical fix first, then sends the model the exact error and the lines around it for one repair pass. If a tile still fails, it shows a gentle error instead of nothing.
  • A hot laptop. One animated tile ran its full scene at 60 frames a second all day. Instead of hoping tiles behave, the platform now controls animation: about 12 frames a second on the board, full speed when opened, paused when hidden. That tile dropped from over 60 to 11 without being rebuilt.
  • Dropped builds. A build can take four minutes of silence, and some networks hang up on a quiet connection. The Worker now sends a small heartbeat every ten seconds until the tile is done.
  • A sandbox gap. I assumed the sandbox blocked network calls. It doesn’t. That led to the declared-domain rule and a policy that also closed a quiet way to send data out through forms.
  • A frog with no belly. The first background cutter treated anything pale as background and ate a frog’s cream mouth. Version two samples the real background color from the edges and only removes what touches them. A pale subject on a pale floor can still confuse it, and that limit is written down.

What’s next

Cleaner cutouts using a segmentation model instead of color rules. Tiles that embed my other deployed apps, like Kotoba. Promoting the best generated tiles into permanent built-in ones. And finishing the 14 mornings before opening the doors wider.

Build log

  1. Generated tiles get illustrated art in one clay house style, plus public pages anyone can open and remix.
  2. Motion runtime ships. Tiles on the board slow to a calm pace, so twelve live apps don't heat a laptop.
  3. Real data becomes the rule. A guarded web proxy and alerts that run while the board is closed.
  4. The repository opens. Publish, explore, hearts, remix and private circles, on buildbrikz.com.
  5. Design system from Claude Design applied, accounts and an invite wall added, first live deploy.
  6. First commit. By the end of day one a blank tile could be described into a working app.

← All Lab projects