Who this is for. The person making the case for or against headless to a stakeholder who has not seen the platform. The decision is usually taken by someone who never sees this list; after this page you can put it in front of them, line by line.

What goes, line by line

What the platform doesServer-rendered or hybridHeadless
Routing: each record has a URL from its place in the tree; custom URLs, rewrites and redirects entered in the admin are applied before anything rendersBuilt inYours to build. The API resolves a page's path and its custom URL, but your router applies the rewrites and handles every other record type
Template resolution: the record's layout names its template, and the site's templates override the platform's by pathBuilt inGone. Layouts and areas remain the content model, but choosing how to render each layout is your code
Components that authors compose into pagesEach rendered by its own layout's templateDelivered as data; your code renders each kind
Live preview with in-context editing: the record rendered with unsaved changes beside the editing form, its text editable in placeBuilt inIn-place editing is lost. Preview can be won back: the admin can load a preview route of yours instead (Preview)
Revision preview: any record's URL with ?revision= and a revision id shows that revision to a signed-in backend userBuilt inYour preview route
The page cache, with invalidation that knows which records each page usedBuilt inYour cache, invalidated by a job (Knowing when content changed)
SEO output: each record's title, description, robots, canonical URL and share image printed by the templateBuilt inThe data is in the API; printing it is yours
The sitemap at /sitemap.xml, with language alternatesGeneratedLists the platform's URLs, not yours; build your own
Error pages: the site's errors/not-found.html and its siblings, with the right statusBuilt inYours
Forms: rendering, validation messages, CSRFBuilt inSubmissions go through the API; rendering and messages are yours (Submitting a form through the API)
Member pages: sign-in, registration, password reset, the account areaRoutes and templatesThe visitor routes of the API, and your own pages
Drafts kept from the public: visitors never see an unpublished recordAutomaticYour responsibility: a backend credential sees drafts by default (Drafts)

What a headless build keeps

  • The content model: layouts, areas, components, custom entities and custom fields, edited in the admin as before.
  • Jobs, which react to every change however it was made.
  • Commerce: prices, discounts, tax, checkout and payment are worked out by the platform.
  • Image resizing and conversion, which are parameters on the image's URL and work from any front end (Image URL parameters).
  • Search, through the API.

The losses are the reason the platform's default is server-side rendering. Each one is small on its own; together they are a second application to design, build and maintain, and the next page turns them into a list of work: What a headless build must rebuild.