Best Boilerplates for Content and Blog Platforms 2026
Content Platforms vs SaaS
Building a content platform — a blog, documentation site, knowledge base, or media publication — has different requirements than SaaS:
- Performance is non-negotiable — Google's Core Web Vitals affect search ranking
- SEO from day one — Meta tags, structured data, sitemaps, canonical URLs
- Content editing — Non-technical editors need a good CMS experience
- Static generation — Most content doesn't change; build-time rendering is optimal
Quick Comparison
| Starter | CMS | Dynamic Features | SEO | Performance | Best For |
|---|---|---|---|---|---|
| AstroWind | MDX files | ❌ | ✅ | ⭐⭐⭐⭐⭐ | Static content sites |
| Ghost | Built-in | Auth | ✅ | ⭐⭐⭐⭐ | Publications, newsletters |
| T3 + Contentlayer | MDX files | ✅ | ✅ | ⭐⭐⭐⭐ | Content + app features |
| Next.js + Sanity | Sanity CMS | ✅ | ✅ | ⭐⭐⭐⭐ | Editor-friendly CMS |
| Payload CMS | Built-in | ✅ | ✅ | ⭐⭐⭐ | Headless CMS SaaS |
The Starters
AstroWind — Best Static Content
Price: Free | Creator: onWidget
The gold standard for content sites. Astro's partial hydration delivers 0KB JavaScript for static pages, with JavaScript hydrated only where needed. Tailwind CSS, MDX blog posts, SEO components, and deployment configs for Netlify/Vercel.
Performance: PageSpeed 98-100. Lighthouse perfect score is realistic.
Choose if: You're building a blog, documentation, or marketing site where performance matters most.
Ghost — Best Publication Platform
Price: Free (self-hosted) / $9-$199/month (Ghost Pro) | Creator: Ghost Foundation
Purpose-built content platform. Rich editor (Koenig), newsletter subscriptions, member paywall, Stripe billing for paid memberships, SEO, and excellent RSS. Used by serious publications.
# Self-hosted Ghost
ghost install # Requires Ghost-CLI
# Or use Ghost Pro for managed hosting
Choose if: You're building a media publication, newsletter business, or paywalled content platform.
Next.js + Contentlayer — Best Hybrid
Price: Free | Creator: Various
Content from MDX files + Next.js App Router + Contentlayer (type-safe content). Best when you need both static content AND dynamic SaaS features — user authentication, personalization, comments.
// contentlayer.config.ts — typed MDX content
import { defineDocument } from 'contentlayer/source-files';
export const Post = defineDocument(() => ({
name: 'Post',
filePathPattern: 'blog/**/*.mdx',
fields: {
title: { type: 'string', required: true },
date: { type: 'date', required: true },
description: { type: 'string', required: true },
tags: { type: 'list', of: { type: 'string' } },
},
computedFields: {
slug: { type: 'string', resolve: doc => doc._raw.flattenedPath },
url: { type: 'string', resolve: doc => `/blog/${doc._raw.flattenedPath}` },
},
}));
Choose if: You need both content publishing and authenticated SaaS features in one Next.js app.
Next.js + Sanity — Best Editor Experience
Price: Free (self-hosted) / Sanity free tier is generous | Creator: Sanity.io
Sanity's Studio provides the best headless CMS editing experience. Real-time collaboration, custom content models, image CDN (Sanity Image URLs), and an API that fronts Next.js.
Choose if: Non-technical editors are creating content and need a polished editing interface.
Content + SaaS: The "Both" Pattern
For a SaaS with a content marketing blog, you don't need to choose:
your-saas.com/
├── / # Next.js app (auth, dashboard, API)
├── /blog # Astro or Next.js static MDX
└── /docs # Starlight or Hugo
# OR: subdomain separation
blog.your-saas.com # Separate Astro/Ghost deployment
docs.your-saas.com # Separate Docusaurus deployment
app.your-saas.com # Main Next.js SaaS app
The subdomain approach lets you optimize each separately — Astro for the content marketing blog, Next.js for the application.
Compare content platform and SaaS boilerplates on StarterPick.
Check out this boilerplate
View AstroWind on StarterPick →