Skip to content

v4.0.0 - Next.js App Router + React 19

Choose a tag to compare

@mldangelo mldangelo released this 02 Jan 21:45
· 146 commits to main since this release
f580fb0

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-menu dependency → 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-motion support
  • Semantic HTML structure

For Forkers

If you're forking this project for your own personal site:

  1. See the Adapting Guide for step-by-step instructions
  2. All personal data is in /src/data/ — easy to swap out
  3. Deployment is automatic via GitHub Pages on push to main
  4. 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.