Skip to main content

Command Palette

Search for a command to run...

On a Sunday Train. Shipped by Friday.

Updated
5 min read
On a Sunday Train. Shipped by Friday.

I didn't think I could ship a web app within a week. Then something happened on a train that changed that.

This is the story of how I built and shipped Roka — and what AI actually made possible.


The Problem

My friend runs a small business in Japan. For B2B sales, the SaaS she uses exports full data regardless of what's filtered — she'd been manually opening it in Excel, filtering it every month. Sometimes she made mistakes and accidentally changed values. The problem was small enough to ignore but big enough to be genuinely annoying. 🫠

It Started With a Plan

One weekend, I sat down to plan the tool and stack. Normal project planning — I used AI mostly to explore options. But even after the plan was ready, I still didn't have the belief that I could actually ship it fast. That came later — on the train.

Then, on a Sunday Train

I was on my way to meet friends on a Sunday. Not working — just killing time on my phone. I'd been chatting with Claude about the idea, what the tool needed to do and what it didn't.

Then Claude sent back a full HTML file.

A complete, self-contained HTML file with a file picker, CSV parsing, a table renderer, column visibility toggles. I opened it on my phone and it looked great. I didn't have a CSV file to test with, so I couldn't try it right away. When I got home and tested it — mostly worked. UI: nice. Import: fine. Export: broken. 🫠 But import worked. I was looking at something real that I hadn't written.

That was the moment I thought: I can ship this soon.

And I took more than just the proof-of-concept from that file. The tool name — CSV Studio — came from it. The basic wireframe and layout that Claude had sketched out became the starting point for the actual UI. I didn't have to figure out what the thing should look like from scratch; I had something concrete to refine.

What Building With AI Actually Looked Like

Claude rewrote the whole thing into SvelteKit from that initial HTML prototype. Scaffolding components, wiring up shadcn-svelte primitives, getting the file picker and drag-and-drop working, setting up the export flow — I'd describe what I wanted, Claude would produce working code, I'd adjust and move on. The feedback loop was tight.

I wasn't just prompting and watching code appear. I was making decisions constantly: how components should be structured, what the UX should feel like when a filter produces zero results. Claude was fast at implementing the decisions I'd already made. The decisions themselves were still mine.

I could have let Claude run further ahead. I didn't. I tested each case manually, found what was off, asked for one fix at a time. That was a deliberate choice — not a limitation. It's what kept me from losing track of what was actually in the code.

Shipped within a Week

Before the end of the week, my friend was using the app. Not a prototype — the actual tool, deployed to Cloudflare Pages, handling her real data.

She can import her SaaS export, filter it down to exactly what she needs, rename columns if she wants, and export clean CSV. The original data is never modified. It runs entirely in the browser, so her data never leaves her machine.

There were rough edges. There still are. But it solved the real problem, and she started using it immediately. That felt different from most side projects I've started. 🎉

What AI Actually Changed

The obvious answer is speed. And yes — the week wouldn't have happened without AI helping me move fast on implementation.

But the more interesting answer is the train moment.

I didn't start this project planning to use AI-driven development as a methodology. I was just chatting on my phone. The fact that Claude produced a working HTML file — imperfect, but real — gave me a concrete thing to react to. It turned an abstract idea into evidence that the idea was buildable. That changed how I felt about starting.

This is different from "AI makes you faster." The bottleneck on most side projects isn't implementation speed — it's whether you believe the thing is worth starting. A prototype you can open on your phone and react to answers that question in a way that a plan never can.

The second thing I learned: staying in control matters. I kept every prompt small enough that I could read the output and understand it. Not because I was afraid of AI, but because the moment I lost understanding of the code, I lost the ability to make decisions about it. Small changes, full review. That was the rule.

You've probably seen posts like "shipping in a day with AI". This took longer — a few hours each evening after work. Part of that was the stack: I picked shadcn and Cloudflare because I wanted to use and learn them. Claude could have moved faster if I'd let it. But then I wouldn't have understood what I built.

That might be the most underrated thing AI changed: it made it possible to learn a new stack and ship something real at the same time. I didn't have to choose.

Speed is real. But the belief unlock — that's what actually got this shipped.


The tool lives at roka-udy.pages.dev. The project is called Roka — 濾過, filtration. Load your data, filter it down, export it clean.

More tools when there are more problems worth solving.