← Ledger
Changelog
Every Ledger release, newest first, for both editions. Updates are free for every license; download them from your account or pull them from GitHub.
v1.0.0
Latest
The first release.
Astro
- Pages: home, pricing (plans with a monthly/yearly switch, a comparison table, FAQ), about (story, values, figures, team, open roles), blog index with pagination, blog posts, contact (form beside the details), privacy and terms shells, a thank-you page for forms, and a 404 page.
- Presets: Ledger (light and dark), Signal (dark) and Bloom (light), switched with one import in
src/styles/global.css. Self-hosted fonts under the SIL Open Font License. - Content: collections for posts (Markdown and MDX), authors and site settings (navigation, footer, announcement bar, form endpoints); page copy in typed data files.
- Blog: prose styles for headings, lists, quotes, code (coloured by the preset), images with captions and tables; reading time, author box, related posts, RSS feed.
- SEO: titles, descriptions, canonical links, Open Graph images drawn for every page and post, JSON-LD for the organisation, the website, blog posts and FAQs, a sitemap and robots.txt.
- Forms: contact and newsletter forms that post without JavaScript to an endpoint you choose, with a honeypot field against bots; an optional Cloudflare Worker handler that fails closed and never logs what visitors send.
- Deploying: ready for Cloudflare Workers (static assets), Netlify and Vercel.
- Pricing: the cards start on yearly prices, demo prices in US dollars, and the comparison table is grouped (usage, analysis, security and support).
- Footer: social links (GitHub, X, Mastodon, Bluesky, YouTube in the demo) from
site.json. - Speed: each preset declares only its Latin and Latin Extended font files, and every page preloads the heading and body fonts; blog card links end in a slash, so static hosts never redirect them.
- Form Worker: form posts only, at most 64 KB, counted while the body is read.
Next.js + Sanity
- Pages: home, pricing (plans with a yearly/monthly switch, a comparison table in groups, FAQ), about (story, values, figures, team, open roles), blog index with pagination, blog posts, contact (form beside the details), privacy and terms shells, a thank-you page for forms, and a 404 page.
- Sanity: a Studio (
studio/) with a page builder of 22 section types, each with its layouts and tones and an optional anchor; posts with a rich-text body (headings, lists, quotes, links, captioned images, tables, highlighted code with a file name) and authors; one Site document for the announcement bar, header, footer and organisation. The Presentation tool previews drafts on the site.pnpm seedimports the demo content and images into a new dataset. - Next.js: App Router and React Server Components; pages generated ahead of time and refreshed in the background (a minute at most, or at once with the publish webhook); the read token server-only; a Content-Security-Policy.
- Presets: Ledger (light and dark), Signal (dark) and Bloom (light), switched with two lines. Self-hosted fonts under the SIL Open Font License, through next/font.
- SEO: titles, descriptions, canonical links, Open Graph images drawn for every page and post, JSON-LD for the organisation, the website, blog posts and FAQs, a sitemap, robots.txt and an RSS feed.
- Forms: contact and newsletter forms that post without JavaScript to the site's own handler, which forwards each submission to
FORWARD_URL, fails closed without it, drops honeypot hits and never logs what visitors send. - Deploying: Vercel, or Cloudflare Workers through OpenNext.