Guide · 4 minute read · 21 October 2026
Does my app need a server? How to tell in two minutes
Before you choose where your app goes online, you need one answer: does it need a server? It decides which hosts can take it and roughly what it will cost. You can usually find out in a couple of minutes without reading any code.
The two kinds of app
Some apps are a set of files: pages, scripts, styles and pictures. The visitor's browser downloads them and does all the work. A portfolio, a quiz, a calculator or a to-do list that saves to the visitor's own browser is usually this kind. These are called static sites or single-page apps.
Other apps have a part that keeps running on a computer somewhere, even when nobody has the page open. That part is the server. An app needs one when it signs people in to its own accounts, keeps data in its own database, sends email, takes payments, or uses a paid service with a key the visitor must never see.
A static site or single-page app
An app with a server
Look at the folder
Open the project folder your AI tool gave you. These point to a server:
- a folder called
server,apiorbackend - Python files (ending in
.py) next to a file calledrequirements.txtorpyproject.toml - a file like
server.jsorindex.jsat the top that mentionsexpress,fastifyorcreateServer - a Next.js app (it has a
next.configfile) with a folder calledapp/apiorpages/api
These point to a static app:
- a file called
index.htmlnear the top - a file called
vite.config.jsorvite.config.ts - a
package.jsonwhosebuildline saysvite buildorreact-scripts build
If you find signs of both, the folder probably holds two parts, a website and a server, and each goes online in its own way.
Look at the settings
If there is a file called .env or .env.example, the names in it tell you a lot.
A name like DATABASE_URL, or any name with SECRET in it, points to a server. Those values have to stay hidden, and only a server can hide them.
Names that start with VITE_, NEXT_PUBLIC_ or REACT_APP_ are values the app copies into the files the browser downloads. They work without a server, and anyone who opens the page can read them.
Apps that use Supabase or Firebase
Many apps made with AI keep their data in Supabase or Firebase and talk to it straight from the browser. These often need no server of their own, because the database company runs that part. The key they put in the browser is meant to be public, as long as the database's access rules are switched on: Row Level Security in Supabase, Security Rules in Firebase. Without those rules, anyone with the page open can read or change the data.
A folder called supabase/functions holds small pieces of server code that Supabase runs for you. They don't make your app need a server of its own.
Ask your AI tool
If you're still not sure, ask the tool that wrote it. Paste this in:
“Does this app need a server running all the time, or can it be built into static files? If it needs a server, which parts need it and why?”
The second half of the answer is worth reading. If one small feature needs a server, such as a contact form, there may be a service that handles it, and the rest of the app can stay static.
Why it matters
A static app can go on hosts that only hand out files, and many do that free for small sites. It copes well with a sudden crowd, because each visit is just a file download.
An app with a server needs a host that runs it all day. That usually costs money every month. Some hosts put a free server to sleep when nobody visits, so the first visitor after a quiet spell waits several seconds while it starts. What each part costs is in its own guide.