Interactive demo · Best CRM · 21 steps

Best CRM: generate, run and report — step by step

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.

Click the highlighted area to continue

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.

Demo video

Watch it in eight minutes

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.

Download the MP4 best-crm-demo.mp4 · 8 min 20 s · 1600×900 · 31 MB

Voiceover script

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.

0:00to 0:06

Title card

Let's generate a complete CRM, called Best CRM, from a single file.

12 words, 6 s, about 120 wpm
0:06to 0:31

Try It Yourself page

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.

47 words, 25 s, about 113 wpm
0:31to 0:43

The three steps

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.

27 words, 12 s, about 135 wpm
0:43to 1:05

The one prompt

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.

48 words, 22 s, about 131 wpm
1:05to 1:29

What comes back

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.

39 words, 24 s, about 98 wpm
1:29to 1:44

Choosing the CRM example

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.

23 words, 15 s, about 92 wpm
1:44to 2:05

Model loaded and checked

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.

43 words, 21 s, about 123 wpm
2:05to 2:22

The model source

The model itself is just text. Entities, fields, access rules and workflows, all in one Mermaid-based file.

17 words, 17 s, about 60 wpm
2:22to 2:39

Naming it Best CRM

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.

30 words, 17 s, about 106 wpm
2:39to 2:49

Sample data

We'll also generate ten sample records per entity, so every list and dropdown has something to show.

17 words, 10 s, about 102 wpm
2:49to 3:14

Generating

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.

52 words, 25 s, about 125 wpm
3:14to 3:54

Running it

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.

72 words, 40 s, about 108 wpm
3:54to 4:14

Opening the app full screen

Let's open Best CRM full screen and sign in as the administrator. This application was generated from the model, not built by hand.

23 words, 20 s, about 69 wpm
4:14to 4:49

The dashboard

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.

55 words, 35 s, about 94 wpm
4:49to 5:07

The Lead list

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.

33 words, 18 s, about 110 wpm
5:07to 5:20

Filtering

Filtering is instant. Here are just the healthcare leads: three of the ten.

13 words, 13 s, about 60 wpm
5:20to 5:58

A record form

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.

47 words, 38 s, about 74 wpm
5:58to 6:24

The generated manual

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.

48 words, 26 s, about 111 wpm
6:24to 6:31

Back to the dashboard

Now, back to the dashboard.

5 words, 7 s, about 43 wpm
6:31to 7:08

Enterprise Reporting

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.

51 words, 37 s, about 83 wpm
7:08to 7:44

Another role's view

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.

46 words, 36 s, about 77 wpm
7:44to 8:10

The deployable zip

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.

42 words, 26 s, about 97 wpm
8:10to 8:20

Closing card

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.

23 words, 10 s, about 138 wpm

Recording tips

  • Play the video with headphones on and record into any audio app as it plays. One take is easiest. If you stumble, redo just that block and cut it in.
  • Aim for the block to start when its timecode appears and finish before the next one. If a block runs long, trim a sentence rather than speeding up.
  • To add the audio to the video, run: 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