Skip to content

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

  1. · 4 min read 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.
  2. · 3 min read 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.
  3. · 3 min read 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.
  4. · 3 min read 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.
  5. · 4 min read 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.
  6. · 2 min read 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.