Skip to content

Repository files navigation

highfive's blog

A static-first developer blog built with Next.js App Router, Tailwind CSS, MDX, Shiki, and local content files.

Stack

  • Next.js App Router
  • Tailwind CSS with Tailwind Typography
  • MDX content from content/**/*.md and content/**/*.mdx
  • Shiki syntax highlighting through rehype-pretty-code
  • Local search over title, tags, description, and raw post text
  • RSS, sitemap, robots, and dynamic metadata

Getting Started

npm install
npm run dev

Open http://localhost:3000.

Folder Structure

app/                 App Router pages, metadata, RSS, sitemap
components/          Shared UI components
content/             Local markdown and MDX posts
lib/                 Post loading, search, metadata, helpers
public/              Static assets
styles/              Reserved for extra global style modules
utils/               Reserved for general utilities

Writing Posts

Create .md or .mdx files anywhere inside content/.

---
title: "Binary Search Invariants"
date: "2026-01-12"
tags: ["algorithms", "binary-search"]
description: "A compact note on writing binary search without guessing."
cover: "/og.png"
featured: true
---

Your post content.

Supported frontmatter:

  • title
  • date
  • tags
  • description
  • cover
  • featured
  • draft
  • slug

slug is optional. Without it, the filename becomes the post slug.

SEO Setup

Update lib/site.ts with your production URL before deploying:

url: "https://your-domain.com"

The app includes:

  • Dynamic post metadata
  • OpenGraph and Twitter metadata
  • /sitemap.xml
  • /robots.txt
  • /rss.xml

Deployment

Deploy on Vercel:

  1. Push this folder to GitHub.
  2. Import the repository in Vercel.
  3. Keep the default Next.js settings.
  4. Set a custom domain later in Vercel project settings.

No database is required.

Future Extensions

These are intentionally left out of v1 to preserve the static-first architecture:

  • Comments: use Giscus or a custom API route later.
  • View counter: use Vercel KV, Upstash Redis, or tiny analytics endpoint.
  • Newsletter: use Buttondown, Resend, or ConvertKit.
  • Analytics: use Vercel Analytics, Plausible, or Umami.
  • Project showcase and resume pages: add static routes under app/projects and app/resume.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages