Ask most people what an AI app builder makes and they will say "an app". That answer is the source of most disappointment with the category. The truthful answer is narrower and more useful: it produces source files, in a known framework, that you then have to install, configure, build and host.
This guide walks through what you actually hold at the end of a generation, using ContentForger's own behaviour as the worked example because I can read its code. The principles apply to any tool in the category; the specifics are ours.
The unit of output is a file
When ContentForger finishes a run you have a set of files, each with a path such as app/page.tsx or lib/db.ts. The model is instructed to emit them in a strict marker format, the viewer splits that stream into a file tree, and the Download button zips the tree with its folder structure intact. That ZIP is the product.
Inside it, if the generation went well, you will find the things the generator is told to include on every run: a Next.js 16 App Router project in strict TypeScript, Tailwind CSS v4 for styling, a README, a .env.example listing the environment variables the app expects, a robots file, a dynamic sitemap, and error and not-found pages. If the app stores data, there should also be a database schema with Row Level Security policies, Zod schemas for the types, a typed data-access layer, API route handlers and runnable tests.
Notice the hedge: "if the generation went well" and "should". Those are instructions to a language model. They are followed most of the time and not every time, which is why the next section exists.
What the output is not
It is not hosted anywhere. ContentForger does not run your app. The viewer's deploy guide gives you the commands for Cloudflare Pages, Netlify or your own server; you run them against your own account.
It is not connected to anything. The .env.example tells you which keys the app wants. Creating the Supabase project, the Stripe account or the Anthropic key, and pasting the values into a .env.local, is your work.
It is not installed. The ZIP has no dependencies in it. The first command after unzipping is npm install.
It is not proven to compile. The generator aims for strict TypeScript that builds cleanly, and the vast majority of runs do, but the only proof is running the build on your machine. Since October 2026 each app is planned first and then written file by file, and every file is saved the moment it is finished, so an interrupted build resumes instead of leaving a half-written file.
It is not under version control. Nothing is pushed anywhere. The sensible first action after unzipping is a Git commit, so you can later tell your edits from the generator's output.
Why builders are described this way
The honest framing, "we generate the code and you own what happens next", is less exciting than "describe your app and it is live". But it is the framing that keeps you in control. A tool that hosts your app for you also holds your app for you. A tool that gives you files gives you the whole thing and walks away.
That trade is covered in depth in Hosted App Builders vs Code Generators: Who Owns the Code?. The short version: decide which side of it you want before you compare prices, because the two kinds of product are not interchangeable.
What you do with the files
The sequence is the same every time, and the in-product deploy guide lists it:
- Unzip and change into the folder.
- Install dependencies.
- Copy .env.example to .env.local and fill in every value.
- Run the dev server and click through the pages.
- Run the production build; fix anything it reports.
- Deploy with the command for your host, after entering the same environment variables there.
Each of those steps is a place where a missing file or a missing key shows itself. That is a feature. It is far better to discover that the schema file was truncated on your laptop than on a client's domain.
What is kept for you, and where
One thing the output list above leaves out is the record. ContentForger writes every generation you start to your account's history, on every plan including Free. The dashboard at /dashboard lists them newest first, twenty to a page, with the prompt, the model that ran, token counts and a status of completed, failed or streaming. Open any entry and the full output is there to copy again.
That history is the closest thing the product has to a project store. It means a generation you forgot to download is not lost, and it means a prompt you pasted is kept, so never put credentials in one. It does not mean the generator remembers your project between conversations: each new conversation starts from the prompt alone, and if you want earlier context carried forward you paste it in.
How to read a demo
When a builder shows you a demo, watch for the mechanics rather than the result. Is there a download on the free tier, or only a preview? Are you shown a file tree with real paths, or a rendered page you cannot inspect? After the run, does it tell you which model ran and how many tokens it used, or does it hide that? Tools that show files, paths and usage are telling you what you will own. Tools that show only a finished page are telling you what you will rent.
The one thing to check before paying for any builder
Find out, before you subscribe, exactly how you get the code out and whether you can run it without the vendor. In ContentForger's case the answer is a ZIP on every plan including Free, standard Next.js with no vendor runtime, and nothing that phones home. If a tool you are evaluating cannot give you an equally plain answer, the output is not really yours, whatever the pricing page says.
For the step-by-step mechanics of a generation, from the checks your prompt passes to the stream becoming a file tree, read How ContentForger Turns a Plain-English Brief Into a Deployable App. For the mistakes people make right after their first download, Five Mistakes First-Time AI App Builders Make is the companion piece.




