Every Product I Built in 2026, in Launch Order
This year I shipped fourteen products, have a game in progress and a sixteenth product on the way. This post lists all of them in launch order, dated by the day each product’s first repo was created on GitHub, with what each one does and what it runs on. The short version: I started with big multi-repo apps, and ended up with one Rails app per product that plugs straight into Claude and ChatGPT.
Why keep a build log at all?
When you build many small products, they blur together. A dated list keeps me honest about what shipped and when, and it shows the pattern better than any single launch post. It is also the page I send when someone asks “what do you work on?”
February to September: the big apps
| # | Product | Started | What it does |
|---|---|---|---|
| 01 | Zelect | Feb 21 | Affiliate storefronts from product links |
| 02 | Easy Reels | Jul 9 | Beat sync video edits for Reels, TikTok and Shorts |
| 03 | bukpress | Jul 29 | Markdown to a typeset PDF and EPUB |
| 04 | BatchTone | Sep 17 | One LUT across a whole shoot, on the Mac |
Zelect was the first. Paste a link from Amazon, Shopee, Mercado Livre or AliExpress and it builds an affiliate storefront with photos, prices and categories. It is a Rails API with a Next.js front end, in English, Spanish and Portuguese.
Easy Reels and bukpress came in the summer and share a shape: a Rails API, a Python worker for the heavy work (FFmpeg for video, a typesetting engine for books) and a React web app, each in its own repo. That is four repos per product once you count the landing page. It works, but every change touches two or three of them.
BatchTone went the other way: a Flutter app for macOS, sold on the Mac App Store. It applies a .cube LUT to a whole folder of photos and video, with a strength dial on every file, and nothing leaves your Mac.
October: one app per product, inside the chat
| # | Product | Started | What it does |
|---|---|---|---|
| 05 | Nexin | Oct 6 | Prompts, skills, templates and tools for everyday AI work |
| 06 | Copix | Oct 8 | Copywriting method and draft review |
| 07 | Valta | Oct 9 | One Markdown memory for every AI |
| 08 | Crush on You | Oct 13 | Love letters sent as a private link |
| 09 | LaunchGP | Oct 13 | A launch directory run like a race season |
| 10 | Karou | Oct 14 | Carousels rendered in the chat |
| 11 | Klevo | Oct 14 | Demo videos of a web app, click by click |
| 12 | Cut Express | Oct 15 | A video editor you drive by chatting |
| 13 | Kalen | Oct 16 | X research, scoring and scheduling |
| 14 | Vettoz | Oct 19 | Idea validation from real buyer signals |
Ten products in two weeks sounds like a lot, and it only worked because the shape stopped changing. Each one is a single Rails 8 app: the landing page, the blog, accounts, billing and an MCP server, in one repo and one container. Eight of the ten are MCP servers, which means they run inside Claude and ChatGPT instead of asking you to open another tab. I wrote about that choice in why most of my products are MCP servers.
Crush on You and LaunchGP are the exceptions. Crush on You is a rebuild of an older dating app into something smaller: write a love letter, send it as a private link, and the other person opens an envelope and answers Yes, Maybe or No. LaunchGP is a plain web app: new products line up on a grid every Monday, votes set the order, and the podium keeps a dofollow backlink.
What is still on the bench?
| # | Product | Status |
|---|---|---|
| 15 | Project K | In progress |
| 16 | Indie Hacker Studio | Coming soon |
Project K is a game: an isometric pixel-art survival roguelite, part dungeon crawler and part AFK, built in Godot. It already runs on desktop and on an iPhone.
Indie Hacker Studio comes from running sixteen projects at once. Every one of them needs feedback, analytics and a revenue number, and right now that lives in a different place for each. The idea is one script per project and one place to see all of it.
What changed between the first build and the last?
Three things, mostly.
- Fewer repos. Four repos per product became one. One deploy, one set of environment variables, one place to look when something breaks.
- Less UI. The MCP products have a landing page and an account page, and the rest happens in the chat. The AI writes; the product does the part the AI cannot.
- One server. Everything now runs on a single VPS with Docker, one shared Postgres and Caddy in front. Moving a product is a compose file and a DNS record.
Every product above is in the build log, with a screenshot of its landing page and the stack it runs on.