Hi Vercel community,
I recently open-sourced Skyplume, a refined Next.js blog template extracted from my production personal site.
Repository: https://github.com/ruoduan-hub/next-blog-skyplume-template
Production reference: https://www.0x1ai.com/ Deploy to Vercel: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fruoduan-hub%2Fnext-blog-skyplume-template&project-name=skyplume-blog&repository-name=skyplume-blog
Skyplume is designed for developers, writers, and makers who want a fast, content-first personal blog without wiring everything from scratch.
It includes:
- Next.js 15 App Router, React 19, TypeScript, Tailwind CSS 4, and Contentlayer
- MDX publishing with front matter, reading time, table of contents, code highlighting, math, citations, alerts, images, iframes, and custom components
- SEO defaults, Open Graph cards, Twitter cards, canonical URLs, sitemap, robots, RSS, and BlogPosting JSON-LD
- Local search powered by
pliny - Tags, pagination, author profiles, projects page, about page, and optional Giscus comments
- Dark mode, subtle motion, security headers, static asset caching, and static export support
- Baseline Lighthouse 100/100/100 tuning for Performance, Best Practices, and SEO

The design goal is simple: reading before decoration. Skyplume uses restrained typography, quiet borders, lightweight motion, and a structure that is easy to customize through data files, MDX, and small React components.
I would love to get feedback from the Vercel community, especially on:
- Whether the setup feels simple enough for a template
- What should be improved before more people use it
- Whether this could be a good fit for the Vercel Blog Templates gallery
Thanks for taking a look.