Skip to content

Test your website now

Free, no card. We read only public pages.

Run free audit →

Hosting and deploy

What is localhost:3000, and why won't it load?

localhost:3000 is a development server on your own computer. Which tools use port 3000, and how to fix refused connections and port in use errors.

localhost:3000 is your own computer, reached on port 3000, where many development servers run by default, including Next.js, Create React App, Express examples and Rails. If it does not load, the dev server is not running, crashed, or started on a different port. If the port is busy, stop the other process or start the server on another port.

Published · Last updated

By Michal Měřínský. Audit methodology.

What localhost:3000 means

localhost is a name that always points to your own machine, at IP address 127.0.0.1, or ::1 in IPv6. The number after the colon is the port, which lets many programs listen on the same machine. Port 3000 has no special meaning. It is simply the default many JavaScript and Ruby tools picked. Only you can open it, from the same computer.

Which tools use port 3000

  • Next.js: next dev starts on 3000.
  • Create React App, now deprecated, started on 3000.
  • Many Express and Node examples use 3000.
  • Ruby on Rails starts on 3000. Vite uses 5173 and many Java servers use 8080, so check which one your project uses.

Why it will not load

  • The dev server is not running, or stopped when you closed the terminal.
  • It crashed on startup. Read the terminal output for the error.
  • It started on another port because 3000 was busy. Most tools print the actual address when they start.
  • You opened https://localhost:3000 for a server that only speaks http.
  • It runs inside Docker or a virtual machine and is not published to your host.

Port 3000 already in use

The error EADDRINUSE means another process holds the port, often a dev server you forgot. Find and stop it:

# macOS and Linux
lsof -i :3000
kill <PID>
# Windows
netstat -ano | findstr :3000
taskkill /PID <PID> /F

Or start on another port, for example next dev -p 3001.

Opening it from your phone

Other devices cannot use localhost, because localhost on a phone is the phone. Use your computer's local network IP address, such as 192.168.1.20:3000, and start the server so it listens on all interfaces. Some tools need a flag for that, such as --host or -H 0.0.0.0.

Never put localhost URLs in production code or environment variables. A deployed site calling http://localhost:3000 works only on your laptop.

What a scan can and cannot tell you

WebAuditOS cannot reach localhost. It scans public URLs only. Once deployed, it reports failed resource requests and console errors, which is how production code still calling localhost shows up, and compares served HTML with rendered content for client-side apps.

If your deployed site shows failed requests to localhost, an environment variable or hard-coded URL from development reached production.

Short answers

Can other people open my localhost:3000? No. Deploy the site or use a tunnel to share it.

Why does localhost:3000 refuse to connect? Nothing is listening there. Start the dev server and check its port.

How do I change the port? Most tools accept a flag such as -p 3001 or a PORT environment variable.

Is localhost the same as 127.0.0.1? Yes, for IPv4. ::1 is the IPv6 equivalent.

In the product

The checks this maps to

Every check named here runs on every scan, on every plan - what a plan changes is how many pages are crawled, how long the history is kept and what you can do with the result. These are the ids the findings carry, so you can match a line in a report to the explanation above.