Skip to content
CAMPUX Cloud Bootcamp
Field notes · Hosting
Static Web Apps vs App Service

Azure Static Web Apps vs App Service: Which One Should You Actually Use?

By Captain O8 min read

Two Azure services will both host your web app, and beginners burn hours picking between them. The choice is simpler than the marketing makes it look — it comes down to one question about your app, and everything else follows from the answer.

New to cloud? CAMPUX is a free, build-first course. Start here →

If your app is a static site or a JAMstack front end — a React, Vue, Angular, or Svelte build that talks to an API — use Static Web Apps; if it server-renders pages or needs a real, always-on backend process, use App Service. That single distinction settles most of these decisions before you ever open the pricing page. The rest of this note is the reasoning behind that sentence, plus the honest edges where it stops being that clean.

Both services live under the same Azure "App Service" family, both give you managed hosting with free TLS and CI/CD, and both will happily serve a website. That overlap is exactly why people get stuck. So let me separate them the way I would for a junior engineer standing at my desk — by what each one is genuinely built for.

What each service is actually for

Azure Static Web Apps is built for the modern front-end workflow. You point it at a GitHub or Azure DevOps repository, and every push builds your static assets and pushes them to a global edge network — the files sit physically close to your users instead of on one server in one region. Dynamic behavior comes from a serverless API, not a standing server. It is the service you want when the sentence "we have a single-page app and a small API" describes your project.

Azure App Service is managed hosting for a running application. You deploy code — .NET, Java, Node.js, Python, PHP — or a container, and Azure runs it as a live process on compute you rent, called an App Service plan. It server-renders, holds connections open, runs background work inside the app, and does anything a normal web server does. It is the service you want when your app is not just files; it is a program that needs to keep running. If you are new to it, the full App Service explainer walks through the plan model.

Static Web Apps serves static files from a global edge with a scale-to-zero Functions API; App Service runs a full server app on a regional plan.Static Web Apps — globalusersedgestatic + CDNmanagedFunctions APIglobal edge · API scales to zero · free TLSApp Service — regionalusersAPP SERVICE PLAN · one regioninstanceinstancea full server app on always-on instances — scales up or out, not to zero
Figure — The split is architectural. Static Web Apps serves your built static files from a global edge network and runs any API as managed Azure Functions that scale to zero — ideal for a SPA or JAMstack site, with free TLS on custom domains at every tier. App Service runs a full server application on an App Service Plan in one region: always-on instances you scale up or out (not to zero), the right home for server-rendered apps, long-running processes, and stacks that need a real backend. Static and edge-first goes to SWA; server-first goes to App Service.

Hosting model, scaling, and global vs regional

This is where the two services stop resembling each other. Static Web Apps has no server you scale — your assets are distributed to a global edge and served from wherever the user is; scaling is something Azure handles invisibly because there is no instance to size. The API side runs on Azure Functions in the Consumption model, which scales per request and idles to nothing when traffic stops.

App Service is regional. You pick a region, your plan lives there, and requests travel to it. Scaling is explicit and it is yours to reason about: scale up to bigger instances, or out to more of them, with autoscale rules if you set them. That control is the point — you get a real, warm process you can tune — but it also means you are paying for instances whether or not requests arrive, and users far from your region pay the latency unless you add a CDN or Front Door in front.

Static Web Apps scales because there is nothing to scale; App Service scales because you told it how. One is a convenience, the other is a control — pick the one your app needs.

Custom domains, HTTPS, and auth compared

On custom domains and TLS, Static Web Apps is the more generous of the two. Even the free tier lets you attach a custom domain with an auto-renewing certificate at no cost. App Service will do the same, but a custom domain on your own hostname wants a Shared or Basic tier and up — the Free tier only gives you the *.azurewebsites.net address, and free managed certificates come with the paid plans. So "I want my domain on HTTPS for zero dollars" is a Static Web Apps sentence.

On auth, they take different shapes. Static Web Apps ships built-in authentication with Microsoft Entra ID and GitHub as providers, plus role-based authorization you configure declaratively — no login code to write for the common cases. App Service has its own built-in authentication ("Easy Auth") supporting more providers, and because you control the runtime you can also drop in whatever identity library your framework uses. Static Web Apps trades breadth for zero-plumbing simplicity; App Service trades simplicity for reach.

Cost compared

Cost is usually where the decision gets made for real projects, so here are the shapes as of August 2026 — treat them as ranges, since Azure adjusts pricing and region matters.

Static Web Apps has a genuinely free tier: $0, custom domain and TLS included, meant for hobby and small production sites. Its Standard tier runs about $9 per app per month plus usage, and buys you an SLA, more staging environments, higher limits, and the ability to bring your own backend instead of the bundled Functions.

