All reflections
3 min read

🔥 Framework Updates#

Vue.js#

  • (👀) Vue 3.4: onWatcherCleanup API

    Finally, cleanup logic inside watchers. No more forgotten cleanup functions haunting your components at 2am.

  • (🎬) Motion for Vue

    Framer Motion has entered the Vue chat. <motion.div>, layout transitions, scroll animations — React devs can stop feeling smug now.

  • (💚) Nuxt 3.16 + Nuxt UI v3

    npm create nuxt is here and Nuxt UI v3 brings Tailwind v4 support. The DX just keeps getting better.

Next.js#

  • (▲) Next.js 15.2 + Security Patch

    New metadata system, error overlays, and React view transitions. Oh, and they patched a critical middleware bypass (CVE-2025-29927). Maybe update before your weekend, yeah?

Svelte#

  • (🧡) SvelteKit 2.17 + Svelte 5.20

    WebSocket support in SvelteKit and $props.id() for SSR-friendly IDs. Svelte keeps making the small things feel effortless.

🛠️ Developer Tools & Libraries#

  • (🦀) Oxlint Beta

    Rust-based linter that’s 50–100× faster than ESLint. Your CI pipeline just shed a tear of joy.

  • (📝) ESLint 9 Flat Config

    eslint.config.js is the new hotness. RIP .eslintrc, you were… complicated.

  • (🔬) Rsdoctor 1.0

    Rspack/Webpack visual analyzer. Finally understand why your bundle is the size of a small country.

  • (🦫) TypeScript Compiler in Go

    Microsoft rewrote the TypeScript compiler in Go. 10× faster. Your IDE might actually keep up with your typing now.

🌐 Web Standards & Browser Updates#

  • (🌐) Chrome Q1 2025 APIs

    text-box, node.moveBefore(), File System Access. Chrome keeps shipping like it’s Black Friday.

  • (🎨) CSS Gap Decorations Proposal

    Native gap styling is coming. No more pseudo-element hacks for simple dividers. Finally.

  • (🦊) Firefox 136

    :open, :has-slotted(), Intl.DurationFormat. Firefox staying relevant one release at a time.

  • (🧭) Safari 18.3

    :has() and ::view-transition fixes. Safari fixing bugs? 2025 really is different.

🎤 Events#

🎮 Bonus#

💻 CSS for Dummies#

Sass-flation:

.egg-carton {
  eggs: 12;
  price: $2;

  &.eggflation {
    eggs: 4;
    price: $10;
    wallet: null;
    opacity: 0.4;
    justify-content: space-around;

    &:hover {
      cursor: not-allowed;
      content: "Maybe next month...";
    }
  }
}

Cited Sources: JavaScript Plain English, Motion.dev, Nuxt Blog, Medium, Svelte Blog, Socket.dev, Rsdoctor, LogRocket, Daily.dev, Microsoft Edge Dev Blog, MDN, WebKit Blog, Smashing Magazine, Clagnut, Cloud Four, JSWorld Conference, Frontrunners, React Miami, CityJS London, Codrops

That's it for this week's frontend digest! What are you most excited about? Happy coding! 🚀