Guides / AI Builder Hosting
Where to Host an App Built with Claude
An app built with Claude can be hosted on Static.app if it runs entirely in the visitor's browser. That covers calculators, quizzes, dashboards, trackers, and React or Vue single-page apps. You import the artifact, or upload a ZIP of the built files, or have Claude Code publish it for you. If the app needs its own server, a database, or a private API key, Static.app can host the front end, but that other part has to run somewhere else.
Will your Claude app run on a static host?
Your app will run on a static host if everything it does happens in the browser. Static hosting sends your files to the visitor as they are and runs no code on the server. Check your app against these two lists before you start.
These work on Static.app:
- HTML, CSS, and browser JavaScript
- React, Vue, Angular, and similar apps, once they are built into plain files
- Data kept in the visitor's own browser with
localStorage - Calls to public APIs that accept requests from a browser and need no secret key
- Forms that send entries to your dashboard, using the
static-formattribute
These do not:
- Server code, such as PHP, Node, or Next.js API routes and server rendering
- A database of your own
- Private API keys, because anything in browser code can be read by visitors
- Claude's own features for artifacts: its saved storage, calls to Claude, and connected apps
How to host your Claude app on Static.app
There are three routes, and the right one depends on where Claude built the app. All three end with the same kind of live website.
Route A: The app is an artifact in Claude
- Open the artifact, click Share, choose Anyone with the link under Who has access, and copy the link. On Team and Enterprise plans, an owner has to allow that option.
- Paste the link into Import from URL on the Claude hosting page, then finish the signup to publish it.
- Open the live page and try every button and input.
Artifacts that connect to other websites cannot use Anyone with the link, so the import is not available for them. If that is your app, or the imported page does not behave, ask Claude for a single file: "Rewrite this as one self-contained HTML file with all the JavaScript and CSS inline." Save it as index.html, zip it, and upload it on the HTML file upload page.
Route B: The app is a project from Claude Code
- Build the project, usually with
npm run build. Static.app does not run a build for you, so this step happens on your computer. - Find the folder the build created. Vite uses
dist, and Create React App usesbuild. For Next.js, turn on static export withoutput: 'export'innext.config, which writes anoutfolder. - Zip what is inside that folder, so
index.htmlis at the top level of the ZIP. - Drop the ZIP on the HTML file upload page, choose a subdomain, and create your account.
Route C: Let Claude Code publish it for you
The Static.app MCP connector lets Claude Code publish and update your apps from the terminal.
- Create an API key in your Static.app account under Account, then API Keys, and store it in an environment variable called
STATIC_API_KEY. - Add the connector with this command:
claude mcp add --transport sse --scope user static-app https://mcp.static.app/sse --header "Authorization: Bearer $STATIC_API_KEY" - Ask Claude Code: "Build this project, zip the dist folder, and publish it on Static.app as a new website called my-app."
When you have a new version, ask it to replace the website with the new build and keep the same address. Keep your API key out of the project's code, and set an expiry date on it.
Turn on JavaScript application if your app has routes
If your app has its own paths, such as /settings or /reports/42, turn on the JavaScript application setting. Without it, opening or refreshing one of those paths returns a 404, because no such file exists on the server.
- Open your website in the dashboard and go to its settings.
- Tick JavaScript application and save.
Every path that does not match a real file now loads index.html, and your app's router takes it from there. You need to do this yourself even if Claude Code published the app, because the connector cannot change it. Apps that use hash URLs, like /#/settings, work without the setting. Once it is on, the server no longer returns a 404 for a wrong address, so give your app its own not-found page.
What changes when an app leaves Claude
Some artifact features are provided by Claude itself, so a copy hosted anywhere else does not have them. Here is what to do about each one.
Saved data
Claude's artifact storage belongs to Claude. On your own website, ask Claude to save data with localStorage instead. It stays in each visitor's browser, so people do not see each other's data, and it does not follow them to another device.
Calls to Claude
An artifact can use Claude while it runs because the visitor is signed in to Claude and uses their own plan. On a website of your own that connection does not exist. Remove the AI feature, or build a small backend on another service that calls the Claude API.
API keys
Never put a private key in your app's JavaScript, because anyone can read it in their browser. A key that needs to stay secret has to live on a server you run elsewhere, and your app calls that server instead.
Databases and logins
Static.app does not run a database or manage user accounts for your app. If you need them, your app can talk to a separate hosted service from the browser, and Static.app keeps serving the front end. To simply keep strangers out, you can put a password on the whole website.
Finish the app
- Your own domain: add it from your dashboard on a paid plan, then add the two DNS records it shows you. SSL is set up automatically.
- Install it like an app: ask Claude to add a web manifest and a service worker, and upload them with the rest of the files. Visitors can then add the app to their phone or desktop.
- Small fixes: edit files in the browser code editor in your dashboard. The address stays the same.
What it costs
You can start with a 7-day trial and no credit card. It covers one website, 50 MB of storage, a subdomain, and an SSL certificate. When the trial ends, the app goes offline until you start a subscription, and subscribing brings it back. Paid plans start at $6 a month, as listed on the pricing page.
Common questions
The answers below cover React apps, Claude's own hosting, what happens if you cancel Claude, and how to keep an app up to date.
Can I host a React app built with Claude?
Yes, as static files. If it is a project, run the build and upload the output folder. If it is an artifact, import its link, or ask Claude for a single self-contained HTML version. Turn on JavaScript application if the app uses React Router paths.
Can Claude host my app?
Claude can share an artifact by link, and that is often enough for a small tool. The link stays on an Anthropic address and you cannot attach your own domain. People who open it without signing in also lose the parts that use Claude or connected apps.
Will my app keep working if I cancel Claude?
Yes. The hosted copy is plain files on Static.app, so it does not use your Claude account. It only needs an active Static.app plan after the trial.
Can Claude Code update the app after it is live?
Yes, through the MCP connector. Claude Code can edit single files or replace the whole app with a new build, and the address stays the same.
Is a website the same as an app here?
To Static.app they are both folders of files. The difference is what you need to check first. If your project is mostly pages, where to host a website built with Claude is the simpler guide.
Ready to try it?
Host your Claude app