Blog
Releases, architecture notes, and the reasoning behind the decisions.
-
The Deploy That Refuses
Zerotal 1.5.0 ships bun zt deploy:<env> — a release pipeline ordered so that everything able to refuse runs before anything that mutates. Plus typed route names, a new AI package, and per-component error boundaries and streaming in Flow.
Announcements Read -
The Column That Keeps Its Mouth Shut
Zerotal 1.4.0 encrypts a column at rest in one word — ciphertext in the database, plaintext on the model, nothing in between that has to know. The interesting part is the three things it refuses to do.
Announcements Read -
Two-Factor, Start to Finish, Without Leaving Your Server
Zerotal 1.4.0 draws the enrolment QR code in your own process — TOTP secrets, recovery codes and the scannable image, all without a request leaving the box. The whole setup page is about fifteen lines.
Announcements Read -
The Small Print of Feeling Fast
Flow navigates without a reload — but what makes an SPA feel right is the boring browser behaviour it usually throws away. Prefetch on hover, live elements carried across, scroll position that lands where it should, and one word to opt out.
Flow Read -
We Almost Named It `with`
Zerotal 1.3.0 replaced BaseModelWith(...) with Model.using(...). The interesting part is not the refactor — it is why the obvious name was the wrong one, and what it costs a framework to spend a word.
Engineering Read -
The Case of the Vanishing @expose
A build error insisted an action was not @exposed. It was. The trail led out of the framework, through a fifteen-line repro with no Zerotal code in it, to a decorator defect in the runtime itself — and to how a framework should behave when the ground moves.
Engineering Read -
Guide: A Searchable, Sortable, Paginated Table in One Class
Live search, clickable column sorting, numbered pagination, and shareable URLs for all of it — built as a single Flow component, with the two traps this feature always hides called out along the way.
Guides Read -
Guide: Build go/ — A Team Link Shortener in One Sitting
A shortener is two apps in one: a redirect that has to be instant, and a UI a human uses all day. Here is the whole thing — model, redirect, dashboard, live click counts, tests — with the three traps that decide whether it survives contact with a team.
Guides Read -
The Model Is the Only Place the Rule Lives
An ORM's real job is not writing your SQL — it is being the one place a fact about your data is stated. Zerotal's ORM guards mass assignment by default, lets a model own its own lookup, rejects illegal state transitions, and tells you about an N+1 before your users do.
Engineering Read -
React, Server-Routed: The SPA That Never Grew an API
Inertia removes the API layer between your controllers and your React or Vue pages. Zerotal implements the full v3 props protocol — partial reloads, deferred props, merged infinite scroll, precognition — so the server keeps deciding what crosses the wire and when.
Announcements Read -
The Admin Panel's Second Year
Any admin generator can produce a CRUD table on day one. @zerotal/admin is built for day 400 — the questions that arrive once real people use it daily: who changed this, why can't they see it, why do my filters vanish every morning, and am I on production right now.
Announcements Read -
The Last Upload Helper You Delete
@zerotal/media attaches files to models — collections, thumbnails, responsive images, ordering, cleanup — with no migration to write and no native image dependency. One mixin, and the five jobs every uploads feature repeats are done.
Announcements Read -
Zerotal: Stop Wiring, Start Building
Meet the batteries-included, full-stack framework for Bun that lets you ship faster. No configuration, no build step, no glue code—just one language and a direct path from idea to production.
Announcements Read -
Flow: One Class Is the Whole Feature
The reactive frontend without the second codebase. State lives on the server, patches stream over a WebSocket, and the API layer — the endpoints, the store, the types, the loading booleans — simply never exists.
Flow Read -
Shipping a framework with no build step
Zerotal packages publish TypeScript source, not compiled output. What that buys, what it costs, and why Bun finally makes it a reasonable trade.
Engineering Read