# let the users build

> we're doing software wrong. all of us.

2026-08-07 -- 8 min -- ai, building, thoughts

canonical: https://rohans.lol/blog/let-the-users-build

---
in the last fifteen years nothing about how we build software companies has actually changed. i mean it. the stack changed, the models changed, the logos changed. the loop didn't: raise on a hypothesis, ship an mvp, watch metrics, interview users, iterate, pmf, scale. the lean startup came out in 2011 and it's still what every accelerator on earth teaches.

and before you list the revolutions at me: mobile changed where you ship the probe. saas changed how you charge for it. crypto tried to change who owns it, and mostly didn't. none of them touched why you need a probe in the first place, which is that the person with the want couldn't build the thing. that assumption sat under all of it, unwritten, for fifty years. the user is inert. users can want things. they cannot make things.

so when i say everything changed, i don't mean ai in the product. every other founder i talk to is adding ai, copilot for this, chatbot for that. fine. ingredient. i mean the thing under the product changed: the user stopped being inert. since agents started shipping working code, call it two years now, the user still can't code, and it stopped mattering. their ai can.

the loop didn't update. we are still running discovery on people who could hand us a working answer. we're doing software wrong. all of us. that's the post.

## nobody ever said no

the old loop wasn't stupid, that's the trap. it was correct.

a feature costs the same to build whether one person uses it or ten million. an engineer's month is an engineer's month. so no company ever asks "is this a good idea", it asks "how many people share this want". every roadmap ever written is triage sorted by headcount. and you know this from the other side too, because you've filed a feature request. it was worth a lot, to exactly you. so it lost. it was always going to lose. nobody ever told you no. they just never fucking answered.

