← All tutorials
Tutorial

Build an app by describing it.

Not a form builder, and not a spreadsheet. You write a paragraph about the work you need to keep track of, and Vibes builds the collections, the link between them, the numbers it can work out for itself, and the report you asked for.

Vibes Linked collections Derived values Plain English
Two minutes, no audio — every step is captioned on screen, and written out below.

What we're building

A retainer tracker. Clients buy a block of hours each month; you log time against them; you need to know where each one stands before you do the next piece of work.

It's a good first Vibe because it can't be one flat list. It needs two collections that link — clients, and the time logged against them — and it needs numbers that are worked out rather than typed: hours used, hours left, percentage consumed. That is the difference between a table and an app.

About five minutes. None of it is code, and none of it is a form designer.

Six steps follow. If you'd rather just ask, the assistant can build the whole thing →

Step 1

Describe the app you need

Open Build & Automate → Vibes and write what it should keep track of.

This is the whole input. Paste it and change the nouns to your own work:

Track client retainers and the time we bill against them. Keep two separate lists that link together: clients, and time entries. Each client has a monthly retainer with a number of included hours and an hourly rate. Each time entry belongs to one client and records the date, the hours, and what was done. On each client show the hours used, the hours left, and the percentage of the retainer consumed. I also want a report of hours by client.

Click Build vibe and wait about half a minute. It is reading that paragraph and deciding what the collections are, which fields belong on each, how they relate, which numbers can be derived rather than entered, and what the report should group by.

Notice the two sentences doing the heavy lifting. "Keep two separate lists that link together" is what stops it flattening into one table. "Show the hours used, the hours left, and the percentage" is what tells it those are outputs, not inputs. Vague descriptions get vaguer apps; if what you get isn't right, say it more plainly and build again.

Step 2

Look at what it made

The app opens on its own page, with a tab for each collection it decided you needed.

Two tabs, because the description implied a relationship: one for clients, one for the time entries that belong to them. Each has its own table, its own form, and its own views.

It is a real app, not a preview. It has a URL, it takes CSV import and export, and the assistant can read it and answer questions about it. Nothing here is a mock-up you have to "generate for real" afterwards.

Names will differ from the video:

The build is a live model call, so one run calls a field Client Name and another calls it Company Name. The shape is what's reliable — two linked collections, the derived numbers, the report. Rename anything you don't like afterwards.

Step 3

The fields you never fill in

Click Add Client and look at the form before typing anything.

Three of the fields are greyed out and cannot be typed into: hours used, hours left, and the percentage consumed. Vibes keeps those, not you.

One is a rollup — it adds up the hours across every time entry that points at this client. The other two are formulas over the fields on the record. You never maintain them, and they can never drift out of step with the entries, because they are derived every time they're read rather than stored.

Fill in the three that are yours — the name, the included hours, the rate — and save.

Step 4

Log time against the client

Switch to the time entries tab and add one.

Pick the client, set the date, enter the hours, say what you did. An ordinary form — the interesting part is what it sets off next door.

Step 5

The client recalculates itself

Go back to the clients tab.

Hours used has filled in from the entry. Hours left has dropped by the same amount. The percentage followed. Nothing was typed into any of them, and nothing had to be recalculated by hand.

This is the part a spreadsheet gives you only if you maintain the formulas yourself, and the part a simple list app doesn't give you at all.

Step 6

And the report you asked for

Open the hours-by-client view on the time entries tab.

Grouped totals and a chart, built from the last sentence of the paragraph you typed. Add a stage or a status field later and you can ask for a board too — the views come from the description, and you can change them by describing the change.

Or skip all six steps

Ask the assistant to build it instead

The assistant has the Vibes tools. Open Assistant, paste this, and it builds the app, puts the first records in, and tells you what it made.

Build me a Vibe called Retainer Tracker. Keep two separate lists that link together: clients, and time entries. Each client has a monthly retainer with a number of included hours and an hourly rate. Each time entry belongs to one client and records the date, the hours, and what was done. On each client, work out the hours used, the hours left, and the percentage of the retainer consumed — I should never type those in. Add a report of hours by client. Then tell me what you built: the collections, which fields I fill in, which ones are derived and how, and what the report groups by.

The last line matters. Asking it to say which are derived and how is how you check it understood "worked out for me" rather than quietly adding three more boxes for you to fill in — and it saves you opening the form to find out.

Putting the first records in is still yours. The assistant can build the app, change it, and read from it, but there is no tool today that writes a record into a Vibe — so pick up at step 3 above, or import a CSV if you already have the data.

The result is the same object either way. Open Build & Automate → Vibes and it's there, with a URL, CSV import, and the same forms.

What the prompt asks for The tool behind it
Build the app from the description vibes.create
Report back what it built vibes.list-apps
Read the records back, once there are some vibes.query-records, vibes.ask-app
Change it later — "add a priority field", "rename this" vibes.edit
Worth knowing

Where the derived values stop

One boundary that is better learned here than discovered later.

You might reasonably ask for one more thing: "warn me when a client passes 80% of their hours." Ask for it and you won't get it — and that's correct rather than a gap in the model's attention.

Vibes automations watch stored fields. The percentage isn't stored; it's worked out every time it's read. A rule watching it could never fire, so the builder declines to write one instead of leaving you a switch that silently does nothing.

If you want the alert, give the app something stored to watch — a status field you set, or a monthly snapshot row — and put the automation on that.

Got Talavine? Describe something you keep in a spreadsheet.

Open Build & Automate → Vibes and write a paragraph about it.

Download Talavine