Our approach
Every page on this site is pre-built before you visit it. There is no server generating pages on the fly, no database to query, and no loading spinner while content renders in your browser. When you click a link, you get a finished page immediately. This makes the site fast, reliable, and cheap to run -- which is how we can be free with no advertising.
Pages and content
Recipes, technique guides, reviews, and stories are written as plain text files with simple formatting (Markdown + YAML front matter). A tool called Eleventy takes those files and turns them into the web pages you see. The whole site builds in a handful of seconds. We publish by pushing to GitHub and the new version is live within a minute.
Design
The look and feel is built with standard web styles -- no design framework, no Tailwind, no React. Every colour, font size, and spacing value is defined once in tokens.css and reused everywhere, so the site looks consistent whether you are reading a recipe, browsing the cookbook library, or filling out a submission form. Typefaces are served by Bunny Fonts, a privacy-friendly alternative to Google Fonts that does not track visitors.
Recipe features
Every recipe page is enhanced with three small JavaScript modules: a serving scaler that multiplies amounts in place when you tap 0.5x / 1x / 2x; an ingredient checklist that remembers what you have checked off (per recipe, stored in your browser); and a cooking mode that bumps the type size and asks the operating system to keep the screen awake while you cook. All three are progressive enhancements -- the recipe works without JavaScript.
Search
Search is powered by Pagefind, which builds a search index at deploy time. When you search, your query is matched against a small index file already on the page -- no request is sent to a search engine or third-party service. Filter facets cover cuisine, diet, course, season, and difficulty.
Hosting
The site is hosted on Cloudflare Pages, which serves pages from data centres around the world. The site loads fast regardless of where you are. Cloudflare also provides protection against attacks and automatically encrypts all connections.
Forms
Recipe submissions, story pitches, technique pitches, review pitches, corrections, tips, contact, feedback, and volunteer forms are all handled by Web3Forms. When you submit a form, your message is delivered to our editorial inbox. Nothing is stored in a database. Spam is filtered by hCaptcha, a privacy-respecting alternative to Google's reCAPTCHA.
Newsletter
The newsletter is managed by Buttondown. We have disabled open tracking and click tracking -- we do not know whether you opened a particular email or clicked a particular link. You can unsubscribe at any time from any email.
Analytics
We use Umami, a privacy-first analytics tool. It tells us how many people visit the site and which recipes are popular, but it does not use cookies, does not collect personal information, and cannot identify individual visitors.
Comments
Cusdis provides the comment system. You do not need an account to leave a comment. Comments are moderated before they appear.
Translation
GTranslate provides machine translation into many languages via a small widget. Translation is performed by Google Translate.
Navigation speed
Links are prefetched on hover using instant.page (~3 KB, self-hosted). For most pages, navigation is handled SPA-style -- when you click a link, only the main content area is swapped without a full page reload. This makes transitions feel nearly instant.
Glossary tooltips
When you hover over a cooking term in a recipe or article, a tooltip shows the definition from our glossary. This is powered by Tippy.js and Popper.js, both self-hosted (~45 KB combined). No requests are made to external servers.
Offline support
The site can work without an internet connection. Once you have visited a page, it is cached in your browser and available offline. On mobile, you can install the site as a Progressive Web App from your browser's menu.
Public API
Every piece of content on this site is also available as JSON through our public API. Recipes, techniques, reviews, articles, ingredients, and contributors are exposed as static JSON files on a global CDN. No authentication, no rate limits, CORS enabled.
Scheduled publishing
Recipes and articles can be scheduled to publish at a future date by setting the date field in the front matter. A GitHub Action runs daily and triggers a Cloudflare Pages rebuild, making scheduled content visible as soon as its publish date arrives.
Source code
The full source code is on GitHub under the MIT license. Anyone can fork it and launch their own community food publication. See open source for details.