I deployed a Zero app to Vercel 10 days after the language released, without knowing how to code
I have never written a line of code in my life, but somehow I ended up shaping a real app around a brand new language.
That is the part that feels strange to say. I am not a coder, but this process forced me into something closer to a systems architect. My job became direction, taste, pressure, and refusal for drift.
The first version was rough. Part static app, part JSON experiment, part “Zero-ish” thing. Zero would hit compiler and runtime gaps, and at first those gaps felt like blockers. One error kept coming back again and again. But eventually I stopped seeing compiler errors as walls. They became signals. The app was telling me what the language needed next.
So instead of giving up and routing around Zero with a normal framework, I kept pushing the project back toward the original idea. Zero should own the product logic. Vercel should own transport. Supabase could sit underneath as the database. Node could exist only as the adapter layer, not as the product.
That boundary mattered.
The temptation was always there to drift. Rewrite it in React. Let Node take over. Treat Zero like a toy sitting beside the real app. But that would have missed the whole point of the experiment.
The point was to see whether a new language could stay in the center of the product loop while the app exposed what was missing.
That is what happened. Form parsing, build issues, backend lowering problems, runtime helpers, deployment problems, all of it surfaced through the actual app instead of some abstract demo. The language got tested by the shape of the thing I was trying to build.
Then came Vercel.
Locally, the app worked through a small C transport bridge. Deploying it surfaced the next real problem. Native HTTP and libcurl baggage got ugly fast. TLS, versions, missing symlinks, all that fun. For a while it felt like we were fighting the wrong battle.
The unlock was accepting a clean boundary. Vercel and Node handle request transport and server-side fetch. Zero handles the product logic and rendering. Supabase holds the data.
The browser never sees the service key. Node is not the app. It is just the bridge.
That is the part I am most proud of. Not that I wrote clever code, because I did not. I held the line on the system. I kept asking what each layer should own. I kept rejecting the easy drift toward familiar frameworks. I kept the experiment honest.
I am not posting this to say Zero is production-ready or that everyone should build on it tomorrow. I am posting because this felt like a glimpse of a different development loop.
A non-coder can now have taste, architecture, constraints, and direction. The language exposes gaps. The system responds. The app keeps moving.
Curious what people think about this kind of setup. Vercel as transport, Zero as the product layer, Supabase underneath, and the builder acting less like a coder and more like the person holding the shape of the system.