What is PaaS (Platform-as-a-Service)?

Last updated: July 2026

PaaS is a cloud model where the provider runs the platform your code deploys onto, while you still write and manage the application. In plain terms: you rent the platform, but the app is still yours. The NIST definition draws the line precisely — the provider controls servers, operating systems, and runtimes; you control the deployed application and its data.

Key takeaways

QuestionAnswer
What it isA managed platform that builds, runs, and scales the app code you push
What you still doWrite and maintain the entire server application
Problem it solvesServer provisioning, OS patching, deployment plumbing
Billing modelPer instance or tier — capacity stays on whether traffic comes or not
vs. BaaSPaaS hosts the backend you write; BaaS ships the backend pre-built

What using a PaaS looks like

The signature PaaS experience is deploying with one command and no infrastructure setup:

# The typical PaaS workflow: push code, the platform does the rest
$ git push platform main
-----> Runtime detected: Node.js
-----> Installing dependencies, building release
-----> Launching web process (2 instances)
       https://my-api.example.app deployed

What that command deploys, though, is still a full server application you wrote — routing, validation, database wiring, auth handling:

// server.js — on a PaaS, all of this is still yours to write and maintain
import express from 'express';
const app = express();

app.get('/tasks', async (req, res) => {
  const user = await authenticate(req);            // you built this
  const tasks = await db.query(                    // and this
    'SELECT * FROM tasks WHERE owner = $1 AND done = false',
    [user.id]
  );
  res.json(tasks);                                 // and this
});

app.listen(process.env.PORT);

That’s the essential PaaS trade: infrastructure disappears, but the backend application — and every security patch, dependency upgrade, and endpoint in it — remains your codebase.

The abstraction ladder

Each cloud service model answers one question: how much do you rent, and how much do you still run?

The cloud abstraction ladderFive steps from on-premises through IaaS, PaaS, and BaaS to SaaS, where each rung rents more of the stack — the machines, then the platform, then the backend, then the finished application.

On-premises
run everything yourself

IaaS
rent the machines

PaaS
rent the platform

BaaS
rent the backend

SaaS
rent the finished app

Five steps from on-premises through IaaS, PaaS, and BaaS to SaaS, where each rung rents more of the stack — the machines, then the platform, then the backend, then the finished application.

The responsibility split, layer by layer:

LayerOn-premIaaSPaaSBaaSSaaS
Application codeYouYouYouCustom logic onlyProvider
Backend features (auth, CRUD, storage)YouYouYouProviderProvider
Runtime & middlewareYouYouProviderProviderProvider
Operating system & patchingYouYouProviderProviderProvider
Servers, storage & networkYouProviderProviderProviderProvider

Specialized PaaS flavors exist for narrower jobs — integration platforms, mobile platforms, database platforms, communication platforms — but they all sit on the same rung: a managed place to run or connect the software you build.

PaaS vs. BaaS: the practical difference

BaaS is the next rung up, and the difference shows in what you don’t write. The task-list endpoint above — auth check, query, response — is replaced on a BaaS by a direct SDK call from any client, with access control enforced by the platform:

// JavaScript / Node.js — Back4app JS SDK
const query = new Parse.Query('Task');
query.equalTo('done', false);
query.descending('createdAt');
const tasks = await query.find();
console.log(`${tasks.length} open tasks`);
DimensionPaaSBaaS
What the provider runsThe platform under your appThe platform and the backend features
What you writeThe whole server applicationOnly custom logic, as functions
Unit of deploymentAn applicationOften nothing — clients call SDKs
Auth, database, storage, APIsYour code, their infrastructurePre-built, exposed via SDKs
ScalingConfigured per instance/tierAutomatic behind managed APIs
Best forCustom server apps you want to ownStandard backends you’d rather not write

PaaS vs. serverless

The models are cousins, not synonyms. A PaaS app runs continuously on capacity you configure; serverless compute materializes per event, bills per invocation, and scales to zero — at the price of cold starts and execution limits. In practice the line blurs: modern platforms bolt serverless functions onto PaaS-style hosting, and a serverless architecture can serve an entire API that a PaaS would have hosted as one app. The decision hinges on traffic shape: steady load favors an always-on PaaS process; spiky or idle-heavy load favors per-invocation compute.

Common use cases

  • Custom web APIs and services. A backend with logic too specific for pre-built features — pricing engines, marketplaces, internal tools — deployed without owning servers.
  • Standardizing many deployments. Teams running dozens of services adopt a PaaS so every service builds, deploys, logs, and scales the same way.
  • Migrating off self-managed servers. Existing server applications (especially twelve-factor apps) move to a PaaS mostly unchanged — same code, no more OS patching.
  • Where BaaS replaces PaaS: standard app backends. If the backend is users + data + files + notifications, pre-built features eliminate the application layer PaaS would host — this is the common case for mobile and web products.
  • Hybrid: PaaS-style custom core, BaaS for the rest. Some teams keep one custom service on a platform while user management, data APIs, and storage come from a BaaS beside it.

