Introduction
The simple, fast tech stack
Timber's stack is short enough to fit in a table. That's the point.
The stack#
| Layer | Choice | Why |
|---|---|---|
| Language | PHP 8.1+ | Runs everywhere, deploys by copy, fast with opcache |
| Storage | JSON files in data/ | No database to install; human-readable; easy backups; atomic writes with locking |
| Web server | Apache / LiteSpeed / nginx / php -S | .htaccess and nginx configs included |
| Sessions | Native PHP sessions | Only started for the admin — visitors never get one |
| Admin UI | htmx 2 + Alpine.js 3 | Server-rendered HTML with small interactive islands; no SPA, no bundler |
| Styling | Hand-written CSS with custom properties | Themes are a few KB, restyle by changing tokens |
| Fonts | System fonts | Zero downloads, instant text |
| Code editor | Monaco (loaded on demand) | The only third-party request, and only when you open a code editor |
PHP mail(), SMTP, Gmail, Brevo | Pick what your host allows |
What Timber leaves out#
- No database server. No MySQL, no Postgres, no SQLite (yet — it's on the roadmap as an optional driver).
- No Composer, no Node, no bundler. Nothing to install before you can edit.
- No framework. A few hundred lines of core helpers instead of a framework to learn.
- No required CDN or SaaS. Starter themes make no third-party requests. Google Analytics only loads if you add it (and respects the consent banner).
- No cron. Scheduled posts simply stay hidden until their time passes.
How fast is it?#
Real numbers from the Birch starter homepage on a stock install:
| What | Size |
|---|---|
| HTML | about 12 KB |
| CSS (shared base + theme) | about 18 KB |
| JavaScript (htmx + Alpine + theme) | about 40 KB gzipped |
| Web fonts | none |
| Third-party requests | none |
That's roughly 50–60 KB gzipped before your own images, with no render-blocking font fetches. The server side is just as lean: a page is a few small file reads and string output.
How big is it?#
The whole CMS — admin, three themes, docs excluded — is about 1.7 MB in around 160 files, of which roughly 280 KB is an optional Tailwind browser build used only if you choose Tailwind as a CSS library. You can read the PHP in an afternoon.
Reading the code#
| Folder | What's inside |
|---|---|
inc/ | Core: storage, auth, installer, versions engine, view helpers, forms, mailer, privacy, migrator |
padmin/ | The admin: router, helpers, one view file per screen |
templates/ | Shared page templates themes inherit |
themes/ + assets/themes/ | Birch, Ebony and Ghost starter themes |
data/, uploads/ | Your content (created on install) |
Continue to Architecture for how a request flows through it.