v4.0.0 - Next.js App Router + React 19
Overview
This release marks the complete transformation of the personal-site template from an Express/Webpack application to a modern Next.js Jamstack site. This is a documentation release for the continuous deployment model—the live site always reflects the latest main branch.
411 commits since v1.5.0, with contributions from Ian Webster, Michael D'Angelo, Nick Spaargaren, Noah Trueblood, Ray Liu, Will, and Yang Zhou.
Architecture Evolution
| Component | v1.5.0 (2018) | v4.0.0 (2026) |
|---|---|---|
| Runtime | Express 4.x server | Static export (no server) |
| Framework | React 16 + Webpack 4 | Next.js 16 + React 19 |
| Language | JavaScript | TypeScript 5.9 (strict) |
| Routing | react-router | Next.js App Router |
| Linting | ESLint | Biome |
| Testing | — | Jest 30 + React Testing Library |
| Deployment | Manual | GitHub Actions → GitHub Pages |
| Node | 8.x | 20+ |
Highlights
🏗️ Framework Migrations
- v2.0 — Adopted React Hooks API
- v3.0 (Dec 2020) — Removed Express backend, migrated to Create React App
- v4.0 (Jul 2025) — Migrated to Next.js App Router with TypeScript
⚡ Performance
- Static export for instant page loads
- Next.js automatic font optimization
- Turbopack for fast development builds
- Removed 944KB
react-burger-menudependency → native 2KB slide menu
🛠️ Developer Experience
- TypeScript strict mode throughout
- Biome for fast, unified linting and formatting
- Jest + React Testing Library for component tests
- Comprehensive documentation in
/docs
♿ Accessibility
- Native slide menu with focus trapping and keyboard navigation
- ARIA attributes on interactive elements
prefers-reduced-motionsupport- Semantic HTML structure
For Forkers
If you're forking this project for your own personal site:
- See the Adapting Guide for step-by-step instructions
- All personal data is in
/src/data/— easy to swap out - Deployment is automatic via GitHub Pages on push to
main - Node 20+ required
What's Next
This project follows continuous deployment. Future releases will only be created for major architectural changes. Day-to-day improvements deploy automatically to the live site.