How to deploy an app built with Claude Code
Claude Code cannot deploy on its own, and there is no hidden command that changes that. It writes and runs code where you are sitting. Getting the result online is a separate decision with three real answers: push it to a platform like Vercel or Railway yourself, run your own server, or connect a hosting MCP server so the agent deploys it for you. Which one is right depends almost entirely on whether the app needs to know who is using it, because that single requirement is what turns a ten minute deploy into a weekend.
Last checked against Anthropic's documentation on . Claude changes often. If something here no longer matches the help centre, the help centre is right.
Getting a Claude Code app online
-
Answer the accounts question first
Does the app need to know who each person is? If no, any static or serverless host will do and this is a short job. If yes, you need sign-in, sessions and a database with per-user rows, and that is the whole cost of the exercise.
-
Check what it needs to keep
Data in a local file or an in-memory store will not survive deployment. Ask the agent what the app persists and where. This is the single most common thing that works locally and is empty in production.
-
Pick the route from those two answers
No accounts and no data: a static or serverless host, free tier, done today. Accounts and data: either build the auth and database yourself, or use a platform that already has them.
-
Deploy the smallest working version
Deploy before adding features, not after. The first deploy always surfaces environment differences, and finding them in a small app is much cheaper than in a finished one.
-
Open it as somebody else
A private window, or a different device, signed in as nobody. Almost every deployment bug in an app like this is invisible to the author because the author is already authenticated.
Why there is no deploy command
Not an oversight, and worth understanding rather than working around. Anthropic's description of the product:
Claude Code is an agentic coding tool that reads your codebase, edits files, runs commands, and integrates with your development tools.
Claude Code overview, Claude Code documentation
Available in your terminal, IDE, desktop app, and browser.
Claude Code overview, Claude Code documentation
Reading, editing, running and integrating are all things done to a codebase. A terminal, an IDE, a desktop app and a browser are all places a person works. Nothing in the product's scope is a place an app lives, so there is no deploy target for a deploy command to point at.
Claude Code will happily run your deploy script, push a branch, or call a platform CLI, because those are commands. What it cannot do is be the destination.
The three routes, and what each really costs
Costs below are setup effort and ongoing money, not code quality. All three produce a working app.
| Push to a platform | Your own server | Hosting over MCP | |
|---|---|---|---|
| Who does the work | You, once per project | You, forever | The agent |
| Time to first URL | Minutes to hours | Hours to days | About a minute |
| Sign-in | You add an auth provider | You build it | Already there |
| Database | You add a managed one | You run one | Already there, with permissions |
| Custom domain | Yes | Yes | A subdomain, not your own domain |
| Any language or framework | Mostly | Yes | No. It is a web app on our runtime |
| Monthly cost | Free tier, then real money | A server bill from day one | Free today, no paid plan to buy |
| You own the stack | Partly | Entirely | No |
Read the last three rows before the first three. If you need your own domain, an unusual runtime, or ownership of the stack, the MCP column is not for you and no amount of convenience in the top rows should change that.
The accounts question, which decides everything else
A deploy is easy right up until the app has to tell two people apart. Then it needs, at minimum: somewhere to store users, a way to prove who is signing in, sessions that survive a refresh, and a data model where every row knows who owns it. That is not one afternoon, and it is not something a deploy step gives you.
The reliable test is a single question: would two different people opening this app see different things?
- No. A landing page, a calculator, a public dashboard, a documentation site. Any static or serverless host handles this on a free tier and you can be done in an hour.
- Yes. A rota, a tracker, a form with submissions, anything described with the word my. You need identity, and identity is the whole cost of the project.
Choosing the first answer when the truth is the second is the usual cause of a rewrite, because the app grows around the assumption that everyone is the same person, and unpicking that later touches every query.
Letting the agent deploy it
MCP is the documented mechanism for extending Claude Code past what it does natively:
Claude Code can connect to hundreds of external tools and data sources through the Model Context Protocol (MCP), an open source standard for AI-tool integrations.
Connect Claude Code to tools via MCP, Claude Code documentation
and the reason it matters after launch rather than only during it:
Once connected, Claude can read and act on that system directly instead of working from what you paste.
Connect Claude Code to tools via MCP, Claude Code documentation
Homespun is where the same agent that built the thing can host it. People sign in with their email, so the app can tell who is who and every row remembers who created it; permissions are set per collection, so some people can approve and others can only submit; and the agent keeps read and write access to the collections it is allowed, so it can keep working on the data instead of handing you a page and walking away. It is free today, and there is no paid plan to buy.
Concretely, the deploy stops being a step you perform and becomes a sentence you say, and the agent still has the app and its data in reach afterwards, so the next change is another sentence rather than another deploy.
Five things that work locally and break on deploy
In rough order of how often they catch people out. None of these is specific to Claude Code, but an agent-written app hits them more often because nobody chose the local shortcuts deliberately.
- Data in a local file. Writing to disk works on your laptop and silently resets on most hosts, because the filesystem is ephemeral. Ask what the app persists and where, before deploying rather than after.
- Secrets in the code. Fine in a directory only you can read, not fine in a repository or a build log. Move them to environment variables first.
- Hardcoded localhost. URLs pointing at your own machine appear in config, in fetch calls and in redirect URIs, and each one fails differently.
- An in-memory store. Sessions or state held in a variable survive locally because the process never restarts. In production it restarts, and everyone is logged out.
- Testing only as yourself. You are already signed in, so the sign-in path is the one thing you never exercise. Open it in a private window.
Questions people ask next
Can Claude Code deploy apps?
Not by itself. Anthropic describes Claude Code as a tool that reads your codebase, edits files and runs commands, available in the terminal, IDE, desktop app and browser, and none of those is somewhere an app runs for other people. It can run a deploy script or a platform CLI you already have, and it can deploy through an MCP server that provides hosting, but there is no built-in deploy target.
How do I host a web app built with Claude Code?
Three routes. Push it to a platform such as Vercel, Netlify or Railway and add auth and a database yourself. Run your own server and build everything. Or connect a hosting MCP server so the agent deploys it and supplies sign-in and a database. The choice is decided mostly by whether the app needs to know who each user is.
Is there a free way to deploy a Claude Code app?
Yes. Static and serverless hosts have free tiers that comfortably cover a small app with no accounts. Once you need sign-in and a persistent database the free tiers usually stop being enough, which is the point at which a platform that includes both starts to compare well.
Why does my Claude Code app work locally but not after deploying?
Almost always one of five things: data written to a local file on an ephemeral filesystem, secrets that were only in your directory, hardcoded localhost URLs, state held in memory across a restart that no longer happens, or a sign-in path you never tested because you were already signed in.
Can Claude Code keep working on the app after it is deployed?
Only if it can still reach it. With a hosting MCP server connected, Anthropic's documented behaviour is that Claude can read and act on that system directly instead of working from what you paste, so the agent keeps access to the live app and its data. With a plain platform deploy, the agent sees only the code, not what is running.
Primary sources
Every claim about Claude on this page comes from Anthropic's own documentation, quoted rather than summarised so you can check it yourself.