App Service starts free for experiments, but a production-grade plan means a paid tier. Basic B1 lands around $13 per month on Linux and higher on Windows, and that is a floor you pay continuously; Standard and Premium tiers climb from there as you add slots, autoscale headroom, and instances. The structural difference is simple: Static Web Apps bills close to your actual usage, while an App Service plan bills for reserved compute that sits warm whether or not anyone visits. If you are cost-cutting an Azure estate, that idle-plan bill is one of the first things to hunt down — see cutting Azure costs and the cheapest way to host a static site on Azure before you commit.

Static Web Apps vs App Service — the comparison that matters
DimensionStatic Web AppsApp Service
Hosting typeStatic assets on a global edge; no server you manageManaged runtime for a live app or container on a rented plan
Backend / APIManaged Azure Functions (Consumption); Standard can bring your ownFull server process — server-side rendering, long-running work, sockets
ScalingAutomatic and invisible; nothing to sizeExplicit scale up or out, with autoscale rules you define
ReachGlobal edge distribution built inRegional; add a CDN or Front Door for global reach
Custom domain + HTTPSCustom domain and free auto-renewing TLS on every tier, including FreeCustom domain needs Shared/Basic and up; free managed certs on paid tiers
AuthBuilt-in Entra ID and GitHub, declarative roles, no login codeBuilt-in Easy Auth (more providers) or your framework's own library
CI/CD sourcesGitHub and Azure DevOps, wired on creationGitHub Actions, Azure Pipelines, zip deploy, container registries
Free tierYes — real free tier with domain and TLSYes for testing; no custom domain or slots on Free
Typical monthly cost$0 (Free) to about $9/app (Standard) plus usageFrom about $13/mo (Basic B1, Linux) and up, billed continuously

The honest gap — when Static Web Apps constraints push you to App Service

Static Web Apps is the right first stop for a front end, but it is opinionated, and those opinions are where it stops being the answer. Three walls show up in practice:

None of this is a knock on Static Web Apps. It is a specialist, and specialists are excellent right up to the edge of their specialty. The engineering skill is naming which side of that edge your app sits on before you build, not after. And if your workload is really a fleet of containers or microservices, neither of these is the whole story — that is a Container Apps vs AKS vs App Service conversation.

The migration path is real, not a trap

Starting on Static Web Apps does not lock you in. Front-end assets are just files; moving them is nothing. The work is the backend — if you began on the managed Functions API and outgrow it, you lift that logic onto an App Service plan and repoint DNS. Treat Static Web Apps as the cheap, fast first stop, and graduate to App Service the day your app needs a real server. Once you are on App Service, deployment slots make those releases reversible.

Questions people also ask

Is Azure Static Web Apps cheaper than App Service?

For a static front end, yes, usually by a wide margin. The Static Web Apps Free tier costs nothing and covers custom domains and TLS; the Standard tier runs about 9 US dollars per app per month plus usage. The cheapest production App Service Basic tier starts around 13 US dollars per month on Linux and climbs from there, because you pay for a dedicated compute plan whether traffic arrives or not.

Can Azure Static Web Apps host a backend API?

Yes, but through a serverless model. The managed API is Azure Functions on the Consumption plan, deployed alongside your site and reached through a built-in reverse proxy with no CORS setup. On the Standard tier you can bring your own backend instead — link an existing Function App, App Service, container app, or API Management instance. What you do not get is a long-running server process baked into the site itself.

Should I use Static Web Apps or App Service for a React app?

If the React app is a client-rendered single-page app that talks to an API, Static Web Apps is the better fit — global edge delivery, free TLS, and pull-request preview environments. If you server-render it, for example with Next.js in a Node server mode or any setup that needs a persistent server process, App Service gives you the runtime control that model expects.

Does Static Web Apps support server-side rendering?

Partially, and with framework-specific limits. Static Web Apps targets apps where server-side rendering is not required, and its dynamic pieces run as serverless functions rather than a standing server. Some frameworks like Next.js and Nuxt have supported integrations, but full, always-on server rendering with arbitrary server code is the case where App Service is the cleaner answer.

Can I move from Static Web Apps to App Service later?

Yes, and it is a common path. Your front-end assets are just files, so moving them is trivial; the real work is the backend. If you started on the managed Functions API you migrate that logic to a service running on an App Service plan, then repoint your custom domain and DNS. Starting on Static Web Apps does not lock you out of App Service — treat it as a first stop, not a cage.

Further reading — the Microsoft docs
Your next class · free
You've read the idea. Class 11 — App Service is where you build it, hands-on — no account needed.Start Class 11 →
Captain O
Founder & instructor · CAMPUX Cloud Engineering Bootcamp
Drilled in Class 11 — App Service. Back to all field notes →