byandrev's blog
  • #astro
  • #nextjs

Why I decided to leave Next.js and switch to Astro

3 min read

Reasons Why I Left Next.js

  1. Slow Perceived Performance: Although Next.js follows good performance practices, I noticed that page transitions felt sluggish. I felt that something as simple as displaying an article page took far too long.
  2. Complicated Internationalization: I tried implementing NextIntl to handle multiple languages, but the process was complex and prone to errors.
  3. Not What My Project Needs: After some reading, I concluded that Next.js is better suited for more complex applications requiring intense interactivity, many dynamic routes, or server-side functions. My blog is a static content site simple, minimalist, and focused on reading.

Why Astro Is the Right Choice

Astro seemed like the solution that best fits my goals:

  • Excellent Performance: It delivers optimized static files by default with very fast loading times. This is ideal for a blog where content doesn't change very often.
  • Minimalist Design: I don't need JavaScript everywhere; this reduces the initial payload size and improves the user experience.
  • Simple Internationalization: I implemented i18n quickly and efficiently without needing to install additional packages or write complex code. Here is the basic configuration example:
import { defineConfig } from "astro/config"
 
export default defineConfig({
  i18n: {
    defaultLocale: "en",
    locales: ["es", "en", "pt-br"],
  }
})
 

https://docs.astro.build/es/guides/internationalization/

Astro fits my blog perfectly making it minimalist, fast, and content-focused. Although Next.js is a powerful and very capable tool, for this personal project, I prefer the simplicity and performance that Astro offers. With Astro, I am creating exactly what I want: a fast-loading static website without unnecessary complications.