The situation
Small and mid-sized firms hold their operating data in spreadsheets and one or two application databases. Traditional BI tools assume someone in the building can model data, write a query language and design a dashboard. Nobody in these firms can, so the tools go unused and decisions are made from a spreadsheet one person maintains.
What we built
A multi-tenant platform that ingests a file or a connection, profiles every column deterministically, classifies the business domain, cleans what it can safely clean and generates a dashboard specification. From there the user talks to it: ask a question, get an answer with the working shown, and pin the result to the dashboard.
Data streams through Kafka, and the platform creates the materialized views and views each dashboard needs in Postgres, so analytics stay current in real time. Users create or update dashboards by asking in plain language.
How it is engineered
- One contract, two languages. The dashboard specification is defined once in Pydantic. TypeScript types are generated from it, and drift between the two fails the build rather than surfacing as a runtime bug.
- Row-level security that binds. Three database roles: a migration superuser, a request-handling role that owns nothing and can bypass no policy, and a worker role with access to the job queue and nothing else.
- Workspace isolation by construction. Every request resolves to one workspace the caller belongs to, or is refused before the endpoint runs. Storage is one DuckDB analytical database file per workspace behind a three-verb, read-only interface.
- A queue that survives a crash. Postgres-backed, with row locking, leases and bounded retries. The worker is the same image as the API with a different command.
- Streaming that resumes. A resumable server-sent event stream per workspace, with a plain request fallback returning identical rows.
- One door for every model call. A model registry and a single LiteLLM gateway with structured output, retries, fallback and Langfuse tracing confirmed end to end.
Why it matters commercially
The isolation model is what makes the product sellable to more than one customer at a time. The specification contract is what lets a small team keep shipping without breaking the surface a paying customer already depends on.

