← Back to Home

Say it. It’s an app. Code when you need it.

💬 “Show me overdue invoices grouped by customer”
⚡ The AI wrote a page record — rendered instantly, live over websockets. The “app” is literally this data:
{"kind":"list", "collection":"invoices", "filters":{"status":"overdue"}, "sort_by":"total_cents"}
CustomerInvoicesTotal due
Acme Corp14$12,845.39
Blue Ridge Ltd8$8,210.00
Northwind11$6,523.48
💬 “Now weight the totals by the FX rate on each invoice date”
import object_records as orr

def GET(request):
    # the schema can't express this — so
    # the AI wrote this object. Live on save:
    # no build, no deploy, same permissions.
    rows = orr.read_collection_records
    fx = {}
    for r in rows("fx_rates"):
        fx[r["date"]] = float(r["rate"])
    totals = {}
    for inv in rows("invoices"):
        rate = fx.get(inv["invoice_date"], 1.0)
        cid = inv["customer_id"]
        cents = int(inv["total_cents"]) * rate
        totals[cid] = totals.get(cid, 0) + cents
    return {"json": {"totals_cents": totals}}
✦ The same AI wrote a Python object beside the data — same store, same permissions, live on the next request

The open-source Python object server

Talk to your data. Get an app. Pop the hood.

$ git clone https://github.com/askrobots/
    dbbasic-object-server
$ scripts/install.sh
# fresh VM → server + HTTPS in ~30 min

⭐ Source on GitHub
Quickstart · Architecture · Generative UI · Capabilities

</> Open source  ·  MIT licensed  ·  Python stdlib + uvicorn

Proof: this site runs on it.
This page is a record; updating it is a data change, not a deploy. A $5–$7 VM is plenty.

Why this isn’t low-code

</> Objects all the way down
The primitive is a real Python file: pages, workers, APIs. First-class, versioned, reviewable — in a store you can grep.
✨ The generative UI is the shortcut
A schema projects a full app — live tables, boards, forms, filters, comments, attachments, sharing, permissions, realtime — so you skip the boring 80%. Not magic, just leverage.
🔄 No cliff
When the schema can’t say it, the same AI writes a code object beside it. Same store, same permissions, live on the next request. No export, no rebuild.