Should you pick PaaS or BaaS? A decision matrix

Lean PaaS when…Lean BaaS when…
The backend is your product — custom logic everywhereThe backend is standard plumbing around your product
You already have a server codebase to hostYou’re starting fresh and want to skip the codebase
You need any language, framework, or protocolSDK-covered platforms (web, mobile) are your targets
A backend team owns the server applicationThe team is frontend/mobile-first
Per-instance pricing fits steady trafficA free tier and managed scaling fit an MVP or spiky load

If most requirements are standard but a few are custom, that isn’t a reason to choose PaaS — a BaaS with an embedded functions runtime covers both sides with less code to own.

Limitations and trade-offs

  • You still own an application. Framework upgrades, security patches in dependencies, auth bugs — a PaaS hosts your backend; it doesn’t maintain it. This is the cost BaaS removes and PaaS doesn’t.
  • Vendor lock-in. Apps written against platform-specific services and deploy formats are costly to move. Mitigations: stick to open standards, containerize, prefer platforms built on open source — the same vendor lock-in caution applies up and down the ladder.
  • Cost at sustained scale. Managed convenience carries a margin; large steady workloads eventually get cheaper on lower rungs of the ladder — at the price of re-hiring the ops burden.
  • Reduced control. No OS access, limited network tuning, and runtime versions on the provider’s schedule. Compliance regimes that require infrastructure control may rule the model out.
  • Provider dependency. Outages, pricing changes, and deprecations arrive on the provider’s timeline, not yours. Judge the provider’s track record as part of the architecture.

How Back4app bridges the PaaS-vs-BaaS gap

Back4app is an open-source Backend-as-a-Service (BaaS) platform that combines a managed database, auto-generated REST and GraphQL APIs, authentication, file storage, and Cloud Code serverless functions. That places it one rung above PaaS: every app starts with the full backend already provisioned. The custom-logic gap that would otherwise pull you back down to a PaaS is covered by Cloud Code — serverless functions, triggers, and scheduled jobs. And because the stack is open source, the lock-in objection inverts: the same backend can be self-hosted on any infrastructure, so moving down the ladder later stays possible without a rewrite.

Frequently asked questions

What is PaaS in simple terms?

PaaS means renting the platform instead of the machines. The provider owns the servers, operating system, runtime, and deployment tooling; you push your application code and it gets built, run, and kept online. You still write and maintain the whole application — the platform just removes the infrastructure work underneath it.

What is the difference between IaaS, PaaS, and SaaS?

They are steps on an abstraction ladder defined by who manages what. IaaS rents you raw infrastructure — virtual machines, storage, networking — and everything from the operating system up is your job. PaaS rents you a managed platform: you bring only application code and data. SaaS is the top rung: a finished application you simply use. Each step up trades control for speed.

What is the difference between PaaS and BaaS?

PaaS gives you a place to run the backend you still have to write; BaaS gives you the backend itself. On a PaaS you write the server application — routes, auth, database wiring — and the platform hosts it. On a BaaS, standard features like authentication, database CRUD, and file storage are pre-built and consumed from client SDKs, so for common cases there is no server application to write at all.

Is PaaS the same as serverless?

No. A PaaS application typically runs continuously on instances you configure and pay for, and it scales only as configured. Serverless compute is provisioned per event: functions spin up on demand, bill per invocation and execution time, scale to zero when idle, and can pay a cold-start penalty on the first request. PaaS is about hosting an always-on app; serverless is about running code only when something happens.

Is Kubernetes or Docker a PaaS?

No — they are open-source building blocks, not platforms. Docker packages applications into containers; Kubernetes orchestrates containers across machines. A PaaS may be built on top of them and hide their complexity behind a deploy command. If your team operates Kubernetes directly, you are closer to IaaS with better tooling than to PaaS.

What are the disadvantages of PaaS?

The most cited drawbacks are vendor lock-in (apps written against platform-specific services are costly to move), reduced control over the runtime and operating system, pricing that can climb steeply at sustained scale, dependence on the provider's uptime and product decisions, and compliance constraints when regulations require infrastructure control. Choosing platforms based on open standards or open source softens most of these.

How is PaaS priced?

Typically per running instance or resource tier, billed monthly or per hour — you pay for the capacity that keeps your application online, whether or not traffic arrives. That makes cost predictable but never zero. It contrasts with serverless per-invocation pricing, which drops to zero when idle, and with BaaS plans, which usually bundle requests, storage, and users into a free tier plus flat tiers above it.

Who should use PaaS?

Teams that want to write and own a custom server application without operating infrastructure: product teams shipping web APIs, companies standardizing deployment across many services, and developers who need full control of backend logic but none of the server management. If your backend needs are mostly standard — users, data, storage — a BaaS removes even the application-writing step and is usually the faster path.

Related terms

Compare with

Further reading

Ready to build your backend?

Start your project on Back4app in minutes — database, auth, APIs, and Cloud Code included. No credit card required.

Written and reviewed by Back4app Engineering, Back4app Engineering · Published 2026-07-20