The Tom framework

A Dart/Flutter enterprise & AI ecosystem — explore every module and component, what it does, and how far along it is.

0
released
19
published
17
in the works
4
not started

Anatomy of a Tom application

A Tom application is a Flutter **client** and a Dart **server** joined by a typed interface, with the server reaching external services and an application-owned **MySQL/PostgreSQL** database. Both halves are built on **Tom Core** — `tom_core_flutter` and `tom_core_server` over a shared `tom_core_kernel` and `tom_basics` foundation.

Tom Core guarantees, by construction, what every enterprise app needs and every app should share: a resource-driven configurable UI, full internationalization, uniform authentication and a four-state authorization system, one architecture, and uniform deployment, operations and provisioning. These are enforced by the framework — independent of how the business logic was written.

Built by a specification flow

Business logic is produced through a staged flow — **manual specification → DocSpec → CodeSpec → implementation** — orchestrated by **ai_build**. ai_build scripts the steps on **tom_flow**, draws on **tom_brain** for the AI specification and coding work (through external interfaces), and both execute dynamic, sandboxed code through **D4rt**. **tom_reflection** provides the runtime reflection that lets an application assemble itself.

Agentic surfaces

The same architecture can host AI-generated agents: a server can expose **tom_brain** as a service that produces agentic apps which run inside the Flutter client via **tom_d4rt_flutter**.

Around the framework

Framework development and operations run in parallel — a VS Code extension and the **Tom Forge** IDE for authoring, command-line **DevOps** tools for build and deployment, and a **Cloud** layer for provisioning. Two companion applications, **tom_uam** (users & authorization) and **tom_sqm** (subscriptions & quota), ship on Tom Core.

Architecture at a glance

flowchart TB subgraph App["A Tom application"] C["Client · Flutter"] <--> I["Typed interface"] <--> S["Server · Dart"] S --> X["External services"] S --> DB[("MySQL / PostgreSQL")] end C --- CF["tom_core_flutter"] S --- CS["tom_core_server"] CF --- K["tom_core_kernel"] CS --- K K --- B["tom_basics"] subgraph Flow["Creation flow"] M["Manual spec"] --> D["DocSpec"] --> CO["CodeSpec"] --> Impl["Implementation"] end AB["ai_build"] --- Flow AB --> TF["tom_flow"] AB -. external .-> TB["tom_brain"] TF --> D4["D4rt"] TB --> D4 Impl -. generates .-> S

Areas

Start with an area — the big picture — then drill into its components and modules.

Components

Each component is a family of modules — hover for its status mix, click to open its modules.