About

Folio is a lightweight, markdown-powered blog built with Nuxt 4. Write your posts in Markdown, and the site takes care of the rest — rendering, routing, styling, and SEO are all handled automatically.

Features

  • Paginated blog listing with 10 posts per page
  • Individual post pages rendered from Markdown with full typography styles
  • Dark / light mode toggle, persisted across visits
  • Draft posts hidden from listing — only status: published posts are shown
  • Open Graph and Twitter Card meta tags on every page for rich social sharing previews
  • Auto-generated /sitemap.xml for search engine discovery
  • Zod-validated frontmatter schema with optional SEO fields per post

Tech Stack

  • Nuxt 4 — Vue-based framework for static site generation
  • Nuxt Content v3 — reads Markdown files from content/blog/ and turns them into queryable, routable pages
  • Tailwind CSS v4 — utility-first CSS framework
  • DaisyUI v5 — component library built on Tailwind for ready-made UI elements
  • Zod — schema validation for post frontmatter
  • Vitest — unit and component testing

How It Works

Blog posts are plain Markdown files stored in the content/blog/ directory. Nuxt Content parses them at build time, generates the pages, and provides a query API for listing and filtering posts. No external database or CMS is required — the entire site is statically generated and deployed to Vercel.

Want to see how a post is written? Read the example post for a walkthrough of the frontmatter schema and Markdown features supported out of the box.

Source Code

The project is open source. Feel free to explore, fork, or contribute on GitHub.