![a feature request card: remember my filter settings between sessions, 4,281 upvotes, status planned, opened nov 2019, 347 comments. last comment: any update on this? posted yesterday](https://rohans.lol/blog/let-the-users-build/memes/feedback-card-v1.png)

that's what the entire industry is downstream of: the cost for a user to act on their own want. that number was infinity. and yes, [i spent last week yelling](/blog/cost-of-intelligence) that intelligence keeps getting more expensive per finished task. i stand by every word. two hundred a month with weekly caps is real money, and against infinity it rounds to zero. the old number wasn't a price. it was a wall. every section after this is that wall coming down somewhere else.

## build, measure, learn, cope

here's where it gets funny. the industry whose whole identity is disruption is running a 2011 process with religious discipline.

be fair to the mvp first. it does about five jobs: will anyone pay, at what price, can you reach them, is the pain urgent, and what should you build. the first four are alive. agents don't answer distribution or pricing, and nothing in this post saves you from those.

but the fifth job, figuring out what to actually build, the job the whole ritual is named after. that one died. the mvp is a probe you ship because the truth about what people want is locked inside them. you spend six months and a seed round measuring what it hits, a pm interprets, a roadmap mangles, the wrong thing ships anyway. and the person on the other end now has an agent that can express the want directly, in working software, on their machine, the same afternoon. you're running a survey about what someone wants for dinner while they're already cooking.

for that one job, the expensive one, the mvp is the new waterfall. it's the thing we'll look back on and go, wait, they did WHAT for six months?

## my keyboard doesn't have a roadmap

i can show you the other side, because i've been living there.

i type on a split crkbd, kailh jades, loud as hell, every key with its own led. the hardware can do anything. shipped commercially it would be wearing some vendor's firmware, ten lighting presets, a fixed layout, a config app with three sliders. the gaming brands ship exactly this: leds physically capable of anything, software that hands you a dropdown.

mine runs qmk, open firmware, so instead of a dropdown i have a few hundred lines of c that nobody asked for except me. every led takes the color of what its key does in the mode i'm holding. the text selection keys are ferrari red, because of course they are. there's a key that types "vercel deploy --prod". eight color schemes with names like sunset boulevard and cyberpunk tokyo. a key that types "bun prettier . --write" has a total addressable market of one, no product manager would ever ship it, and i love that stupid key more than entire products i pay for.

every app is built like the keyboards the gaming brands sell. a hardware layer, what the thing can do. a firmware layer, what you're allowed to touch. your phone can play youtube audio with the screen off. the capability is sitting in the app on your device, and background play is a premium feature. they shipped the code to your phone and put a paywall between you and your own speaker. fuck off. bmw tried this with heated seats, the seats were in the car, the button was a subscription, and people lost their minds. software has been running the same scam for decades and nobody blinks.

for forty years the weld between those two layers is what we've called "the product". qmk is what happens when the weld breaks. same hardware, my firmware.

## two guys and a photographer

gaming ran the biggest let-the-users-build experiment in history. twenty five years of it.

counter-strike was two guys modding half-life, minh le and jess cliffe. the tactical shooter they invented is still the spine of the biggest fps franchises on earth. dota was a warcraft 3 custom map descended from a starcraft custom map. riot built league of legends around one of its modders, valve hired the other, his handle was icefrog. and battle royale: an irish photographer named brendan greene, zero games background, modding military sims in his spare time because he wanted the movie battle royale as a game. his handle was playerunknown. the mod's name is literally the guy's name. pubg is that mod grown up. epic bolted the genre onto a six year old game in two months and decided to make it free two weeks before launch.

three genres, hundreds of billions in revenue, none of it from a focus group or a roadmap. a mod can't lie.

and notice what the companies in that story did. valve didn't run a survey about tactical shooters, counter-strike was already the most played thing on their platform when they hired the guys who made it. riot was built around a map that already had millions of players. they watched what survived and wrote cheques. discovery didn't die, it changed hands. the companies stayed, the guessing didn't.

and all of it ran on gpus that gaming paid for, the same silicon that went on to train the models. the industry that invented the mod accidentally financed the machine that hands modding to everyone else. i love that loop more than i can use it here.

## thirteen-year-olds with a free summer

so why did it stay in gaming. mostly because the surface didn't ship anywhere else, games came with level editors, your bank app came with a pdf of your statement. and where a surface did exist, the tax was brutal. scripting languages, 3d tools, months of evenings. the people who could act on a want were a rounding error of obsessives, and three genres is what that rounding error produced. sometimes i think about how many counter-strikes died in feedback forms because the person with the idea couldn't script. that one gets to me.

the one big escape outside gaming proves the point harder, not softer: excel. finance runs on software that analysts built themselves, because the spreadsheet was the one surface that ever shipped to everybody. it's also the honest version of the story. user-built software is a mess, vba is a crime scene, and IT spent two decades trying to migrate people off their spreadsheets and lost. they lost because the alternative was filing a feature request.

and it's not like nobody tried to widen the escape. hypercard, access, zapier, airtable, an entire funded category literally named no-code. every one of them lowered the tax and none of them broke the loop, because every one capped what you could build at what the vendor had already imagined. a bigger dropdown is still a dropdown. that's why forty years of build costs falling never killed the probe. two years ago the ceiling came off, an agent writes whatever you can describe, and there's no catalogue at the bottom of it.

roblox understood the tax better than anyone. it couldn't remove the barrier, so it found the one demographic the barrier couldn't stop: kids. infinite time, zero opportunity cost. lua isn't easy, a thirteen year old with a whole summer doesn't care. that loophole built a company doing five billion a year in revenue that makes zero games. and this year roblox started letting players [generate working objects inside live games](https://about.roblox.com/newsroom/2026/02/accelerating-creation-powered-roblox-cube-foundation-model) by describing them. type a car, get a car you can drive. in the first game that turned it on, players who generate stick around 64 percent longer. and [44 percent of its top thousand creators](https://about.roblox.com/newsroom/2026/04/roblox-studio-going-agentic) already build with ai. that's not my thesis, that's their production data.

ai just made everyone a thirteen year old with a free summer. my own coding tool is a fork of opencode that's [unrecognizable now](/blog/codemaxxxing-isnt-just-a-fork-anymore). the keymap cost me years of evenings and flashing and swearing. a feature on the fork costs a sentence. i describe it, the agent builds it, i review it. [the numpad on my desk](/blog/boxboxbox) carried a feature request in the first message it ever sent, and the key existed by the next afternoon. that's what a feature request turns into when the person filing it owns the stack. an answer.

## anyone can cook

the reason a mod couldn't lie was that it cost six months. if a feature costs a sentence, the signal cheapens with it. i think the answer is that the signal moves from building to keeping. anyone can generate a mod now. the tell is the one still there next month, rebuilt after every update, used every day. effort stopped being the filter, survival is the filter. but how many people actually build once building is free? i don't know. nobody does yet.

## oh fuck, go back to the last save

which is why the new playbook, wherever it's already visible, looks like this: ship the opinion, and ship a surface.

the opinion is the product you were always going to build. the strong default, the thing that works stock. an empty "build anything" editor is a graveyard. roblox was never an empty editor, every builder was a player first. your app is still the reason anyone shows up.

the surface is where their agent gets to build. keep it out of payments and auth. give them the glass: the interface, the views, the layer where the weird wants live. even boring products have one. a bank app's surface isn't the ledger, it's the rendering of the ledger. one customer flags every subscription red, another groups upi spends by person, a third builds the widget the bank would never prioritize. ledger sealed, glass theirs. and give people checkpoints, not git. nobody's mom knows git. everyone alive understands going back to the last save.

vibe coded software can't be production software, the scoff is correct, i scoff too. but production means strangers depend on it. a feature with a user base of one needs to survive tuesday. and the real security line was never payments versus ui. it's untrusted input plus private data plus a way out. user-built code gets no network egress, capabilities instead of raw database access, and an org-wide kill switch, or one poisoned email through somebody's custom widget turns your soc2 into a bonfire. this lands in personal tools first, the software people live in all day and have opinions about. the regulated process-of-record stuff comes later, and slower, and it should.

## what if your users build this?

vcs have a reflex question, what if openai builds this. founders have the answer memorized. the better question in 2026 is what if your users build this. a lot of b2b software is a database with a nice ui, and a user's agent doesn't need a weekend for that anymore. you're not racing openai. you're racing your own users' tuesday nights. a surface is the difference between that energy landing inside your product or outside it.

![imessage from priya, enterprise pilot, tuesday 11:52 pm: loving the new dashboard btw. small thing. i had claude rebuild the reports tab for myself on tuesday. mine groups by client and loads instantly. do you want the code or is that weird](https://rohans.lol/blog/let-the-users-build/memes/imessage-v2.png)

![series b deck slide 14, competitive landscape: incumbents bottom left, us starred top right, and a red marker circle above us labeled your users plus an agent, any given tuesday](https://rohans.lol/blog/let-the-users-build/memes/compslide-v2.png)

and here's the stupid part about moats. lock-in today is something vendors do to users, contracts, exports that mysteriously don't work, and users hate them for it. a user who spent six evenings growing their own features into your app is never leaving. they built the cage. they love the cage. no retention team can compete with what people do to themselves. roblox's 64 percent is that sentence with a number on it.

the failure mode has a name too. blizzard shipped the warcraft 3 world editor, dota got built inside it, the most valuable mod in history, and the genre it spawned made everyone rich except the company that owned the editor. riot took one modder, valve took the other, and blizzard's response, seventeen years later, was [an eula claiming they own every custom game forever](https://www.polygon.com/2020/4/22/21228738/warcraft-3-reforged-custom-games-eula-dota/). lost the argument, changed the rules. a tantrum with a legal department. if something grows on your surface, pay the person who grew it. it's not complicated.

so here's the diligence question worth saying out loud in a partner meeting: where's the surface, and what happens to this company the day its users can build?

## anyway

software shipped finished for fifty years because it had no choice. the roadmap, the feedback board, the mvp, the premium tier selling you your own leds back. all of it exists because modification used to be expensive, and none of it has noticed that it isn't. the finished application was never software's natural shape. it was the shape of a constraint, and the constraint is gone.

me, i keep coming back to the key that types "vercel deploy --prod". three evenings. it will never matter to anyone else and it's my favorite thing i own. everyone has a key like that in them. for fifty years almost nobody got to build it.

now everyone does. let the users build.
