Title card
Let's generate a complete CRM, called Best CRM, from a single file.
Twenty-one real screenshots of the CRM example on Try It Yourself — from loading the model to running live enterprise reports. Click the pulsing target on each screen, or use Next, Back and the arrow keys. Prefer to watch? There is an eight-minute video.
These are screenshots, not the running software: you can click the targets, but nothing inside an image responds. To use the real thing, generate and run Best CRM in your browser.
A screen recording of the Try It Yourself flow on the live site: load the CRM example, name it Best CRM, generate it, run it in the browser and tour what comes out. Captions explain each step. Prefer to drive? Click through it yourself.
Read each block while its scene is on screen. Timecodes follow the video and may be a few seconds off. Everything is written to be said aloud, so URLs are spelled out as you would speak them. The whole script is 813 words, about 98 words a minute over the 8:20 video, slower than normal speech, so you have room to pause. Each block shows its own pace.
Let's generate a complete CRM, called Best CRM, from a single file.
We start at appwithai dot org, slash try-it-yourself. You describe your business to an AI assistant, and it writes one file: a model holding your entities, rules, workflows and access together. The platform compiles that into a full application. For this demo, we'll use the CRM example.
Three steps. One: describe your business, or attach an existing model. Two: hand it to ChatGPT, Claude or Gemini. Three: try the result right in your browser.
Here's the one prompt. Paste it into your AI assistant and it runs a working session with you, one decision at a time. Attach nothing to start fresh, or attach your existing model file to change it. You can be walked through it, or just have it built.
What comes back is a checked model file. Every entity, field, rule and form layout is written in plain text, line by line. The published checker validates it, so you know the file is sound before anything is generated.
If you'd rather not write your own, pick a ready-made example. We'll take the CRM: seventeen entities, with rules and workflows already modelled.
The CRM model loads and is checked right here in the tab, so nothing is sent to a server. This summary shows what it contains: entities, state machines, rules, roles and access restrictions. The checker reports zero errors, so it's ready to generate.
The model itself is just text. Entities, fields, access rules and workflows, all in one Mermaid-based file.
Step two: generate. First, give the application a name. We'll call it Best CRM. That name appears on the sign-in screen, in the header, and in the seeded account emails.
We'll also generate ten sample records per entity, so every list and dropdown has something to show.
Now, Generate. This is the same parser and compilers the command-line tool uses, running right here in the browser. And it's done: database schema, API, screens, rules and roles. The result panel lists exactly what was built, and you can download it as files, or as a deployable zip with Docker Compose.
Step three: run it. PostgreSQL itself runs inside this tab, compiled to WebAssembly. It's creating the database, running migrations, and seeding the application dictionary and the sample records. And Best CRM is up. Nine accounts were seeded, one for each role the model declares, plus the administrator. Each role sees only its own entities: the Support Agent gets five of seventeen, the Sales Manager thirteen. That access comes straight from the model.
Let's open Best CRM full screen and sign in as the administrator. This application was generated from the model, not built by hand.
The dashboard groups the seventeen entities by business area: accounts and contacts, demand generation, sales pipeline, customer service and more. Each entity, from Account and Contact to Lead, Opportunity, Quote and Contract, already has ten sample records. Further down you'll find the audit log, business rules, processes, reports, the application dictionary, and the model itself.
Let's open Lead. It's a complete list, with sorting, filtering, CSV export and every column the model declared: status, owner, campaign, score, and a timestamp for each stage the lead has passed through.
Filtering is instant. Here are just the healthcare leads: three of the ten.
Click a row to open the record. The form is laid out in headed sections, two columns wide, exactly as the model's section lines describe. And notice the status is system-managed: a record moves only through its action buttons, and only for the roles the model allows.
Every application also gets a manual, generated from the same model. It covers each entity, every field with its control type, constraints and help text, plus relationships, state machines and roles. It's written from the model's own help text, so the documentation can't drift away from the application.
Now, back to the dashboard.
One model gives you a second application: Enterprise Reporting. It has its own sign-in and its own accounts. Reporting roles mirror the application's roles, and decide which tables each person's queries may read. Inside, you get reports, charts and a dashboard, all derived from the model's structure and its report lines.
Back in the application, let's see what a different role sees. I'll sign out and pick the Support Agent, one of the seeded roles. Only five of the seventeen entities are there: support cases, SLA policies, accounts, contacts and activities. Nothing else is visible, or reachable.
The browser run is the demo. The real application is the zip: NestJS, TanStack Start, PostgreSQL and Docker Compose. Unzip it, run docker compose up, dash dash build, and you have Best CRM with its API, front end, database and reporting platform.
That's Best CRM, in minutes: one model, seventeen entities, with rules, workflows, roles and reporting. Try it at appwithai dot org, slash try-it-yourself.
ffmpeg -i best-crm-demo.mp4 -i voiceover.m4a -map 0:v -map 1:a -c:v copy -c:a aac -shortest best-crm-narrated.mp4