EleventyBlogStarter

eleventy-prose-blog — Eleventy Blog Template

By tepiton

An Eleventy-based starter for personal prose blogs, offering footnote popovers, light/dark theme switching, RSS feeds, and image optimization for writing-focused features.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-09-30View source

What stands out

A quick read of the recorded project description.

01

Footnotes appear as in-place popovers, displayed above the reference on desktop and fixed as a bottom panel on mobile, falling back to traditional footnotes without JavaScript

02

Supports light, dark, and follow-system themes, switched via a header dropdown and persisted to localStorage

03

Generates RSS/Atom feeds with custom XSL styling

04

Automatically generates AVIF/WebP images and enables lazy loading

05

Tags in article front matter automatically generate tag pages, and drafts with draft: true are excluded from production builds

06

Site metadata is centralized in content/_data/metadata.js, and the content/ directory is fully portable

Template Details

This is an Eleventy starter for personal prose writing, with code released under the MIT license. It sets up writing-related infrastructure in advance: articles are written in Markdown under content/posts/, with ordering controlled by the date in front matter, tags automatically generating tag pages, and draft: true excluding drafts from production builds; site title, author, URL, language, and feed configuration are centralized in content/_data/metadata.js, and the entire content/ directory can be migrated independently. For reading experience, standard Markdown footnotes render as clickable in-place popovers, displayed above the reference on desktop and fixed as a bottom panel on mobile, falling back to traditional footnotes without JavaScript; themes support light, dark, and follow system, switched via a header dropdown and stored in localStorage. On the build side, it includes RSS/Atom feeds (with custom XSL styling), automatic AVIF/WebP generation with lazy-loaded image processing, PrismJS syntax highlighting, and deployment configurations for Netlify and Vercel.

Usage limitations to note: the template references Adobe Fonts (Typekit) p22-stickley-pro-text and neue-kabel by default, with the font kit ID written in _includes/layouts/base.njk; changing fonts requires replacing the Typekit link and updating the CSS custom properties at the top of css/index.css; color and font variables are also centralized at the top of that file. The development server runs on 0.0.0.0:8089, production builds output to _site/, and there are debug and benchmark npm scripts. GitHub Pages does not include a workflow, so you need to add .github/workflows/pages.yml yourself. Licenses for demo images, fonts, icons, and other third-party assets must be checked separately and cannot be determined solely by the code's MIT license.

EleventyBlogStarter

Is it right for your project?

Use Cases

  • Writing personal prose or essay blogs that are text-focused and require footnotes
  • A writing workflow where articles are stored in Markdown and dates, tags, and drafts are managed via front matter
  • Sites that need RSS feed output and want to control feed styling
  • Static blog projects deployed to Netlify or Vercel

Suitable For

  • Individual authors accustomed to writing in Markdown and maintaining their own static sites
  • Prose blogs that need reading-oriented features such as footnotes, light/dark themes, and tag pages
  • Users willing to replace the default Adobe Fonts configuration and adjust CSS variables themselves
  • Developers who accept adding deployment details such as a GitHub Pages workflow themselves

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, run npm install, then start the development server with npm run start; the default address is http://localhost:8089

  2. 2

    Fill in the site title, siteName, url, language, description, and author information in content/_data/metadata.js

  3. 3

    Place articles in content/posts/; front matter must include at least title and date; tags can generate tag pages, and draft: true excludes drafts

  4. 4

    The default fonts come from Adobe Fonts (Typekit); replace the Typekit link in _includes/layouts/base.njk and update the CSS variables at the top of css/index.css

  5. 5

    npm run build outputs to _site/; GitHub Pages requires adding .github/workflows/pages.yml yourself, while Netlify and Vercel configuration files are already included

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.

Must comply with when using

  • You are allowed to use, modify, commercially use, and distribute the code of this version for free.
  • 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's default fonts come from Adobe Fonts (Typekit), and an Adobe Fonts subscription/kit license is required for proper display; changing fonts requires modifying the Typekit link in base.njk and updating the CSS variables at the top of css/index.css.
  • GitHub Pages deployment does not include a workflow; you must add .github/workflows/pages.yml yourself to publish.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be determined solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

**Adobe Fonts (Typekit):** This template uses `p22-stickley-pro-text` and `neue-kabel`. The kit IDs are baked into `_includes/layouts/base.njk`

Original README

For GitHub Pages, add a `.github/workflows/pages.yml` build workflow.

Original README
https://github.com/tepiton/eleventy-prose-blog/blob/main/LICENSEhttps://github.com/tepiton/eleventy-prose-blog/blob/main/README.md

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: ebd57744d92c378d53925b3920b2f43c0eaf90afde265f9dc9f4ba7f6325a41a

2026-10-01T13:36:28.536Z

Source file / repository
# eleventy-prose-blog

An Eleventy v3 starter for personal prose blogs. Designed for writers who want a polished reading experience: footnote popovers, 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:8089`.

## Customization

### Site metadata

Edit `content/_data/metadata.js`:

```js
export default {
  title: "Your Blog",
  siteName: "yoursite.com",
  url: "https://example.com/",
  language: "en",
  description: "A description of your blog.",
  author: {
    name: "Your Name",
    email: "[email protected]",
    url: "https://example.com/about/",
  },
}
```

Note: `metadata.js` lives inside `content/_data/` so the entire `content/` directory is self-contained and portable.

### 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:
  - writing
  - topic
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

### Footnotes

Footnotes render as interactive in-place popovers. Write standard Markdown footnotes:

```markdown
This sentence has a footnote.[^1]

[^1]: The footnote content appears in a popover on click.
```

Popovers appear above the reference on desktop and as a fixed bottom panel on mobile. Falls back to traditional footnotes without JavaScript.

### 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: p22-stickley-pro-text, neue-kabel, Palatino, Georgia, serif;
  --font-heading: neue-kabel, 'Gill Sans', 'Helvetica Neue', sans-serif;
  --color-bg: #fffff8;
  --color-text: #1a1a18;
}
```

**Adobe Fonts (Typekit):** This template uses `p22-stickley-pro-text` and `neue-kabel`. The kit IDs are baked into `_includes/layouts/base.njk` under a `<!-- fonts: swap these links -->` comment. To use different fonts, replace the Typekit `<link>` 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 with footnote support
_config/
  filters.js                 # Date formatting, tag filtering
css/
  index.css                  # All styles, theme variables
js/
  theme-switcher.js          # Theme persistence
  footnote-interactions.js   # Popover logic
```

## npm scripts

| Command | Description |
|:--------|:------------|
| `npm run start` | Dev server at `0.0.0.0:8089` with live reload |
| `npm run build` | Production build to `_site/` |
| `npm run debug` | Build with Eleventy debug output |
| `npm run benchmark` | Performance benchmarking |

## Features

- **Footnote popovers** — in-place popover system with smart viewport positioning, falls back gracefully
- **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
- **Syntax highlighting** — PrismJS
- **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.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

eleventy-base-blog

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

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

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

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

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

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