Writing
Notes from the team behind the ten apps: how we build them, and what we learn on the way.
Follow along with Atom, RSS or JSON Feed.
2026
- A back office without a JavaScript framework Data grids with filters, search, grouping, row actions and exports, plus charts, all rendered on the server by Renox, with htmx for the parts that update in place.
- Deploys that refuse no connections Restarting a single-binary app without dropping requests: systemd socket activation, a graceful shutdown, migrations both versions accept, and continuous SQLite backups.
- Catching N+1 queries before they ship Renox has no lazy relations on purpose. What it has instead: loaders that fetch a page's related rows in one query each, a debug page that flags repeated SQL, and tests that count queries.
- Tests that travel in time How Renox tests a whole app in memory: real requests, a clock you can move forward, and fake HTTP that never reaches the network.
- Renox: Laravel's workflow, compiled into one Rust binary What a Renox app is made of: modules, typed handlers, forms that validate themselves, server-rendered views and a CLI that writes the boilerplate.
- Why we ship one binary and SQLite Fewer moving parts, faster pages: how Renoxium's apps run as a single program with the database next to it.