Back to themes

Chirping Astro

A blog theme for technical writers built with Astro 6, Tailwind CSS v4, and daisyUI v5. Ships with multilingual support, Pagefind search, Giscus comments, KaTeX math, Expressive Code blocks, dark mode, and automatic OG image generation — all statically rendered with a minimal JavaScript footprint.


Cost

Free


Created by
Kannan Suresh

Chirping Astro is a feature-rich, Chirpy-inspired (Chirpy is a famous Jekyll theme) blog theme for technical writers who want a fast, accessible, statically generated blog without building a theme from scratch.

Built on Astro 6 with Tailwind CSS v4 and daisyUI v5, it combines a polished sidebar layout with a deeply considered set of blogging features — all rendered at build time for near-zero client JavaScript.

Key Features

Content & Authoring

  • Markdown and MDX support with Astro Content Collections and Zod-validated frontmatter
  • Expressive Code for syntax highlighting with frame titles, copy buttons, line markers, diffs, and collapsible sections
  • KaTeX math rendering (pre-rendered at build time; stylesheet loaded only on pages that opt in)
  • Callout components, GFM, autolinked headings, reading time, and a sticky scroll-spy Table of Contents

Multilingual (i18n)

  • English and French included out of the box, with English at the URL root and French under <code>/fr/</code>
  • Per-post translation pairing via <code>translationKey</code> frontmatter
  • Smart language switcher that hides itself when no translated sibling exists, so readers never hit a dead-end 404
  • Locale-aware RSS feeds, sitemap with <code>hreflang</code> alternates, and search

Search & Comments

  • Pagefind static search — modal + dedicated search page, lazy-loaded, locale-filtered, no extra CSS
  • Giscus comments synced with the active theme and page locale, per-post overrideable, with a friendly setup guide shown when not yet configured

SEO & Performance

  • Automatic OG image generation at build time using Satori + Resvg for posts without a hero image
  • Per-locale RSS, canonical URLs, OpenGraph, Twitter card, and sitemap via <code>@astrojs/sitemap</code>
  • Five small client-side islands; the rest is pure static HTML

Theming & Customization

  • Custom <code>chirpy-light</code> / <code>chirpy-dark</code> daisyUI themes built with OKLCH color tokens
  • No-FOUC theme toggle with View Transitions API animation, respecting <code>prefers-reduced-motion</code>
  • Layout sizing, sidebar width, prose column, and brand colors all controlled via CSS custom properties in a single file
  • Privacy Policy pages (bilingual templates, toggleable footer link)

Developer Experience

  • Bun as the package manager and runtime
  • Strict TypeScript, ESLint (zero warnings), Prettier, and Husky pre-commit hooks
  • GitHub Actions workflow for GitHub Pages deployment with automatic sub-path handling
  • Works on Cloudflare Pages, Netlify, Vercel, and any static host

Getting Started

Use the Starter Template for a clean, deploy-ready base:

bunx create-astro@latest --template kannansuresh/chirping-astro-starter

Or clone the full repo to explore all features with the included demo posts.