Mermaid diagrams render at build time and follow the light/dark theme
eleventy-tech-blog — Eleventy Blog Template
By tepiton
An Eleventy-based developer blog starter for technical writing, with built-in Mermaid diagrams, code highlighting, light/dark themes, RSS feeds, and image optimization.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
PrismJS code highlighting, with automatic handling of code blocks that have language markers
Light, dark, and follow-system themes, with preferences saved in localStorage
RSS/Atom feeds with custom XSL styling
Automatically generates AVIF/WebP images and lazy-loads them
Automatically generates tag pages from post front matter, with draft: true excluded from production builds
Template Details
This is an Eleventy blog starter positioned as a developer technical writing site. Content is stored as Markdown files in the content/posts/ directory, with front matter setting the title, date, tags, and description; the date determines ordering, tags automatically generate tag pages, and posts with draft: true are excluded from production builds. Site metadata (title, site name, URL, language, description, author information) is centralized in content/_data/metadata.js for editing.
Technical writing capabilities include: Mermaid diagrams rendered at build time via @kevingimbel/eleventy-plugin-mermaid, following the current light/dark theme; code blocks highlighted by PrismJS, requiring language markers; theme support for light, dark, and follow-system modes, switched via a header dropdown and saved in localStorage. Styles and fonts are centralized as CSS custom properties at the top of css/index.css; fonts use Google Fonts' Source Sans 3 and JetBrains Mono, and replacing them requires also changing the link tag in _includes/layouts/base.njk.
The project also provides RSS/Atom feeds (with custom XSL styling), image optimization that automatically generates AVIF/WebP and lazy-loads them, and deployment configuration files for Netlify and Vercel; GitHub Pages requires adding a build workflow yourself. npm scripts include a development server (0.0.0.0:8088, with hot reload), production build, debug build, and benchmark testing. The repository uses the MIT license; third-party assets such as demo images, fonts, and icons need separate license verification.
Is it right for your project?
Use Cases
- Building a personal developer blog and publishing Markdown technical articles
- Writing technical documentation with Mermaid diagrams such as flowcharts and sequence diagrams
- Tutorial-style sites that need code highlighting and light/dark theme switching
- Distributing article content via RSS feeds
Suitable For
- Developers who are used to writing in Markdown
- Technical blog authors who need diagrams and code highlighting
- Users who prefer the Eleventy static site generator
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, run npm install, then npm run start, and visit http://localhost:8088
- 2
Site title, URL, author, and other information are edited in content/_data/metadata.js
- 3
Posts go in content/posts/; front matter must include title, date, and tags, with description optional
- 4
Fonts use Google Fonts; replacing them requires modifying the link tag in _includes/layouts/base.njk and updating the CSS variables accordingly
- 5
Netlify and Vercel configurations are included; GitHub Pages requires adding .github/workflows/pages.yml yourself
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The template loads Source Sans 3 and JetBrains Mono fonts via Google Fonts by default, so pages make requests to Google's external font service; for offline use or to avoid third-party requests, you must replace the link tag in _includes/layouts/base.njk and update the CSS variables accordingly.
- The repository only includes deployment configurations for Netlify and Vercel; deploying to GitHub Pages requires adding a .github/workflows/pages.yml build workflow yourself, which is additional configuration work.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
This template uses Google Fonts (Source Sans 3, JetBrains Mono).
Original README
https://github.com/tepiton/eleventy-tech-blog/blob/main/LICENSEhttps://github.com/tepiton/eleventy-tech-blog/blob/main/README.mdNetlify and Vercel config files are included. For GitHub Pages, add a `.github/workflows/pages.yml` build workflow.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 85 / 100
- Technologies
- Eleventy
- Website type
- Blog · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-12
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Eleventy as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 3b542d6e5e7c5d6ad845ea227a501aac36144216f1b501782ed292fa7ba01131
2026-10-01T14:08:05.169Z
Source file / repository# eleventy-tech-blog
An Eleventy v3 starter for developer blogs. Designed for technical writing: Mermaid diagrams, syntax highlighting, light/dark theming, RSS feeds, and image optimization.
## Quick start
```
git clone <this-repo> my-project
cd my-project
npm install
npm run start
```
Then open `http://localhost:8088`.
## Customization
### Site metadata
Edit `content/_data/metadata.js`:
```js
export default {
title: "Your Dev Blog",
siteName: "yoursite.dev",
url: "https://example.com/",
language: "en",
description: "A description of your blog.",
author: {
name: "Your Name",
email: "[email protected]",
url: "https://example.com/about/",
},
}
```
### Writing posts
Add Markdown files to `content/posts/`. Each post needs front matter:
```yaml
---
title: The Title of This Post
date: 2025-01-15
tags:
- git
- javascript
description: Optional. Used in the HTML meta description and feed.
---
```
- `date` controls sort order
- `tags` generate automatic tag pages
- Add `draft: true` to exclude from production builds
### Mermaid diagrams
Diagrams are rendered via `@kevingimbel/eleventy-plugin-mermaid`. Use fenced code blocks:
````markdown
```mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Do this]
B -->|No| D[Do that]
```
````
Diagrams respect the active light/dark theme.
### Syntax highlighting
PrismJS handles code blocks. Fenced code blocks with a language tag get highlighted:
````markdown
```javascript
const x = 1
```
````
### Themes
The site supports light, dark, and system-preference modes. Users switch via the header dropdown; preference is persisted in localStorage.
Colors and fonts are CSS custom properties at the top of `css/index.css`:
```css
:root {
--font-body: Source Sans 3, 'Helvetica Neue', sans-serif;
--font-mono: JetBrains Mono, monospace;
--color-bg: #ffffff;
--color-text: #1a1a1a;
}
```
**Fonts:** This template uses Google Fonts (Source Sans 3, JetBrains Mono). The `<link>` tags are in `_includes/layouts/base.njk`. To swap fonts, replace those tags and update the CSS variables.
## Project structure
```
content/
_data/
metadata.js # Title, author, URL, feed config
posts/
my-first-post.md
...
pages/ # Static pages (About, etc.)
_includes/
layouts/
base.njk # HTML shell with theme switcher
post.njk # Post layout
_config/
filters.js # Date formatting, tag filtering
css/
index.css # All styles, theme variables
js/
theme-switcher.js # Theme persistence
```
## npm scripts
| Command | Description |
|:--------|:------------|
| `npm run start` | Dev server at `0.0.0.0:8088` with live reload |
| `npm run build` | Production build to `_site/` |
| `npm run debug` | Build with Eleventy debug output |
| `npm run benchmark` | Performance benchmarking |
## Features
- **Mermaid diagrams** — rendered at build time, theme-aware
- **Syntax highlighting** — PrismJS with custom theme
- **Theme switching** — light, dark, system preference, persisted in localStorage
- **RSS/Atom feeds** — with custom XSL styling
- **Image optimization** — automatic AVIF/WebP generation with lazy loading
- **Tag pages** — automatic generation from post front matter
- **Drafts** — excluded from production builds via `draft: true`
## Deploy
Netlify and Vercel config files are included. For GitHub Pages, add a `.github/workflows/pages.yml` build workflow.
Explore similar templates
Compare previews and descriptions within the same stack and category.

