Back to templates

Template details

Volks-Typo

A minimalist Astro blog theme combining Bauhaus modernism and WW2-era monumental design with dark mode, MDX, and zero-JS output.

About this template

Volks-Typo is a free, MIT-licensed Astro blog theme that combines Bauhaus modernism with WW2-era monumental design in a zero-JavaScript, dark-mode-ready static site.

What is Volks-Typo?

Volks-Typo is an open-source blog theme built on the Astro framework with MDX integration. It takes Markdown and MDX files from the src/content/blog directory and generates a fully static blog with automatic reading time, table of contents, categories, tags, archives, and responsive dark mode. Created by GitHub user jdrhyne, the theme is designed around a "dissonant harmony" of Bauhaus functionalism and monumental aesthetics, and it deploys with one click to Netlify, Vercel, or Render, or to GitHub Pages using a BASE_PATH environment variable.

Key Features

  • Dark Mode Toggle — One-click theme switching with localStorage persistence, FOUC prevention, and optimized contrast for all UI elements in both light and dark themes.
  • MDX and Markdown Support — Write posts as .md or .mdx files in src/content/blog; MDX enables embedding JSX components inside normal Markdown syntax.
  • Reading Time & Table of Contents — Reading time is auto-calculated at roughly 200 words per minute; the TOC is generated from H2-H4 headings and includes scroll-spy navigation.
  • Zero JavaScript Output — Built pages ship pure HTML and CSS; the only JavaScript is the theme toggle initialization and scroll-spy logic, keeping total CSS around 20KB gzipped.
  • Self-Hosted Typography — Oswald, Roboto Condensed, Work Sans, and JetBrains Mono are loaded via @fontsource with no external requests, protecting reader privacy.
  • Full Blog Organization — Categories, tags, archives, recent posts, and a configurable frontmatter schema (title, date, author, excerpt, categories, tags, image, draft) are built in.
  • SEO and Accessibility — Includes built-in meta tags, structured data, semantic HTML, and ARIA attributes, plus a Playwright test suite with visual regression baselines.

Who should use Volks-Typo?

  • Design-focused bloggers who want an editorial, typographically strong look without JavaScript bloat or third-party font requests.
  • Astro developers who need a typed, single-config (src/config.ts) starter with documented commands for dev, build, preview, lint, and Playwright testing.
  • Self-hosters and open-source contributors who want a free MIT-licensed theme they can customize via CSS variables in src/styles/global.css and deploy to any static host.

What can you do with Volks-Typo?

  • Publish a personal blog: Drop Markdown or MDX files into src/content/blog and get a responsive blog with dark mode, reading time, TOC, categories, and RSS-ready structure.
  • Create a design archive or journal: Use the Bauhaus-inspired layout and monotone-plus-red color palette (accent #dc2626) to showcase typography and design history content.
  • Deploy anywhere: Use the built-in one-click buttons for Netlify, Vercel, or Render, or configure SITE and BASE_PATH for GitHub Pages subdirectory deployment.
  • Contribute to the theme: Run the Playwright feature tests with npm run test:features to verify dark mode, MDX rendering, reading time, TOC navigation, and visual regression snapshots.

How does Volks-Typo work?

To get started, run npm create astro@latest -- --template jdrhyne/volks-typo (or the pnpm/yarn equivalent), then install dependencies and run npm run dev to preview at localhost:4321. All site settings live in src/config.ts; content is added as Markdown or MDX posts; and npm run build outputs a static site to ./dist/ ready for any host.

Pricing

Volks-Typo is free and open source under the MIT License, so there are no licensing fees for personal or commercial use.

FAQ

Is Volks-Typo free?

Yes, Volks-Typo is released under the MIT License and can be used, modified, and deployed freely, including for commercial projects.

Does Volks-Typo support dark mode?

Yes, it includes a dark mode toggle with localStorage persistence and FOUC prevention. The default palette is a monotone scale (white, #f5f5f5, #888888, #333333, black) with a red accent (#dc2626) optimized for contrast in both themes.

What are the Node.js requirements?

You need Node.js 18.14.1 or higher and Git to install the theme. The dev server runs on localhost:4321 by default.

How do I customize the theme colors and fonts?

Edit the CSS variables in src/styles/global.css. Font families are defined as --font-heading-primary (Oswald), --font-heading-secondary (Roboto Condensed), --font-body (Work Sans), and --font-mono (JetBrains Mono), all self-hosted via @fontsource.

How do I deploy to GitHub Pages?

Set SITE=https://yourusername.github.io and BASE_PATH=/your-repo-name/ as environment variables (or in .env), then run npm run build. For root-domain deployments on Netlify or Vercel, no BASE_PATH configuration is required.

screenshot of Volks-Typo on template0.com