An independent Geneva watchmaker that does not exist — rendered as the kind of flagship website a high-end studio builds for a luxury client.
Haute horlogerie · flat-file · zero database · zero stock photography.
A demonstration site built on Statamic running in flat-file mode — no database, no CMS server, just Markdown and YAML on disk. It's dressed as the self-referential fantasy every agency loves: a fictional Genevan maison de haute horlogerie, Manufacture Vernier — "founded 1874, revived 2011" — told in the deadpan, slightly self-satisfied voice of a real independent watchmaker.
It exists to show off how much site you can ship with a flat-file CMS and a single deploy, as a demo for the Lucity platform. Everything you see is generated: there is not a single photograph in the entire project. Every watch, dial, and movement diagram is vector art drawn live in the browser.
The hero timepiece is a real, running mechanical watch rendered in SVG:
- Live to the second — hands driven by your own system clock.
- Dead-beat seconds — the flagship Seconde Morte steps once per second and stops dead, like an observatory regulator (not the usual sweep).
- Procedural guilloché — the engine-turned dial texture is generated at load from interfering wave functions. No two renders identical; look closely in light mode.
- Astronomically-approximate moonphase, a movement schematic with a coiled hairspring, and a distinct dial motif for every complication (split-seconds, perpetual calendar, flying tourbillon…).
Hidden complications 🧭
The site rewards curiosity, in-character:
- ↑ ↑ ↓ ↓ ← → ← → B A — engages Complication 71, the tourbillon.
- Press
G— reveals the twelve-column baseline grid everything is ruled against. - The footer counts Le Temps Perdu — the time you've spent here, remembered between visits.
- Open the console. There's a note, and possibly a job.
- The cookie banner offers you a real biscuit. Take it.
- The
404, the/humans.txt, and the/colophonare all worth a look.
| CMS | Statamic 6 (flat-file, no database) |
| Framework | Laravel 13 · PHP 8.2+ |
| Templating | Antlers |
| Styling | Tailwind CSS v4 + a bespoke Swiss design system |
| Type | Archivo & Space Mono, self-hosted (no CDN, works offline) |
| JS | ~7 KB of dependency-free vanilla JavaScript |
| Build | Vite 8 |
timepieces— the collection, with a full technical file per reference and a page-builder story.journal— dated essays from the bench, with author relationships.watchmakers— the atelier, with gloriously overwrought titles.- Taxonomies
families&topics, globalsmaison&manifesto, and a real page-builder (Replicator) driving the home page's editorial sections.
Requires PHP 8.2+, Composer, and Node 18+.
composer install
npm install
cp .env.example .env
php artisan key:generate
npm run build # or `npm run dev` for hot reload
php artisan serveThen visit http://localhost:8000.
The Control Panel lives at /cp. A super-user is seeded for convenience:
email: studio@zeitlos.software
password: vernier1874
Change these before doing anything you'd regret.
php please make:usermakes a new one.
It runs anywhere PHP does, and was built to be deployed on Lucity, which detects the Laravel/Statamic app, builds it, and serves it. There's no database to provision, because there isn't one.
To let editors use the Control Panel in production and keep their changes, the writable flat-file directories are persisted on a mounted volume:
- Mount a persistent volume at
/data(override withSTATAMIC_DATA_DIR). - Set the start command to
sh deploy/start.sh. On first boot it seeds the volume from the image; on every boot it symlinkscontent/andusers/to the volume, so all CP writes are durable. - Run a single instance (one writer). Keep
APP_KEYstable across deploys.
Prefer stateless + horizontally scalable instead? Flip on Statamic's Git integration (STATAMIC_GIT_ENABLED=true) so CP edits commit back to the repo, and skip the volume.
Uploaded assets go to any S3-compatible bucket — nothing in the code changes, just the environment:
ASSETS_DISK_DRIVER=s3
AWS_ACCESS_KEY_ID=…
AWS_SECRET_ACCESS_KEY=…
AWS_DEFAULT_REGION=auto
AWS_BUCKET=vernier-assets
AWS_ENDPOINT=https://… # your S3-compatible endpoint
AWS_USE_PATH_STYLE_ENDPOINT=true
ASSETS_URL=https://…/vernier-assets # public base URL for the bucketLeave ASSETS_DISK_DRIVER=local (the default) and uploads stay on disk for local development. (This particular site ships zero uploaded assets — every image is generated SVG — but the container is wired for S3 the moment content editors want to add photography.)
Manufacture Vernier is entirely fictional. No such maison exists; any resemblance to a real Genevan watchmaker is a compliment we have not earned. The horology is broadly accurate, the prices are imaginary, and the biscuit tin is load-bearing.
Made, carefully and a little too slowly, by zeitlos.