eleventy-base-blog
The officially maintained Eleventy blog starter template, MIT licensed, includes posts, tag pages, archives, an about page, a 404 page, an Atom feed, and sitemap.xml, with per-page CSS bundling, syntax highlighting, and image optimization.
Eleventy · Blog

eleventy-garden
An Eleventy-based digital garden starter template for building a personal knowledge site organized through hyperlinks. It supports Roam-style double-bracket links, backlink display, and hover cards for backlinks.
Eleventy · Starter

eleventastic
Eleventastic is an Eleventy starter kit by Max Böck, used as the base for new 11ty projects. It integrates Sass, Webpack, SVG icon sprites, critical CSS, and HTML minification into the 11ty build without external steps.
Eleventy · Starter

neat-starter
An Eleventy-based static site starter template integrating Netlify CMS, Alpine.js, and Tailwind CSS. It provides a ready-to-run example site, a one-click Netlify deploy button, and an MIT-licensed codebase.
Eleventy · Starter

Eleventy-Starter-Boilerplate
An Eleventy-based blog starter template with Tailwind CSS, Webpack, PostCSS, ESLint, and Prettier, optional Netlify CMS, and built-in SEO metadata, sitemap, and 404 page.
Eleventy · Blog

eleventy-plus-vite
A static site starter combining Eleventy and Vite, with a live-reloading development server, Vite-based production post-processing, a PostCSS pipeline with Autoprefixer and cssnano, critical CSS inlining and asynchronous CSS loading, a web font loading strategy example, fluid typography, basic dark mode, an…
Eleventy · Starter
