AGPL-3.0 · SELF-HOSTED

DATAMART

A structured information platform you run yourself — schema, access control, workflows and an admin UI in one binary, over PostgreSQL or SQLite, with every space exportable as plain files.

Flutter TS Python .NET HTTPS · JSON dmart — one binary, ~70 MB REST API ACL Schema MCP Admin UI Workflows WS PostgreSQL / SQLite the store Plain JSON files export / import dmart export writes any space out as files
  • ≤300MEntries Supported
  • 4Client SDKs
  • ~70 MBSingle Binary, No Runtime
  • 106 MBFull Stack, Idle

DMART in 30 seconds

◆ my_shop space /products /orders /customers /invoices schema product "name" string "price" number ≥ 0 "tags" [string] "photo" attachment ✓ every entry is validated { } product JSON entry photo.jpg attachment # order 1042 ticket · new dmart one binary dmart export product.json photo.jpg plain files, any time PostgreSQL or SQLite · the store A alice editor ? anonymous roles → permissions GET /orders GET /orders order 1042 ✓ allowed ✕ denied @payload.body.price:<50 @tags:sale Canvas tote sale 24 Desk lamp sale 39 Notebook set sale 12 3 matches REST API Python SDK TypeScript SDK Dart SDK C# SDK Admin UI MCP · AI agents Catalog dmart
  1. A space organizes your data into folders. A schema describes a valid entry, and dmart checks every write against it.

  2. JSON entries, files and tickets all go in. Each one is an indexed row in PostgreSQL or SQLite, and any space exports to plain files.

  3. Roles and permissions are checked on every request, down to the folder, the action and the field.

  4. One query language searches everything you stored: filter on any field, sort, and page through the results.

  5. A REST API, SDKs for Python, TypeScript, Dart and C#, an admin UI, a catalog, and an MCP server for AI agents, all from one binary.

Core Pillars

Runs Where a Backend Normally Can’t

One self-contained binary, compiled ahead of time. No runtime to install, no container required, no separate frontend to deploy — the admin UI ships inside it.

Measured on a Raspberry Pi Zero 2 W with 416 MB of usable RAM, serving with PostgreSQL alongside it on the same board: 106 MB resident for the whole stack, ~14 ms warm reads, and four concurrent logins served with a bounded peak that is fully reclaimed. A 10-hour continuous write soak held memory flat — a plateau, not a slope — with no OOM and no thermal throttling. The same binary runs on a server.

106 MB
dmart + PostgreSQL, idle, of 416 MB
~14 ms
warm read, 5,000-entry fixture
0.6 GB/day
written under sustained load — ~460 yr on a 100 TBW card

Your Data Stays Yours

Export everything as plain files

dmart export writes any space out as plain JSON files and its attachments, and dmart import loads them into a fresh instance on PostgreSQL or SQLite. Your data never depends on dmart to get out.

Standard formats, not a vendor schema

Payloads are JSON, constrained by JSON Schema Draft 7 and evaluated by a standard library. There is no dmart-specific type system to migrate out of.

Self-hosted, AGPL-3.0

Run it on your hardware, in your network, air-gapped if you need to. No per-seat pricing and no hosted service you depend on.

How It Works

  1. 01

    Define Your Space

    Create spaces and organize data into hierarchical folders — just like a file system.

  2. 02

    Store Anything

    Create entries with JSON payloads, attach files, add metadata. Schema-validated or free-form.

  3. 03

    Query & Discover

    Full-text search, filter by any field, sort, paginate. All through a consistent REST API.

  4. 04

    Integrate Everywhere

    Use official SDKs for Python, TypeScript, Dart, and C#/.NET. Or call the REST API directly.

Explore

Stop managing databases.
Start managing assets.