Astro is fantastic. I initially used NextJS with MDX, and something simple like using relative markdown links to images was utterly impossible.
I remember going down a day long rabbit hole to understand why, and it boiled down to content layer, MDX and NextJS using different, incompatible module loaders, bundlers or transpilers of some kind[1][2][3]. Ridiculous. And don’t get me started on the image component.
In the end, Astro just works. No need for React (unless you want it), it’s simple, fast and produces a static site you can use without JavaScript.
Data fetching is also utterly trivial, so you can have a fully static site with “live” data pulled in at compile time.
Comments
Astro is fantastic. I initially used NextJS with MDX, and something simple like using relative markdown links to images was utterly impossible.
I remember going down a day long rabbit hole to understand why, and it boiled down to content layer, MDX and NextJS using different, incompatible module loaders, bundlers or transpilers of some kind[1][2][3]. Ridiculous. And don’t get me started on the image component.
In the end, Astro just works. No need for React (unless you want it), it’s simple, fast and produces a static site you can use without JavaScript.
Data fetching is also utterly trivial, so you can have a fully static site with “live” data pulled in at compile time.
I recommend it to anyone with frontend fatigue.
1. https://stackoverflow.com/questions/63957018/how-to-use-imag...
2. https://mmazzarolo.com/blog/2023-07-30-nextjs-mdx-image-sour...
3. https://github.com/contentlayerdev/contentlayer/issues/11
Nice summary! Any guides you’d suggest for someone new to all of this, in terms of getting a simple blog set up with Astro?
The getting started docs[1] are really good, I’d recommend starting there for sure.
Basically you just run a few commands and you’ve got a website. Edit the Astro files to put HTML in, don’t worry about any JavaScript.
Then try adding a simple “site header” component and using that.
1. https://docs.astro.build/en/tutorial/1-setup/2/