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.ts
  • Pages 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.ts
  • A 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.ts
  • Changes 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.tsx
  • The 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.tsx
  • Every 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.ts
  • Copy 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.ts
  • Export 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.ts
  • Access 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.ts
  • One 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.ts
  • Export 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.ts
  • Import 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.ts
  • History 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.ts
  • A 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.ts
  • An 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.ts
  • Approval 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.ts
  • The 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.ts
  • Built 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.ts
  • A 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.ts
  • Title, 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.ts
  • robots.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.ts
  • Redirects 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.ts
  • Block 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.ts
  • An activity log for every app

    Publishing, restoring, inviting, deleting — recorded, and read back on the screen.

    app/api/apps/[appId]/logs/route.ts
  • Spending 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.ts
  • Billed 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.ts
  • An 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.mjs
  • Live 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.ts
  • A 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.ts
  • An 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.

Your own domain — not yet

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.

File uploads — do not exist

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.

Taking payment from a built site — does not exist

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.

Teams and seats — do not exist

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.

VIXTUREvery capability on this page is on every plan, the free one included