Personal tech blog about Java, Spring Boot, design patterns, and software craftsmanship.
Built with a zero-dependency custom static site generator.
npm install # first time only
npm run build # generate dist/
npm run preview # build + serve at http://localhost:3000| Command | What it does |
|---|---|
npm run build |
One-shot build → dist/ |
npm run dev |
Watch mode — rebuilds on any change |
npm run serve |
Serve dist/ at http://localhost:3000 (run build first) |
npm run preview |
Build + serve in one step |
- Create
content/posts/YYYY-MM-DD-your-slug.md - Add frontmatter:
---
title: "Your Post Title"
date: 2026-04-14
tags: [java, spring boot]
image: assets/images/cover.jpg # optional
description: "One-line summary shown in the post card."
---
Your content here…- Run
npm run build(or letnpm run devpick it up automatically)
content/
posts/ ← blog posts (markdown)
pages/ ← static pages (about, etc.)
assets/
css/style.css ← dark theme
js/main.js ← scroll bar, copy-code, mobile nav
images/ ← images referenced by posts
scripts/
build.cmd ← build shortcut (works without npm in PATH)
preview.cmd ← build + serve shortcut
build.js ← static site generator
serve.js ← local dev server
config.js ← site metadata (title, author, nav, social links)
dist/ ← generated output (gitignored)
Push to main or master — the GitHub Actions workflow in
.github/workflows/deploy.yml will build and deploy automatically.
One-time setup in the repository settings:
- Go to Settings → Pages
- Under Build and deployment, set Source to GitHub Actions
That's it. Every push to main triggers a fresh build and deploy.