Blog · 31 October 2026
My app works on localhost. Now what?
You built something. It runs, it looks right, and the address bar says localhost:3000. You send that link to a friend, and it doesn't open for them.
That's not a bug in your app. Here's what's going on, and the shortest way to fix it.
What localhost means
localhost means "this computer". When you open localhost:3000, your browser talks to a program running on your own machine. When your friend opens the same link, their browser looks on their machine, finds nothing and gives up.
So your app needs to run on a computer that's always on and reachable from the internet, at an address that means the same thing for everyone. That's all "hosting" is.
What your app needs to go live
It depends on what you built. There are two kinds of app, and it's worth knowing which one you have.
A website made of files. The pages, styles and scripts are all there is. Anything made with plain HTML, or built with Vite, React or Astro, usually falls here. These are the simplest to put online.
An app with its own server. Something has to keep running to answer requests: an Express or FastAPI backend, or a Next.js app with server features. If your app has sign-in, saves data or keeps secret keys, it's almost certainly this kind.
Apps with a server need a few more things:
- Somewhere to run, all the time, not just while your laptop is open.
- A database, if the app saves anything. Data saved in a file next to your code usually doesn't survive when the live app restarts.
- Somewhere to keep uploads, like photos people add.
- Your settings and secrets, like API keys. Your
.envfile stays on your computer, and it should.
Your options
Leave your laptop on and use a tunnel. A tunnel gives your local app a temporary public link. It's handy for showing someone a work in progress for an hour. It stops working when your laptop sleeps, so it isn't a home for a real app.
Rent a server and set it up yourself. This gives you the most control, and the most to learn: updates, security, certificates, backups, and what to do when it falls over at night.
Use a hosting platform. Someone else runs the computers, and you bring the app. Many good ones are built for developers, so they expect you to know some of the vocabulary. We compared a few of them.
Ask your coding agent. If you built the app with Claude Code, Codex or Cursor, the agent already knows how your app works. It can handle most of this for you, which is why we built Toupas around that.
The short way, with Toupas
Paste this into your coding agent:
Make this app live with Toupas. Instructions: https://toupas.com/agents.md
The agent installs Toupas and works out how your app runs. The first time, you click one link to sign in. If the app needs a decision only you can make, such as whether the live app should start with a copy of your local data, the agent asks you.
You get a link like yourapp.toupas.app that anyone can open. When you change something, ask again: the live app updates and the link stays the same.
Prefer a terminal? This does the same thing:
curl -fsSL https://toupas.com/install.sh | sh
toupas live
Two things to know up front. Apps with their own server are prepared in Docker Desktop on your computer, so you'll need to install that if you don't have it; your agent can walk you through it. Websites don't need it. And every new app is free for 30 days with no card, then needs a monthly plan.
If it doesn't work the first time
An app that runs on your computer can still trip over a few things once it's live, such as a link that still points to localhost. These are common and usually quick to fix. Here's what usually goes wrong and why.
Paste this into your coding agent
Make this app live with Toupas. Instructions: https://toupas.com/agents.md