← Back to Home

DBBasic Object Server

The DBBasic Object Server runs live, versioned Python application objects on a single VM. It is the current center of the DBBasic project — and the server this website runs on.

Source on GitHub — MIT licensed. Python stdlib + uvicorn. Human-readable data.

The Core Idea

An object is one small Python file that does useful application work: a page, an API endpoint, a report, a worker, a webhook, an admin action, a scheduled job. Objects can keep state, write logs, store files, and keep old versions of their own source.

Change an object and the change is live on the next request. There is no build step, no deploy pipeline, no restart. Every source change is versioned with an author and a message, so "who changed this and why" is always answerable — and reversible.

Apps Are Packages, Not Codebases

A DBBasic app is a package: a schema, permission rules, seed data, and at most one page object. No app-specific server code. The server ships with a working suite — projects, notes, tasks, contacts, articles, links, a calendar, files, and a shell you can talk to.

The page you get is generated from the schema: forms, lists, search, and realtime updates come from shared generators reading the same metadata. Declare a field, and every surface — web, native, API, search, AI — knows about it.

Upgrades That Keep Your Data

The upgrade system treats three things as separate layers: what the package shipped, what you customized, and your data. Upgrading a package fast-forwards what you never touched, keeps your customizations when upstream didn't change, merges schema fields from both sides, and parks genuine conflicts for a decision — it never silently overwrites your work, and it never touches your records.

Per-record custom data lives in an extension field no schema upgrade can collide with. Feature flags let new capability ship dark and turn on deliberately.

One Permission Engine

Web pages, the API, search, files, MCP agents, and AI answers all pass through the same permission policy — allow rules with row-level filters like "owner only" or "records in projects shared with you." There is no second, weaker path to the data.

This Site Is the Demo

dbbasic.com is one host on a multi-domain object server instance. Its pages are records in a collection; two page objects render them; updating a page is an audited record write, not a redeploy. The same instance serves other domains with fully separate page namespaces.

Get started: the quickstart takes a fresh VM to a running server with HTTPS and a first app in about thirty minutes. A Docker/Coolify path is included. A $5–$7 VM is plenty.