Reading experience
- Dark / light mode — toggle in the masthead; respects system preference on first visit; preference saved to
localStorage - Reading progress bar — fixed at the top of article and library pages; stops at the end of the body text
- Focus mode — hides the site masthead for distraction-free reading; persisted in
localStorage; available on articles and library texts - Global display settings — masthead panel with 27 font choices (system serif, sans, mono, plus Bunny web fonts loaded on demand), font size, line spacing, word spacing, and unified theme selector (Auto / Light / Sepia / Cream / Dark); preferences saved to
localStorage - Article reading settings — per-article panel with 27 fonts, line spacing, text width, word spacing, reading ruler, paragraph numbers, auto-scroll with speed control, and reset to defaults; also available on library pages
- Reading ruler — customisable guide line: adjustable thickness (1–8 px), 7 colour choices, 4 styles (solid, dashed, dotted, glow); fixed position on mobile; hides during text selection
- Read aloud — Web Speech API text-to-speech with play/pause/stop, speed presets (0.75×–2×), voice selector, and synced word highlighting (Chrome, Edge)
- Glossary tooltips — glossary terms are automatically detected in article and library text and show their definition on hover via Tippy.js
- Table of contents — auto-generated from h2/h3 headings on article pages with scroll-spy highlighting; floating within-chapter TOC on library pages (≥1200 px screens)
- Heading anchor links — link icon appears on hover for every h2/h3 for deep-linking to any section
- Back to top button — appears after scrolling 400 px on articles and library reading pages
- Reading percentage — shows how far through the current text you are; visible on articles and library reading pages
- Reading time — calculated from word count at build time; shown on every article card, article page, and library reading page
- Listen time — estimated TTS duration (~1.3x read time); shown next to reading time on articles
- Word count — displayed next to reading time on articles and library reading pages
- Pullquote sharing — select any text in an article body; a share button appears; shares via Web Share API or copies to clipboard
- Text selection colour — pansy purple, consistent with the publication's identity
Article actions
- Save to reading list — bookmark any article in the browser; no account required; accessible at /reading-list/
- Share — share panel with X/Twitter, Facebook, LinkedIn, Reddit, Bluesky, Mastodon, copy link, and email
- Download — export article as plain text (.txt) or Markdown (.md)
- Print — print-optimised CSS suppresses all chrome and renders clean text; works for PDF saving
- Cite — citation modal with APA, MLA, and Chicago formats; one-click copy for each
- Reader toolbar — persistent bottom bar with Highlight, Note, Bookmark, and Share actions
- Reader panel — slide-out panel with Contents (TOC), Highlights, Notes, Bookmarks, and Related tabs
- Highlight & annotate — select text to highlight it in one of 6 colours (yellow, pink, blue, green, orange, purple) or add a rich-text note; highlights and notes persist in
localStorage - Rich-text notes — WYSIWYG editor with formatting toolbar (bold, italic, lists, blockquotes, links); what you see is what gets saved
- Reader panel — icon-only tabs (Contents, Highlights, Notes, Bookmarks, Related) with export (plain text, Markdown, JSON) and print buttons
- Position bookmarks — save your scroll position from the reader toolbar; bookmark indicators appear in the left margin
- Notes page at /notes/ — all highlights, notes, and bookmarks across the site with export and import (JSON) for cross-device sync
- Annotation footnotes — inline tooltip footnotes via shortcode; no jump to the bottom of the page
Public Domain Library
- Library homepage at /library/ — featured works grid and full catalogue with subject and era filters
- Work landing pages — introduction, chapter list, reading progress indicators, and Continue Reading detection
- Chapter reader — all eight article reader tools available on library reading pages; word count, reading time, back-to-top, and reading percentage also included
- Library reading settings — identical to article settings: 27 fonts, line spacing, text width, word spacing, background presets, reading ruler, paragraph numbers, auto-scroll
- Reading panel — slide-out panel with Contents (chapter list), Bookmarks, and Notes tabs
- Annotation toolbar — highlight and annotate selected text; highlights and notes persist in
localStorage - Reading position — scroll position saved per chapter to
localStorage; restored on return (30-day expiry) - Chapter completion — chapters marked complete at 88% scroll; progress visible on the work landing page
- Bookmarks — bookmark any scroll position within a chapter; listed in the reading panel
- Floating within-chapter TOC — auto-populated from headings with scroll-spy; visible at ≥1200 px
- Browse by Subject at /library/subjects/ — tag cloud and per-subject work listings
- Browse by Author at /library/authors/ — author biographies and collected works
Navigation & discovery
- Full-site search via Pagefind — built at deploy time, no backend; section filter bar included
- Section navigation — dropdown menus per section showing recent articles
- More mega-dropdown — 5-column dropdown with links to every non-article section (Explore, Projects, Community, About, Reader Tools)
- Mobile nav drawer — sentence-case links with visual hierarchy, icon toolbar pinned to bottom, language toggle inline
- Surprise Me — button in the masthead that redirects to a random article
- Reading time filter — filter articles by All / Short reads (<5 min) / Long reads (>15 min) on section pages
- Related articles — ranked by shared tags with section fallback; accessible in the reader panel's Related tab
- Backlinks — each article shows other articles on the site that link to it, discovered at build time
- Tags / topics index at /topics/
- Archives at /archives/ — articles indexed by date
- Editions at /editions/ — articles grouped into numbered editions; edition pages are printable with a full article text section included after the contents listing
Publishing & editorial
- Corrections log — articles carry corrections in front matter; aggregate view at /corrections/
- Suggest a correction — button in the article action bar linking to /corrections/report/
- Article series — numbered parts with previous/next navigation
- Inter-article response system —
responseTofront matter links articles with banners shown on both - Argument map — structured Claim → Evidence → Conclusion box for opinion pieces
- Dates link to archives — every date on articles and cards links to the corresponding archive anchor
- Contributors index at /contributors/ — bio cards and article links
- Per-author pages — bio and article history for each contributor
- Per-author RSS feeds at
/feeds/[author-slug].xmlwith link autodiscovery - Document library at /documents/ — primary source library for FOIA responses and public records
- Changelog at /changelog/ — public record of site changes
Newsletter
- Newsletter page at /newsletter/ — signup form, what to expect, past issues link, alternative follow options
- Buttondown integration — subscribe forms embedded across the site (inline, sidebar, footer variants); no backend required
- Confirmation redirect at /newsletter/confirmed/ — shown after clicking the confirmation link in Buttondown's double opt-in email
- Welcome redirect at /newsletter/welcome/ — shown immediately after form submission
- No open or click tracking — Buttondown's open and click tracking are disabled; links include a UTM tag for aggregate site analytics only
Infrastructure & performance
- Progressive Web App — web manifest, cache-first service worker, offline fallback at
/offline.html - XML sitemap at /sitemap.xml — all articles, library pages, and key static pages with
lastmoddates - Google News sitemap at
/news-sitemap.xml—news:newsnamespace with publication, language, date, and title - RSS feed at /feed.xml covering all sections
- Per-author RSS feeds at
/feeds/[author-slug].xml - robots.txt — allows all crawlers including Googlebot-News; declares both sitemaps
- JSON-LD structured data — NewsArticle on article pages; Book and Chapter on library pages
- Open Graph social card images — auto-generated per article at build time
- Print CSS — suppresses nav, sidebar, and all non-essential chrome across article and edition pages
- Instant page — prefetches links on hover for near-instant navigation (self-hosted, ~3 KB)
- SPA navigation — pages load without full page refresh; music and global state persist across navigation; article pages use full reload for reader tool compatibility
- Bunny Fonts — privacy-friendly font CDN; no IP logging, no cookies, no tracking
- Hosted on Cloudflare Pages
Analytics & privacy
- Umami analytics — privacy-first; no cookies, no personally identifiable information
- No first-party cookies — all reader preferences and state stored in
localStorage - No advertising networks or tracking pixels
- Privacy policy at /privacy/
Translation & accessibility
- GTranslate widget — nine languages (English, French, Italian, Spanish, German, Portuguese, Arabic, Chinese, Japanese); accessible from the global display settings panel
- Voice search — microphone button in the search modal; speak to search with real-time transcription (Chrome, Edge, Safari)
- Form dictation — "Dictate" button on tip line, letter, and feedback form textareas; speak to type with continuous recognition
- Skip-to-main link — first element in the page for keyboard and screen reader navigation
- ARIA labels on all icon-only buttons;
aria-expandedon all interactive toggles; ARIA grid semantics on calendar - Keyboard navigation — arrow keys navigate the events calendar grid; Enter to view events; Escape closes panels
Contact forms
- Contact Us at /contact/ — general inquiries with subject dropdown and card grid linking to all specialised forms
- Submit a Piece at /submit/ — pitch form embedded in editorial guidelines with section dropdown
- Report a Correction at /corrections/report/ — auto-fills article URL from referrer; anonymous submissions accepted
- Submit an Event at /events/submit/ — date, location, type fields for calendar submissions
- Submit a Tip at /tips/ — anonymous tip line with topic categories and voice dictation
- Send Feedback at /feedback/ — bug reports, suggestions, accessibility issues, with auto-fill page URL
- Write a Letter at /letters/submit/ — letters to the editor with city, background, and voice dictation
- Submit a Quote at /quotes/submit/ — quote text, author, source, and context
- Suggest a Timeline Entry at /timeline/submit/ — event title, year, era, description
- Recommend a Book at /bookshelf/submit/ — title, author, category, why it belongs
- Suggest a Public Domain Text at /library/submit/ — title, author, source link
- Suggest a Glossary Term at /glossary/submit/ — term, definition, reason
- Suggest a Trial at /trials/submit/ — trial name, year, defendant, charge
- Suggest a Thought Experiment at /thought-experiments/submit/ — name, philosopher, description
- All forms use Web3Forms with hCaptcha, honeypot spam protection, maxlength limits, aria-required attributes, and email fallback
Intellectual projects
- Freethought Glossary at /glossary/ — 86 terms with A–Z sidebar navigation, real-time search, individual Pagefind-indexed pages, and Tippy.js hover tooltips on articles and library pages
- Thought Experiment Library at /thought-experiments/
- Freethinker's Bookshelf at /bookshelf/ — 21 annotated books with category, difficulty, and best-for metadata; timeline and showcase views
- Trials of Thought at /trials/ — landmark trials where ideas were the defendant; chronological from 399 BCE
- Games at /games/ — Fifteen Puzzle, Freethinking Trivia, Word Scramble, and a Crossy Road variant
- Freethought Music at /music/ — curated YouTube playlists with a persistent background player that continues across page navigation; transport controls, volume, and track info in a bottom bar
- Photo Gallery at /gallery/ — nature photography gallery with lightbox viewer, zoom in/out, download, and category/licence/source filters
- Reviews at /reviews/ — book, film, podcast, and documentary reviews with star ratings, media type badges, and creator/year metadata
Transparency
- Features page at /features/ — this page; complete inventory of site features
- Changelog at /changelog/ — public record of every site change
- Editorial handbook at /editorial/ — public standards covering accuracy, sourcing, corrections, AI use, and complaints
- Corrections log at /corrections/ — aggregate view of all published corrections
- Open source — the site's codebase is available as an open-source template; see /open-source/
- How it's built at /stack/ — plain-language explanation of every tool and service
- Site map at /site-map/ — visual directory of every page on the site
- Terms of use at /terms/ — plain-language terms covering content, submissions, and data
- Cookies policy at /cookies/ — zero first-party cookies; full disclosure of third-party cookies
- Accessibility statement at /accessibility/ — WCAG 2.2 AA commitment with detailed feature documentation
- Community guidelines at /community-guidelines/ — standards for comments and community participation
- Hub pages — dedicated landing pages for Explore, Submit, Reader Tools, Transparency, and Legal
Quotes, media & resources
- Quotes at /quotes/ — curated freethought quotes filterable by author, topic, and era, with save/share/copy
- Daily quote bar — rotating quote in the masthead header, cycling every 10 seconds with fade transitions
- Quotes Showcase at /quotes/showcase/ — full-screen screensaver-style display cycling through all quotes with crossfade transitions, auto-advance, shuffle, keyboard navigation, and pause/play
- Video Library at /videos/ — curated lectures, debates, and documentaries with speaker and topic filters
- Freethought Timeline at /timeline/ — 38 events spanning 2,500 years of freethought history in a vertical alternating timeline with era markers and scroll-reveal animation
- Timeline Showcase at /timeline/showcase/ — full-screen screensaver cycling through all timeline events with auto-advance and keyboard navigation
- Quotes Timeline at /quotes/timeline/ — quotes arranged chronologically with years extracted from source citations
- Bookshelf Timeline at /bookshelf/timeline/ — the annotated bookshelf in chronological order
- Trials Timeline at /trials/timeline/ — landmark trials from 399 BCE to 1989 in timeline format
- Trials Showcase at /trials/showcase/ — full-screen screensaver cycling through trial events
- Resources at /resources/ — hub page linking to 5 sub-pages: education, legal rights, personal support, media & tools, and on-this-site guide
- Community at /community/ — national and international freethought groups, online communities, student organizations
- Events calendar at /events/ — interactive calendar with month/week/day/list views, recurrence engine for weekly/monthly/annual events, dot-based month grid with hover tooltips, slide-in detail panel, sidebar (Next Up, This Month, Organizations), URL hash persistence, keyboard navigation, touch swipe, type and region filters
- Contribute at /contribute/ — submission guidelines, style guide, and pitch instructions
- RSS Reader at /reader/ — freethought publication feeds fetched at build time
Data management
- Your Data at /your-data/ — explanation of what is stored and how to manage it
- Export / Import — backup and restore all site data (reading list, notes, highlights, bookmarks, preferences, RSS feeds) via JSON
- Per-page export — export notes for individual articles or library entries as plain text, Markdown, or JSON
Open source
- Broadsheet template at github.com/jonajinga/broadsheet — the complete site architecture as a reusable open-source template (MIT license)
- Pages CMS — browser-based content management via Pages CMS; configured in
.pages.yml - Editorial Dashboard at /dashboard/ — content counts and status overview
Last updated: 2026