Next.js work

App Router, static by default. Live data comes from cached API routes that client leaves read, so I never have to make a whole page dynamic. That is how the blog and project pages stay prerendered while the GitHub, Spotify and reaction counts keep changing.