foldout
Free + Pro Blog template

Marginalia — blog and magazine template

A reading-first blog in plain HTML and one stylesheet: 18 px serif at a 66-character measure, notes that sit in the margin on wide screens, article, archive and author layouts. No build step, no JavaScript, system fonts only, dark mode redrawn not inverted. Newsletter page and 404 in Pro.

  • HTML5
  • Plain CSS
  • No build step
  • No JS
  • Dark mode

Free and Pro

Pro

$9

Every page, the Pro-only pages, the source files, no attribution, and 12 months of updates and email support.

Home page, plain CSS
yes
Article, archive, author
yes
Newsletter + 404 pages
yes
Partials and page assembler
yes
Dark mode (follows system)
yes
Scroll animations (reveal, stagger, header shadow; reduced-motion aware)
yes
Credit link in footer
not required
Updates and support
12 months, email

Free archive

  • index.html
  • assets/css/style.css
  • README.md · LICENCE.txt

Pro archive

  • index.html · article.html
  • archive.html · author.html
  • newsletter.html · 404.html (Pro only)
  • assets/css/style.css
  • src/ · build.mjs (optional)
  • assets/js/motion.js · assets/css/motion.css
  • README.md · LICENCE.txt (Pro)

Licence

Use it in unlimited personal and commercial projects, including client work.
Do not resell the template itself, alone or in a bundle.

Full licence terms →

Look at the article page first

That’s where readers spend their time. Marginalia’s article page is an 18 px serif at a 40-rem measure — about 66 characters — with 1.6 leading, a lead paragraph, a byline, and prose styles for figures, block quotes, code and lists that hold up past the first screen. The type scale is small on purpose: a blog has three levels of heading, not six.

Notes in the margin

The name is the feature. An <aside class="note"> placed after a paragraph floats into the right margin above 72 rem and renders inline with a hairline below it. Reference and note link to each other, so keyboard and screen-reader users can jump and return. No JavaScript, no footnote plugin.

Nothing loads

System fonts only — Iowan Old Style on Apple devices, Palatino or Georgia elsewhere — so the page is one HTML file and one stylesheet with zero requests after them. Swap in a webfont if you must; the README says how to do it without a flash of invisible text.

Porting to a generator

Everything inside .prose is plain semantic HTML, which is what Markdown produces. The header and footer are two partials; the assembler is optional. Astro, Eleventy, Hugo and Jekyll all take this page as a layout with no changes to the CSS.

Compatibility

  • Chrome / Edge 109+
  • Safari 15.4+
  • Firefox 115+
  • iOS 15+
  • Android 10+

Read before you build

Version history

  • 1.0.0 2026-09-11

    First release

  • 14 KB
    home page + CSS
  • 0
    fonts loaded
  • 0
    JavaScript
  • 66
    characters per line

Related templates

Grove — single-column portfolio template preview

A portfolio for a few pieces of work worth a story: work list, two case-study layouts, about, plus a contact page with an enquiry form and a 404 in Pro. Plain HTML and CSS, no build step, no JavaScript, dark mode follows the system.

Reedbank — hotel website template preview

A hotel site in Tailwind: the date form on the first screen with the rate beside it, rooms with what is in them, sauna, weddings and events, gallery and a booking page. Eight pages, no JavaScript needed.

Ledger & Loaf — bookshop and café website template preview

A shop site with a counter price list, a week of dated events and opening hours, in a 1970s ledger-book style: warm paper, oxblood ink, dotted-leader rows, squared corners. Plain HTML and one stylesheet, no images, no build step.

Tell us what happened

Goes straight to a person. No account, no ticket number.

What is this about?

We keep the message and the page it came from. Nothing else — not your IP, not your browser. Privacy.