Who this is for. The technical lead or architect running a project kickoff, with the product owner in the room. After this page you can score a project on traffic, authoring, team skills, personalisation, commerce and SEO, and show the page each verdict comes from.
The table
Read across a row: each cell says what that shape gives or costs on that dimension, and links to the page of this guide it rests on. The first column holds the question to ask in the room. Write the answer, and the shape it favours, in the last column.
| Dimension | Server-side | Hybrid | Headless | Your project |
|---|---|---|---|---|
| Traffic profile How many views come from signed-out visitors, and how sharp are the peaks? | A page rendered for a signed-out visitor is stored per hostname and path, for a day by default, and sent before any template runs. A CDN can sit in front. | The same stored pages; only the per-visitor fragments are requested on every view. | API responses are cached by your front end: its own cache and CDN carry the load. | |
| Authoring needs Do authors expect to edit on the page, and to preview a draft before publishing? | In-context editing and live preview are built in. | Built in, as for server-side. | In-place editing is given up; preview is a route you build and enter in the Alternative live preview url setting. | |
| Team skills Who will build the site, and who will maintain it after launch? | A template author in Smarty or Twig. Which engine is a separate decision. | The same template author, plus a JavaScript developer who owns the fragments, the one client module and the bundle split. | A front-end application team that also builds and maintains routing, preview, the sitemap, redirects, SEO tags and cache invalidation (the worksheet). | |
| Personalisation Does any part of a page differ by visitor: a signed-in name, a cart, recommendations? | A personal element inside a stored page shows one visitor's data to the next, and taking the page out of the cache renders every view from scratch (what one personal element does). | The documented pattern: a bundle switched on in site data fetches the personal block as a fragment, with its parameters declared for the cache key (the bundle, what always needs a fragment). | Your own application composes every view, so personalisation is part of it from the start (where composition happens). | |
| Commerce Is there a cart or a checkout, and do buyers sign in? | A cart count or a signed-in checkout is per-visitor, so a commerce site seldom stays server-side alone. | A single-page checkout: state handed to the browser once, every call through one client module carrying the CSRF token, as in the course provider's study. | The whole checkout interface is yours, built against the same commerce API. | |
| SEO How much traffic comes from search, and who maintains the SEO fields? | The template prints each record's SEO settings and the sitemap is generated (built in). A crawler is never signed in, so it gets the same stored page as any signed-out visitor. | As for server-side: the crawler gets the stored page, before any personal fragment loads (where the platform hands off a request). | The SEO data is in the API. Printing it, and building the sitemap with the same exclusions, is yours (SEO tags and the sitemap). |