Who this is for. Whoever is weighing server-side templating against the alternatives. The list below is the argument for it, so it is meant to be complete rather than representative. After this page you can say what a template author never has to build on Core dna, and where each piece is documented.
The list
| What | What happens without code of yours | Read |
|---|---|---|
| Routing | Each module answers its own prefix, and pages answer every path no module claims, so a record's URL follows its place in the tree. Custom URLs, rewrites and redirects entered in the admin are applied before the path is routed | Hostname to site, prefix to abstraction |
| Template resolution | The record's layout names its template; the platform looks for it in the site's templates/ folder first and then in its own, so a site overrides a platform template by putting a file at the same path | Template resolution order |
| Areas and components | Editors fill the areas of a layout and compose components into collections; each component is rendered by its own layout's template | The layout model |
| The page cache | Pages rendered for visitors who are not signed in are stored, per hostname and path, for a day by default. Saving a record clears the pages that showed it. A CDN can be turned on in front of it | The caching tiers |
| SEO | Every record has SEO settings (title, description, keywords, canonical URL, robots, share image) for the template to print; /sitemap.xml is generated from published records, with language alternates | Taxonomy, URLs and SEO |
| Member sign-in | Sign-in, sign-out, registration, forgotten and reset passwords, email confirmation, sign-in links and the account area are routes of the platform, rendered by your templates. Sign-in with external providers is configured, not coded | Guide 7 |
| Forms | A form is built in the admin; the platform renders its steps through your form templates, validates the answers, stores the submission and starts any jobs | Guide 10 |
| Security headers and tokens | A Content Security Policy header with a fresh nonce on every page, available to templates as _inlineScriptNonce, and a CSRF token for signed-in visitors as _csrfToken, checked on their writes | Sign-in sessions and cookies |
| Previews | Live preview beside the editing form, showing unsaved changes through your templates; any versioned record's URL with ?revision= shows that revision to a signed-in backend user | In-context editing and live preview |
| Revisions | Saving a page, post, book page or other versioned record keeps the previous version; going live, rolling back and scheduling are admin actions | Revisions, publishing and approval |
| In-context editing | In live preview, an editor types into the rendered page and the text goes back into the form | In-context editing and live preview |
| Drafts kept from the public | Visitors and members never see an unpublished record, in any template | Revisions, publishing and approval |
| Error pages | A missing record answers 404 through the site's errors/not-found.html; refused, unauthorised and failed requests have templates of their own | The edges of a page |
| Menus | Menus are records editors maintain; templates read them by name and get the active item marked | Output a menu with the current item highlighted |
| Search | An index of the site's records and search views that a template renders | Guide 11 |
| Images | Resizing, cropping and format conversion by URL parameter, and picture tags for responsive images | Image URL parameters |
Every row is something a headless front end either rebuilds or goes without (What a headless build gives up). The two that matter most to the people who will use the site every day are previews and in-context editing, which is why they have the next page to themselves.
Engine choice is a separate decision
Server-side templating on Core dna means Smarty or Twig, and both are fully supported. The platform routes, caches, previews and hands templates the same variables whichever a site uses, and everything in the list above works the same in both. The choice between them is made once per site, for reasons this guide does not go into: Smarty and Twig side by side covers it.