dsgnr.workKarthik S.UX + AI
← think/
process story · Jun 28, 2026 · 6 min read

How I build alone now

What “built with AI” actually means when one person ships the whole product.

Session Run is the first thing I’ve shipped completely alone: product decisions, design, code, store listing, website, even the support email. Design has been my job for thirteen years. The rest of that list used to belong to other people.

What changed is how I work with AI, and I want to describe it plainly, because “built with AI” has collapsed into meaning “typed a prompt and got an app.” That’s not what happens. Nobody who has actually shipped something believes that’s what happens.

the division of labor/

The split, without flattery in either direction:

AI wrote most of the code. Claude and Cursor, working from my briefs. They’re fast, they don’t get bored, and they know Manifest V3 quirks I’d have spent evenings on Stack Overflow relearning.

I did everything that makes the code worth writing. What to build and, more often, what to refuse. The privacy posture (no network access, ever) was mine before a line existed. The storage evaluation, where I had three options laid out (Downloads API, native messaging host, File System Access API) and made the call based on where users quit, was mine. The visual system, one yellow and zero rounded corners, was mine. So was every rejection: output that technically worked but read like it was written by someone who’d never maintain it, features that crept toward scope I hadn’t approved, UI that drifted off the design rules the moment I stopped repeating them.

taskk.ai
the manifest v3 code, from briefs·
privacy posture: no network access, ever·
storage evaluation: 3 APIs, decided on where users quit·
visual system: one yellow, zero rounded corners·
every rejection: scope creep, style drift, unmaintainable output·
security functions (validation, allowlisting, escaping)·
the security question, and testing the refusals·
Figure 01, the division of labor, Session Run

The way I’d put it: I directed a very fast engineer with no context, no memory, and no taste. Those three gaps are the job now. If you can fill them, you ship products. If you can’t, you generate code.

One example worth being specific about. Before submitting to the store, I ran a security pass framed as a question: what would a Chrome reviewer flag? That pass produced sender validation on background messages, URL allowlisting so javascript: and data: links can’t execute from stored sessions, and HTML escaping on every user-derived string. I didn’t write those functions. I made sure they existed, understood what each one refused, and tested the refusals. Review passed first time. I’ll take credit for the question rather than the code.

memory lives in files/

The least obvious change to how I work: the project’s real infrastructure is markdown.

Every session with an AI starts from zero. It doesn’t remember yesterday’s decisions, and it will cheerfully re-decide them differently today. So the repo carries a docs system built for that reality. A status file that is the single source of truth for what has shipped and what’s open. A vision doc that holds scope and every decision with its reasoning, so the reasoning doesn’t get relitigated. Product docs describing what exists, not what’s planned. There’s even an archived plan whose first line instructs AI agents not to read it, which works, and which I find funnier than I probably should.

Figure 02, the docs are the memory; every session starts from zero

Writing those docs is product management. I just didn’t expect PM skills to become a hard dependency of coding alone. When people ask what “AI-native” means in practice, this is my answer: you stop treating context as something in your head and start treating it as an artifact you maintain.

the unglamorous half/

Code-complete turned out to be roughly the halfway mark.

After it came the Chrome developer account and the store review queue. A privacy policy page, which for once was easy to write because the honest answer to every question was “the extension doesn’t collect anything.” Store screenshots at exact pixel sizes. A release checklist so future me doesn’t skip a step. The session.farm site, plain static HTML on Cloudflare Pages, deploying itself on every push to main. And a small decision I’d recommend to anyone shipping solo: the public support contact is support@session.farm, routed to my inbox through Cloudflare Email Routing, because store listings get scraped and my personal address doesn’t need to be in that dataset. Cost: nothing. Time: twenty minutes.

None of this is design. None of it is code either. It’s the layer where a project becomes a product, and thirteen years of design work never once put me in that room. Now I’ve been in it, and the mystique is gone. It’s just work, and it’s listable, and next time the list is shorter.

checking the market like it’s my job/

Because for this project, it was. Nobody upstream of me was going to do it.

Before committing to Session Farm, the premium layer, I spent a day mapping the open-source landscape: session managers, AI bookmark tools, browser agents, agent-memory layers, around twenty projects sorted by how close they come. The finding that mattered: no popular project combines session capture in your existing browser, AI enrichment, a portable local vault, and an interface for AI agents to query it. Every neighbor has two of the four. The closest thing to a direct competitor is a whole replacement browser, Mac-only, which is a steep ask compared to installing an extension.

That research changed the plan more than any technical decision did. It confirmed the gap is real, told me which features are table stakes versus differentiators, and killed a couple of ideas I was fond of because someone had already shipped them better. A few others got pushed to the next version, where they’ll land alongside the AI layer. A designer reviewing competitors’ UI is normal. A designer deciding build-versus-skip based on a competitive landscape they mapped themselves is the part that’s new, and it’s the part I’d hire for if I were on the other side of the table.

what this was actually for/

I could have kept using Session Run as a private tool. It ran fine unpublished. Shipping it was a deliberate test of a claim I wanted to make out loud: that one person who can think in product, design, and code at the same time, with AI handling the volume, covers ground that used to need a small team.

The test mostly passed. Idea to store took about a month of evenings and weekends. The gaps it exposed were never technical: nothing about the code was the bottleneck. The bottleneck was judgment, in every case. Which option, which scope, which refusal. That’s what didn’t compress, and I don’t expect it to.

There’s a version of this ending where I tell you the future belongs to builders like me. I’ll skip it. What I’ll say instead is narrower: the distance between “I designed it” and “it’s live in the store” is now crossable by one person, I’ve crossed it once, and the second crossing (Session Farm, where the saved sessions get an AI layer of their own) has already started in the docs.

I used to hand designs off and hope. There’s no one left to hand off to now. It turns out I like it better this way.