11ty v2 static site boilerplate with Nunjucks, Bootstrap 5, AJAX polling, and S3 deployment.
A Makefile is available to simplify npm scripts:
make dev— Start dev server with hot reloadmake build— Build todist/make build-prod— Production build (NODE_ENV=production)make clean— Removedist/make deploy— Build prod + deploy to S3 (requires AWS env vars)
(Underlying npm run ... commands are still fully supported)
src/
├── _data/ # site.yml (global config), navigation.yml
├── _includes/
│ ├── layouts/ # base.njk (root layout), page.njk
│ └── partials/ # header.njk, footer.njk, seo.njk
├── content/ # Markdown pages (index, about, services, contact)
├── assets/
│ ├── css/main.css
│ ├── images/ # logo.png, og-image.png
│ └── js/main.js, polling.js
├── api/ # Runtime JSON (status.json, metadata.json) — served with no-cache headers
└── static/ # favicon.ico, robots.txt — copied as-is
- Config:
.eleventy.js— passthrough copies, image shortcode, sitemap plugin, date filters - Output:
dist/(gitignored) - Templating: Nunjucks for both HTML and Markdown
- Files in
src/api/getno-cacheheaders during S3 deploy — used for AJAX polling endpoints - Image shortcode (
{% image %}) auto-generates WebP + JPEG at 4 widths (300/600/900/1200) site.ymlcontrols global config: site title, URL, social links, polling interval- Sitemap hostname in
.eleventy.jsmust matchsite.ymlURL
Requires env vars: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, S3_BUCKET, AWS_REGION
- Phase 1 (Identity & Configuration) is completed. Real domain (
templisite.devixlabs.com), authorship, and identity are set. - Phase 2 (Content & Design) is the next upcoming phase; see
docs/todos/TODO.md. docs/todos/ROADMAP.mdhas the 5-phase plan;TODO_N.mdfiles track atomic work items (e.g.docs/todos/TODO_2.mdwill be created next).docs/decisions/contains architectural/hosting decisions (seehosting.md).
- [2026-03-30] Gemini:
- Updated
Commandsto reflect the newly createdMakefile. - Added
assets/images/to theArchitecturetree. - Removed
Gotchassection (Makefile added, placeholder domains resolved, author field fixed). - Updated
Key Patternsto remove note about placeholders. - Updated
Project Statusto indicate Phase 1 completion, deletion ofTODO_1.md, and that Phase 2 is up next. - Moved
TODO.mdtodocs/todos/TODO.mdand updated references to align with shared AI workflow.
- Updated