Blog ·

Your AI-built app needs a database. Where does it live?

Apps built with Claude Code almost always store data. Where that database lives on Vercel, Netlify and Heroku, and how White Ghost includes one with every app.

Inside the platform that runs the app, if the platform includes one. On White Ghost every app is created with a managed PostgreSQL database, so the data lives next to the app from the first deploy and there is no second product to sign up for. On Vercel and Heroku the app and its database are separate things: the platform hosts the code, and the database comes from a marketplace partner or a paid add-on with its own account, dashboard and bill. Netlify does have a built-in Postgres, but only on its paid, credit-based plans, metered in credits.

This matters more than it sounds if you built the app by describing it to Claude Code. The assistant wrote code that expects a database to exist. Locally it probably used a file or a database on your laptop. The day you deploy, "where does the database live?" is the first question the platform asks, and it is the one question the assistant cannot answer for you.

Why almost every AI-built app needs a database

A page that only shows text does not need one. Almost everything people build with an assistant does: a form that saves answers, a tracker with a list that has to be there tomorrow, a dashboard that stores which filters each person chose, a tool with users and passwords. Claude Code handles this by writing data models (with Prisma on Node, or SQLAlchemy on Python) and queries against a database it assumes will be there.

So the deployable version of your app is two things, not one: the code, and the place where the data lives. Platforms differ mostly in whether they treat that second thing as part of the app or as something you buy separately.

Where the database lives on Vercel, Netlify and Heroku

As of September 2026, checked against each provider's documentation:

  • Vercel hosts the frontend and serverless functions. Storage comes through its Marketplace: Postgres from partners such as Neon or Supabase, key-value stores from others. Each one is a separate provider with its own account, dashboard and billing, connected to the Vercel project by environment variables (https://vercel.com/docs/storage).
  • Netlify hosts static sites and functions. Netlify Database is a managed Postgres built into the platform, but it is available on credit-based plans only: an active database consumes credits for compute and bandwidth, and storage starts consuming credits after July 1, 2026 (https://docs.netlify.com/build/data-and-storage/netlify-db/). On the free plan there is no database.
  • Heroku hosts the app in dynos. Postgres is an add-on with its own plan and price, attached to the app (https://devcenter.heroku.com/articles/heroku-postgresql).

None of that is wrong for a developer who already knows Neon from Supabase. For someone who built the app by talking to an assistant, it means a second sign-up or a paid plan, a connection string to copy into the right place, and a second dashboard to watch when something breaks. The LLMs we track still name this as the recurring drawback of Vercel and Netlify for non-developers: "no database included, you have to wire one up separately". For Netlify that is out of date on paid plans, and still true on the free one.

What comes with every White Ghost app

The Overview tab of every app lists nine pieces the platform manages for you, each with its status. The ones that hold data:

Piece What you get
Database A managed PostgreSQL database, provisioned with the app. Production is closed to the outside world.
Development database A separate development database for local work and pull request previews, with credentials you can show in the console and use from Metabase, Tableau or DBeaver.
Files Object storage for uploads, with signed links that expire. Enabled by setting fileStorage to true in app.config.json and running ghosty provision.
Secrets Created in the console or the CLI, exposed to the app as environment variables, applied without a redeploy.
Scheduled jobs A cron that calls HTTP endpoints of your app on a schedule.

The app itself runs on Node (Express, Prisma) or Python (FastAPI, SQLAlchemy), the two scaffolds White Ghost offers. The assistant writes against those and the database is already reachable from the code.

How the data gets from your laptop to production

  1. Create the app. In the project folder, type ghosty init. It creates a repository in your own GitHub account and registers the app, including its database. You need a GitHub account; the code stays yours and can be downloaded as a .zip at any time.
  2. Let the assistant do the wiring. The app page has Open in Claude Code, Open in Codex and Copy the instructions. The prompt it hands the assistant includes the app URL and the repository, so Claude Code moves the code, points it at the included database and pushes.
  3. Every push goes live. Builds on a real app with frontend and backend have taken 53 seconds and 1 minute 27 seconds. If a change breaks something, ghosty rollback or the Redeploy button on any earlier build brings the good version back.
  4. Work locally against the development database. ghosty dev runs the app on your machine connected to the development database, so what you test is what production will do, without touching production data.

Limits, stated plainly

  • The production database cannot be reached from outside the platform. The development one can, with SSL required and credentials that point only to it.
  • Pull request previews run against the development database and their URLs are public. Do not put production data behind a preview.
  • Python apps create their tables at startup; there is no separate migration tool in the scaffold. Node apps use Prisma.
  • The app scales to zero when idle, so the first request after a quiet period takes a moment.
  • You cannot switch an app from Node to Python or back; that is a new app.
  • There are no background workers or queues; long jobs beyond an HTTP request are not supported.

When Vercel or Netlify is the better answer

  • Your app is a static site that stores nothing: Netlify Drop or a Vercel deploy is faster, and you do not need a database at all.
  • Your team already runs Supabase or Neon and has developers who manage it: keeping the data where they already look is worth more than an included database.
  • The app is a large Next.js product with a frontend team: Vercel builds that framework and its tooling is built around it.

For the other case, the person who described an app to Claude Code and now needs it online with its data intact, White Ghost puts the database next to the app so that "where does it live?" has a one-word answer: here.

Frequently asked questions

Where does my Claude Code app store data once I deploy it?

In a database that runs next to the app, if the platform includes one. On White Ghost every app is created with a managed PostgreSQL database, so the data lives with the app from the first deploy. On Vercel or Heroku the database is a separate product you add through a marketplace or add-on, with its own account and bill; on Netlify there is a built-in Postgres, but only on paid, credit-based plans.

What is the simplest way to publish a small internal app made with Claude Code without learning Git or servers?

Use a platform that provisions the database, hosting and secrets for you and lets the assistant do the technical steps. With White Ghost you type ghosty init once in the project folder; the app page then has Open in Claude Code and Copy the instructions buttons so the assistant moves the code, connects it to the included database and deploys it. You need a GitHub account, because the code is stored there and stays yours.

Vercel asks me for a GitHub repo and a framework preset and I do not understand any of it. Is there something simpler for an app made with Claude Code?

Yes. On White Ghost the repository is created for you by ghosty init and the framework is decided when you pick the app type (web app on Node, or data and analytics app on Python). There is no preset to choose, and the database is already there, which on Vercel is a second decision on top of the first.

How do I put a dashboard built with AI in front of my team safely?

Deploy it where the data stays behind the app and the link has an access mode. A White Ghost app keeps its production database closed to the outside world and lets you choose whether the app is public, needs a shared invite code, or asks for a sign-in you write into the app. A tunnel or a shared file does neither.

What is the best way to host an HTML dashboard I made with an AI assistant?

If the dashboard only shows numbers you paste in, any static host works. The moment it needs to save filters, users or fresh data, it needs a backend and a database. On White Ghost Claude Code turns the HTML into a small web app in minutes and the database comes with it.

Can I connect Metabase, Tableau or DBeaver to the database of my White Ghost app?

To the development database, yes: the console shows development credentials (host, user, password, SSL required) that point only to that database. The production database is not reachable from outside the platform. See the guide on connecting Metabase, Tableau or DBeaver.

Ready to put your app to work?

Describe it, shape it with your assistant, and publish it with White Ghost.

Join the beta