Bring code, not servers
On IaaS you assemble machines into a platform; PaaS starts where that work ends. You connect a repository or push a build, and the platform assigns compute, installs the runtime, wires the domain and TLS, and restarts or scales the application by policy. The unit you think in is the app, not the server — for a small team, that regularly means shipping in hours instead of weeks of infrastructure setup.
The costs are structural, not hidden. Per unit of compute, PaaS is priced above the raw infrastructure it abstracts; at scale that gap becomes a real bill. And each platform has opinions — supported runtimes, build conventions, add-on ecosystems — that your application quietly grows around, which is what lock-in actually is. The modern frontend platforms (Vercel, Netlify and peers) are PaaS in this exact sense, as was Heroku before them: loved for velocity, argued about at invoice time.
- Fits well — product teams that want engineering hours on features, apps with standard shapes (web app + database + workers), fast-iterating projects.
- Fits badly — exotic runtimes and system-level dependencies, workloads whose economics demand raw infrastructure pricing, organizations that must avoid platform coupling.
