The Letterbox Theme
The Letterbox is the default theme that ships as slug default. Its templates live in builder/site_templates/, a set of Template Toolkit pages composing every public URL plus its entire stylesheet, and this reference maps out all of them so you can clone or replace them with confidence.
How the default theme works on disk
Letterbox’s templates sit in site_templates/ directly (unlike cloned themes, which live under builder/themes/<name>). When your active theme is Letterbox, that’s where the builder reads from and where its build fingerprint locks theme changes; when you activate a cloned theme instead, its own directory under builder/themes/ is used.
The only menu slots the stock theme declares are header and footer, with a one-level dropdown tree supported in the header.
The templates
| File | Lines | What it renders |
|---|---|---|
_head.tt | ~1700 | Every page’s head: the complete stylesheet, cookie-notice markup/styles, skip-link, inline analytics loader, password-gate styling, plus the meta-tags include |
_meta_tags.tt | ~60 | The Open Graph / Twitter / canonical / hreflang / pagination meta tags |
_header.tt | ~66 | Logo/identity bar with top-level menu + dropdowns |
_footer.tt | ~20 | Footer menu, copyright, and (when posts exist) RSS link |
page.tt | ~64 | A content page |
post.tt | ~120 | A blog post: heading, meta row, tags, category chip, reading time, blocks |
blog_index.tt | ~115 | Paginated blog index with featured-image cards |
_sidebar.tt | ~40 | Sidebar widgets (about blurb, recent posts, categories) |
documents.tt | ~47 | The documents/downloads page |
search.tt | ~100 | Site search results backed by search-index.json |
404.tt | ~20 | The “Page not found” page |
offline.tt | ~20 | The PWA offline fallback |
landing.tt + _landing_block_styles.tt | 35 + ~450 | A landing-page layout with extra block styling |
raw.tt | ~12 | Body-only passthrough for pages needing full markup control |
_cookie_notice.tt | ~24 | The fixed cookie banner |
_password_gate.tt | ~75 | Client-side password gate for protected content |
Where the styling lives
All default-look styling is inline in _head.tt: there’s no separate CSS file. Header, hero, page and post typography, blog cards, sidebar widgets, tables, cookie notice, and every block type’s wrapper classes (.cta-block, .gallery-block, .accordion-block, and so on) are defined there.
That file is the visual API of the theme: any page’s theme can declare blocks expecting those class names. The built-in blocks documentation’s wrapper/inner class tables are exactly what the Letterbox implements for each type. If you write your own theme, replicate that contract; at minimum, each block wrapper plus its heading/body treatment needs coverage, else blocks still render but look unstyled.
Options that change Letterbox output
- Menu slots: declare additional menu slots in your theme (or clone the theme) to add more than header/footer; the default only has the two.
- The landing page template: a page can override its template with a file name that includes the
.ttextension (e.g.landing.ttorraw.tt); landing.tt brings its own block styles. - PWA output: enable PWA and
offline.html/sw.js/manifest.jsonjoin the output per language. - RAW template: a page set to
raw.ttgets its body alone with no theme scaffolding at all. - Analytics and consent: the GA4/GTM script in
_head.ttloads only after the cookie notice records consent (or skips when no notice is active), and never loads at all in air-gap mode.
Cloning to make Letterbox-plus
The Templates screen offers Clone (from the configured starter theme, with Letterbox as its fallback) and a Generate with Claude panel that likewise scaffolds a new theme first, then returns a prompt to your assistant for the templating work. A theme’s templates can be overwritten directly in the theme editor; its content is security-scanned and syntax-validated server-side before being accepted. Deleting a theme is allowed only for non-active themes.
The bottom line
Letterbox is deliberately minimal but complete; it renders every CMS output artifact (built-in screens included) with classes fully spelled out and small templates. Cloning it is the intended starting point for custom themes; everything you need for that is in the theme authoring doc and this file map.