It's Just a Website (and other things I ddn't believe)

It's Just a Website (and other things I didn't believe)

A note to future me, written while it's still fresh.

Jobs was right, just early

In 2007, when the iPhone first showed up, there was no App Store. That part always gets forgotten. Jobs's original pitch to developers was that you shouldn't build native apps at all. You should build web apps that ran in Safari, written to web standards, and they'd behave just like the apps Apple shipped on the phone. He called it the sweet solution.

He got roasted for it. The App Store landed about a year later, in 2008, because the web of 2007 just couldn't do what native could. No real device access, no serious offline story, slow JavaScript, no way to touch the GPU. So native won the next fifteen years. It kind of had to.

But here's the thing I keep coming back to: he wasn't wrong about where this was going. He was wrong about when. The vision was "the browser is the platform." The foundation to make that real just hadn't been poured yet. Being early looks exactly like being wrong, right up until the infrastructure catches up.

The part where I admit something

I don't really know if I count as a developer.

I've said this out loud and people tell me to knock it off, but it's true. My background is systems, not software. For years my idea of "writing code" was crappy PowerShell scripts that were noisy as hell but technically did the thing I needed. I didn't know what npm was until about six months ago. Six months. That's embarrassing to write down and I'm writing it down anyway, because future me should remember where this started.

So when I started building Songs I Know, some part of my brain was sure I was going to hit a wall. The wall where the toy project meets reality and falls over. The gotcha. I kept waiting for it.

And then it just... worked

The app does stem separation. You drop in a track and it pulls the bass, drums, vocals, and everything else into clean separate stems so you can practice along to just the parts you want. Moises does this. The difference is Moises does it on their servers, which puts them neck-deep in audio licensing, because the second you're processing someone's audio on your machine, you've got a problem to solve.

Mine doesn't touch a server. The separation runs in the browser, on your own GPU, on your own files. The audio never leaves your machine. The only thing I charge for is syncing the finished stems from your desktop to your phone, and even that goes peer-to-peer over your own network. The whole backend is a little VM in my basement that does nothing but introduce two devices to each other. It pushes around tiny messages. That's it.

Here's what blew me away, and the thing I most want to remember feeling:

The quality is fine. It's the same model whether it runs on a server or in my browser, so of course it is, but I didn't believe it until I heard it. And it doesn't even take longer than Moises. Same ballpark. I kept staring at it going, I can't believe this is just a website.

Except it isn't "just a website" in the way that phrase used to mean. It reaches the GPU now. That's WebGPU, and it's new. Before it, browser ML ran on the CPU and was painfully slow, which is the whole reason this kind of thing used to demand a server. The gap closed. I'm not sneaking past anybody. I'm building on a capability that legitimately just arrived.

Which is the actual point

This is the iPhone web-app pitch from 2007, finally true. Real apps, real heavy compute, living in a tab. No install, no app store, no native code. The vision was sound the whole time. It was just waiting on about fifteen years of people building the layers underneath it. WebGPU, WebAssembly, the whole modern browser-as-a-runtime stack. Giants doing brutal, invisible work so that I can open a tab and pull four clean stems out of a song without sending a single byte anywhere.

I didn't have to understand how any of that works to use it well. I just had to notice the seam it opened and build into it.

And maybe that's the answer to the developer question I keep chewing on. Maybe it was never about whether I can write the hard parts by hand. The hard parts are done. Somebody finished them. The skill that's actually left, the one that matters now, is recognizing what just became possible and having the nerve to build the thing.

I'm still not sure what to call that. But I'm pretty sure I'm doing it.

Note to self: you were right to be excited. Don't forget that the waiting-for-the-gotcha feeling never fully went away, and the gotcha never came, because you'd already built around it without realizing. Trust that more next time.

links

social