The repository
The full source code is available on GitHub:
What you get
This is not a starter template with placeholder divs. It is a complete, production-grade publication system with every feature already built and tested:
- 7 editorial sections with per-section collections, pagination, and RSS feeds
- Full-text search via Pagefind with section filtering
- Dark mode with system preference detection and no flash
- Reader tools including text-to-speech, focus mode, reading list, highlights and annotations, download, print, and citations
- Global display settings with 27 fonts (system + Bunny web fonts loaded on demand), theme selector, spacing controls
- Per-page reading settings on articles and library pages: font, size, spacing, width, background, reading ruler, auto-scroll
- Public domain library with chapter navigation, floating TOC, bookmarks, annotations, and reading progress
- Resources hub with sub-pages for education, legal rights, personal support, and tools
- Interactive events calendar with recurrence engine, dot-based month grid, slide-in detail panel, sidebar, keyboard navigation, URL state persistence
- 14 submission forms via Web3Forms with hCaptcha — articles, letters, quotes, events, timeline entries, books, texts, glossary terms, trials, thought experiments, corrections, feedback, tips, and contact
- Web Speech API integration — voice search, glossary pronunciation, and form dictation
- Highlight colours — 6 colour options with WYSIWYG rich-text note editor
- Interactive timelines — vertical alternating CSS timelines for freethought history, quotes, bookshelf, and trials
- Full-screen showcases — screensaver-style auto-advancing displays for quotes, timeline events, trials, glossary terms, thought experiments, and bookshelf entries
- A-Z glossary (86 terms) with sticky letter navigation, real-time search, individual term pages, and Tippy.js hover tooltips across all articles
- Synced TTS highlighting — words highlight as they are spoken aloud (Chrome, Edge)
- Hub pages for Explore, Submit, Reader Tools, Transparency, and Legal sections
- Daily quote bar in the masthead header with rotating quotes
- Reading ruler — customisable thickness, colour, and style (solid/dashed/dotted/glow)
- 4 interactive games
- SPA-style navigation — pages load without full refresh; background music and global state persist across navigation
- Persistent music player — background YouTube player that continues playing across page navigation
- Photo gallery — nature photography with lightbox, zoom, download, and category/licence/source filters
- Reviews section — book, film, podcast, and documentary reviews with ratings
- Instant page — prefetch on hover for instant navigation
- Newsletter integration via Buttondown
- SEO with JSON-LD structured data, Open Graph, sitemaps, and per-author RSS
- Privacy-first analytics via Umami
- Comments via Cusdis
- Translation via GTranslate
- Print CSS for articles and editions
- Progressive Web App with offline support
See the full list at /features/.
Stack
- Eleventy 3 (static site generator)
- Nunjucks templates with Markdown content
- Vanilla CSS with custom properties (no frameworks)
- Vanilla JavaScript (no frameworks, no build step)
- Bunny Fonts (privacy-friendly font CDN)
- Cloudflare Pages for hosting
No bundler, no React, no Tailwind, no CMS. Just HTML, CSS, and JavaScript that renders fast and works everywhere.
How to use it
Everything you need to customise is in one file: src/_data/site.json. This controls your publication name, description, URL, email, fonts, analytics, newsletter, comments, section definitions, and navigation. Change the values in that file and the entire site updates.
The visual design is controlled by CSS custom properties in src/assets/css/tokens.css. Swap the colours and fonts to match your brand.
Content lives in src/content/ as Markdown files with YAML front matter. Each section has its own directory. Add a new article by creating a new .md file.
License
The code is released under the MIT License. Use it for personal projects, commercial publications, or anything else. No attribution required, though it is appreciated.
The editorial content (articles, essays, library commentary) published on Your Publication Name is not part of the template and remains the property of its respective authors.