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
- 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); sticky sidebar TOC with scroll-spy on 18 long-form reference pages (Privacy, Terms, Features, Stack, Accessibility, Ethics, Cookies, About, Contribute, and more)
- 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
- 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 and tap Highlight for a one-tap yellow wash, or tap Note to attach 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
- Position bookmarks, save your scroll position from the reader toolbar; a placement preview rule shows exactly where the pin will land before you commit, and bookmark indicators appear in the left margin. Duplicate bookmarks at the same scroll spot are suppressed.
- 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
- Food 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/
- Cook'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, Umami Trivia, Word Scramble, and a Crossy Road variant
- Food 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/license/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
- Sitemap 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 Food 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
- Food Timeline at /timeline/, 38 events spanning 2,500 years of Food 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 Food 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/, Food 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
- Project Broadsheet at github.com/jonajinga/project-broadsheet, the complete site architecture as a reusable open-source publication system (MIT license); learn more at projectbroadsheet.com
- Decap CMS, browser-based content management via Decap CMS; configured in
src/admin/config.yml - Editorial Dashboard at /dashboard/, content counts and status overview
Last updated: 2026