New: search page at /blog/search, JSON feed at /feed.json, and machine-readable search at /blog/search.json.
Back to blog
Engineering 1 minute read

Building a Documentation-Style Blog in SvelteKit

February 8, 2026

Building a Documentation-Style Blog in SvelteKit

AI SUMMARY

We mirror a high-signal documentation blog system: fixed-width containers, hero+grid index, pill category tabs, a two-column post layout with a sticky author/share rail on desktop, Shiki-highlighted Markdown, reading-time labels, framed images, bottom recommendations, and an RSS feed. The implementation is SvelteKit-first: mdsvex for Markdown, Tailwind tokens for theming, and a JSON pagination endpoint for infinite scroll.

This post documents the structure we’re building: a blog with strong documentation layout and typographic rhythm, while remaining our own code + assets.

What “documentation-style” means

It’s mainly about placement and proportions:

  • A large hero card on the index, followed by a tag bar and a two-column grid
  • Post pages that use a narrow reading column with a sticky right rail (desktop)
  • Small mono uppercase metadata: category + reading-time + date

The content pipeline

We use Markdown for content, but we want code blocks to look like “real UI”. That means Shiki.

// src/lib/server/blog.ts
import readingTime from "reading-time";

const minutes = Math.max(1, Math.round(readingTime(markdown).minutes));

A tiny checklist

FeatureWhy it matters
Category pillsFast scanning
AI summary cardBetter “skim” mode
Sticky share railShare UX without interrupting reading
RSS feedWorks in every reader
Series

SvelteKit Publishing System

A multi-part track covering the content pipeline, presentation layer, and delivery mechanics for a modern SvelteKit publication.

View series page

More from this author

Shawn

Author page

More posts to read