A writing-first static blog powered by Hugo and PaperMod, hosted on Cloudflare Pages.
Local dev: hugo server --baseURL http://localhost:1313 --buildDrafts (or press F5 in VS Code), then visit http://localhost:1313.
New post: create content/posts/YYYY-MM-DD-post-slug.md with front matter:
---
title: "Post Title"
date: 2025-01-20T10:00:00Z
tags: ["tag1", "tag2"]
draft: false
---New page: create content/pages/page-name.md; add to menu in config.toml if needed. See docs/CONTENT_GUIDE.md.
- Search, SEO (OpenGraph, Twitter Cards), social links
- Reading time, code copy buttons, breadcrumbs
- Custom homepage, penguin emoji favicon 🐧
blog/
├── content/ # posts/ (blog) and pages/ (About, Projects)
├── static/ # Images, favicon, assets
├── themes/ # PaperMod theme
├── docs/ # Documentation
├── .vscode/ # VS Code launch & tasks
└── config.toml # Hugo configuration
Cloudflare Pages: build command hugo --minify, output directory public, auto-deploys on Git push.
All in docs/: Content Guide, Customizations, PaperMod Parameters, Homepage Setup, Social Links, SEO Setup, Favicon Setup.
Edit posts → test locally (F5) → commit and push → Cloudflare Pages auto-deploys (~1-2 min).
- Posts not appearing: check
draft: falseandmainSections = ["posts"]inconfig.toml - Build fails: check
config.tomlsyntax; Hugo >= 0.146.0 required
Theme: PaperMod | Hosting: Cloudflare Pages