Web · Beginner

Inkwell: Markdown Blog Engine

Build a fast static blog that turns Markdown files into pages with tags, RSS, and SEO meta, deployed for free.

Beginner6-10 hoursTypeScriptJavaScript

You will build a fully static personal blog using Astro and MDX where each post is a Markdown file with frontmatter. The site generates individual post pages, a tag index, an RSS feed, and proper Open Graph meta tags at build time. It ships zero client-side JavaScript by default, making it extremely fast and easy to host for free on Netlify or any static host. This is a practical project for learning how static site generators work and how to structure content-driven sites.

What you build

  • Write posts in Markdown or MDX files with frontmatter for title, date, tags, and description
  • Auto-generated post listing page sorted by date with tag filters
  • Individual post pages with syntax-highlighted code blocks via Shiki
  • Tag index pages that aggregate all posts sharing a given tag
  • RSS 2.0 feed generated at build time for feed readers
  • Open Graph and Twitter card meta tags on every page for share previews
  • One-command deploy to Netlify via CLI or Git push

What it teaches

  • How static site generators transform content files into HTML at build time
  • Astro content collections and type-safe frontmatter schemas
  • Dynamic routing with `getStaticPaths` to generate pages from data
  • Generating XML feeds and structured meta tags programmatically
  • Deploying a static site with a CI/CD pipeline via Netlify

How it works

  1. 1

    Markdown Files

    • src/content/blog/*.md
    • frontmatter: title, date, tags
  2. 2

    Astro Build

    • Content collections parse + validate
    • getStaticPaths generates routes
  3. 3

    Static Output

    • /blog/[slug] HTML pages
    • /tags/[tag] index pages
    • /rss.xml feed
  4. 4

    Deploy

    • Netlify serves dist/
    • Global CDN, zero runtime
fig. 01 — markdown files are parsed at build time into typed collections, then astro generates all html pages and feeds as static assets deployed to a cdn.

Sign in to open the build guide

Free account. Get the step-by-step build and every resource link.

Sign in to continue

Take it further

  • Add a reading-time estimate computed from word count and display it in each post header
  • Implement an OG image generator using Satori or a Netlify Edge Function so each post gets a unique share image
  • Integrate Pagefind for fully static full-text search with no backend required

More like this

All projects