Skip to content
Torotech
Sep 13, 2026 · Ravi Soni · 3 min read

Why this site runs on DuckDB

One embedded database for content, leads and analytics — transactional writes and analytical reads without a second system.

DuckDBNext.jsArchitecture

Small sites still need three things: somewhere to keep content, somewhere to keep leads, and a way to see what's happening. Traditionally that's a CMS, a CRM and an analytics vendor.

Torotech.ca uses one embedded DuckDB file for all three. Page views are appended as rows; the admin dashboard runs columnar aggregations over the same file in milliseconds. Custom fields live in a JSON column, so adding "estimated budget" to the lead form is a settings change, not a migration.

When traffic outgrows one server, the same SQL moves to MotherDuck or Postgres. Until then, the whole thing ships as a single Docker container with one volume.

Tell us about the process that hurts.

A 30-minute call is enough to tell whether an agent, an extension or a plain good Fiori app is the answer. No deck, no discovery fee.