Toupas

Blog · 31 October 2026

My app works on localhost. How do I deploy it?

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, and moving your app onto that computer is what people call "deploying". At Toupas we just call it making your app live.

On localhost, only your own computer can open the app. Once it is live, anyone can open the same link from any device.

What your app needs to deploy

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:

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 deploy the app and handle most of the details 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

Claude CodeCodexCursor

Keep reading