← back

The Power of Web Development with Next.JS

Performance, libraries, and animations — reflections on moving from Nuxt to Next.

After a couple of years leaning heavily on Nuxt, I spent the last few months rebuilding my personal projects with Next.js — and I’ve been genuinely impressed by how much the surrounding ecosystem has matured.

Why the switch

I wasn’t dissatisfied with Nuxt. It’s still a lovely framework. The move was driven by three things:

  1. The React ecosystem’s sheer breadth of UI libraries
  2. Native Server Components unlocking different data patterns
  3. First-class TypeScript DX across the entire toolchain

The animation side

The bit I care most about is motion. Framer Motion, GSAP, and the newer motion-primitives kits have made it trivial to add the kind of small, purposeful animations that used to take real effort to build.

import { motion } from "motion/react";

export function Hero() {
  return (
    <motion.h1
      initial={{ opacity: 0, y: 20 }}
      animate={{ opacity: 1, y: 0 }}
      transition={{ duration: 0.6, ease: [0.22, 1, 0.36, 1] }}
    >
      tuna
    </motion.h1>
  );
}

Performance

Next’s App Router + React Server Components let you ship less JavaScript by default, which is the kind of performance win that actually matters — not micro-optimizations on render times, but on the bytes that never reach the client at all.


More coming soon.