What's inside
Every capability, and the file behind it
This is the whole index. Beside every line is the file or route that implements it, because a capability list that points at no code is a list of intentions — and here you can check any line in ten seconds.
What was not built is at the bottom of this page, just as plainly. Almost all of it is open on the free plan too.
From a description to an app
What happens between typing a sentence and having an address you can send someone.
A plan before a line of code
Your description becomes a plan first: a name, the pages, the tables and the rules on them. The build reads that plan, so no page gets written before someone decided why it is there.
lib/build/run.tsPages are written in parallel
Once the shared frame exists, each page is its own request running alongside the others — not queued behind them.
lib/build/run.tsA gate that stops broken code
Every file is checked to actually compile and to import only things that exist. What does not pass is never saved as a version, and never billed.
lib/build/validate.tsChanges in plain language
"Add a gallery page." "Move the form to the home page." The same door that built the app is the one that changes it, so a change is a new version rather than a hand patch.
components/editor/Chat.tsxThe code is visible, and you never have to touch it
Every generated file is readable from the screen itself. There is no black box here — there is code you can read and decide to ignore.
components/editor/CodePanel.tsxEvery build is a version, and you can go back
Restoring points at an earlier version without deleting what came after it, so you can go forward again too. Code and data structure return together.
app/api/apps/[appId]/route.tsCopy a project
The code and the table definitions move to a new project. The records do not — a copy that drags someone else's data along is a leak, not a convenience.
app/api/apps/[appId]/remix/route.tsExport the project as a zip
Your code, on your machine, in a file any computer opens. There is no lock-in here worth defending.
app/api/apps/[appId]/export/route.ts
Data and permissions
The tables, who may touch them, and what happens to a row after it is written.
Tables built from your description
Fields, types and records that are really stored — not temporary state that disappears when the page reloads.
app/api/apps/[appId]/entities/route.tsAccess rules enforced on the server
"Only the person who created it can see it" goes inside the query itself. A mistake returns zero rows, not another customer's rows.
lib/rules.tsOne gate to the data, no key in the browser
A built app holds no database credentials at all. Every read and write goes through this gate, which evaluates the rules before it touches a row.
app/api/data/[appId]/[entity]/route.tsExport a table to a file
Any table downloads as a CSV from the data screen, at any moment.
app/api/apps/[appId]/records/export/route.tsImport with a dry run
You choose which column goes to which field and see how many rows will land — from the same function that will do the writing, not a second estimate that agrees with it until it doesn't.
app/api/apps/[appId]/records/import/route.tsHistory on every record
Every write leaves behind what the row looked like before, so you can see what changed and when — and go back. No scheduled backup, no "sometime last night".
app/api/apps/[appId]/records/history/route.tsA test mode you can clear
Whatever was created while the mode was on is removed with one click — and stays restorable, in case you tested against real data by accident.
app/api/apps/[appId]/settings/testdata/route.ts
The users of your site
They sign up to you, not to us — and who gets in stays your decision.
Accounts on your site, not ours
Sign-up, email verification and sign-in — for the users of your site, not ours. A token taken from one site is shown on another as signed out.
lib/appauth.tsAn invite to one address, with a role and an expiry
The link is shown once, at the moment it is created; only its hash is stored. Until it is used, it can be revoked.
app/api/apps/[appId]/invites/route.tsApproval mode for every new sign-up
A sign-up joins a queue instead of walking in, and no session can be issued for it until someone decides. Everyone already inside stays inside.
app/api/apps/[appId]/users/requests/route.tsThe user list, and an export of it
Who signed up, when, and in what state — with an export to a file.
app/api/apps/[appId]/users/export/route.ts
The address, and going public
Where it runs, who serves it, and what a search engine sees.
A public address from the first second
Every project gets its own free address, shown at the top of every screen. You can send it to someone the same day.
app/serve/[slug]/[[...path]]/route.tsBuilt apps do not sit on our origin
A built site runs on an entirely different host name, so none of our cookies is ever sent to it and no code inside it can read a builder session. That is routing, not a promise.
proxy.tsA preview address for a version you have not published
You can look at a version, and send it to someone for review, before it becomes the live one.
lib/serve.tsTitle, description and share image, per page
What you save here is exactly what a search engine reads on the next request — nothing to rebuild, nothing to deploy.
app/api/apps/[appId]/seo/route.tsrobots.txt and a sitemap that write themselves
Both are derived from the pages the app really serves, and both honour a decision to stay out of search.
lib/seo.tsRedirects from an old address to a new one
After a page is renamed, the link already printed on someone's card still arrives.
app/api/apps/[appId]/redirects/route.tsBlock embedding on other sites
A switch that changes the headers on the site's next response. Off is not the default — an app whose owner never opened this screen is not an app that agreed to be framed.
app/api/apps/[appId]/security/route.ts
After launch
The numbers that keep arriving, and the ceilings that keep the bill from surprising you.
Traffic counted in the database, not the browser
How many arrived, from where, and to which pages. Every number is an aggregate that runs in Postgres, because a query that stops at 1,000 rows under-reports exactly the busiest sites.
app/api/apps/[appId]/analytics/route.tsAn activity log for every app
Publishing, restoring, inviting, deleting — recorded, and read back on the screen.
app/api/apps/[appId]/logs/route.tsSpending ceilings that actually stop
A ceiling per build, per day and per month. When you hit one the request stops before a single token burns — it does not carry on and send you a bill.
lib/credits.tsBilled on tokens that were measured
After the version is saved, and on what was really consumed. A build that failed the gate is not billed — including the repair rounds that tried to save it.
lib/pricing.ts
Doors out
All of it is open on every plan, the free one included. The way out is the thing every competitor charges for.
API keys
A key identifies a person on the platform, and every route it reaches still checks that the app belongs to them. Only the hash is stored — a key you can read out of the database leaks with it.
lib/apikeys.tsAn MCP server
An agent — Claude Code, Cursor, anything that speaks MCP — drives the system end to end: list projects, create, build, read data, catalogue and templates.
mcp/server.mjsLive data sources for a built site
Shabbat times, the coming holidays, active alerts and exchange rates. The site holds no credentials — it asks us, and we ask the source.
lib/live/index.tsA library of Israeli know-how
Open-source skills — tax invoices and VAT, accessibility, privacy, Hebrew and RTL — and a build pulls from them only what the request actually touches.
app/api/skills/route.tsAn open template catalogue, no key needed
The same list this site shows, as JSON. A template enters it only after a browser loaded it and walked its pages.
app/api/templates/route.ts
And what does not exist yet
Four things it would have been convenient to imply were here. They are not, so they are written at the same size as everything else.
Every project gets its own free address and it works from the first moment. Connecting a domain you own is not available, and we will not sell it before it is live.
A built app stores fields and records. There is no file storage and no image upload from inside a built site, so do not plan a gallery that people upload to.
You can build a catalogue, an order form and an order record. A payment connection exists nowhere in the code, and a checkout form that does not charge is the worst thing on this page to promise.
You can invite people into an app you built. A shared builder account for several employees, billed per seat, was not built — so no plan sells one either.
Watch it work
Every template in the catalogue is a whole site already running at its own address, with the tables and permissions above. It is the fastest way to check this list instead of believing it.
