Astro 7.0

(astro.build)

211 points | by saikatsg 2 days ago ago

60 comments

  • Princesseuh 2 days ago ago

    I made the Rust compiler and the Rust Markdown pipeline (https://satteri.bruits.org) in this, let me know if you have any questions, glad to answer anything!

    • steveklabnik 2 days ago ago

      My personal website uses Astro, so I'll be tickled that Rust is now in there too. Thanks for your work!

      • Princesseuh 2 days ago ago

        Love everything you do Steve, consider that I've done it for you

      • mrsssnake 2 days ago ago

        tickle tickle

    • ZeWaka 2 days ago ago

      How does Satteri compare to a standard library like marked (https://github.com/markedjs/marked)?

      • Princesseuh 2 days ago ago

        It depends in what regards you mean, I have some benchmarks here if you'd like to take a look at those: https://github.com/Princesseuh/web-markdown-benchmark

        The TL;DR is that `marked` is very light, but a bit on the slower side compared to Sätteri and `markdown-it` (and its forks). I'm not sure how friendly the extensibility is, but Sätteri re-use the same AST format as the unified ecosystem, which might feel more friendly.

        Both good options, though!

        • ZeWaka 2 days ago ago

          We just use `marked` currently for some light markdown rendering in a game engine. This does look like it offers much better extensibility if we ever needed that - thanks for the clarity!

    • genshii 2 days ago ago

      Just moved my astro project over to v7 and saterri the other day. Writing MDAST/HAST plugins is so much better/easier, so great job there :)

    • BSTRhino 2 days ago ago

      Very cool! What was the trickiest part of coding Sätteri?

      • Princesseuh 2 days ago ago

        It was tough to create a plugin API that was both performant and intuitive. Especially since the library people were migrating from (remark/rehype) was very laissez-faire in regard to the data you have access to, visiting patterns, etc.

        Crossing data between Rust and JS is inherently kinda slow (relatively), so there's a constant push and pull between flexibility and performance that's not always easy to reason about!

    • toddmorey 2 days ago ago

      Thanks for your work on this!

    • BorisMelnik 2 days ago ago

      great job, that is a huge accomplishment.

    • stronglikedan 2 days ago ago

      love the color scheme

    • keepupnow 2 days ago ago

      For the good of humanity, I must ask... How much Claude? How much human?

  • matsemann 2 days ago ago

    I probably only use 1 % of Astro's features, but I like how it's enabled me to build static sides as back in the days, but with a build pipeline.

    So I can use components, reuse stuff, include stuff etc, basically what I would do with PHP back in the days, but now it spits out a compiled page I can host for cheap (often even free). And easy to add in some interactivity when needed. Like I render a list as a component, and very easy to ship some dynamic filtering on the frontend using the same code, but the content is still statically in the html, so served fast and good SEO.

  • pier25 2 days ago ago

    It's very cool to see the JS ecosystem reducing dependencies and I hope this trend continues.

    Astro has gone from 247 deps in v6 to 190 in v7.

    https://node-modules.dev/#install=astro@7.0.6

    https://node-modules.dev/#install=astro@6.0.0

    • Princesseuh 2 days ago ago

      This was actually part of the reason I made the Rust markdown processing, the unified ecosystem is a lot of deps!

      I still have some plans in this area that should reduce the overall count further, though.

    • pjmlp 2 days ago ago

      The ultimate reduction is leaving JS to the browser and write backend code in Go, Rust, Java, C#,...

      • hn_throw2025 2 days ago ago

        Do you really have to make the exact same comment in every related thread?

        It’s just tedious at this point.

        • pjmlp 2 days ago ago

          Yes, apparently it isn't tedious enough, otherwise you would have not wasted a few seconds replying.

      • pier25 2 days ago ago

        Astro is a backend project...

        • pjmlp a day ago ago

          Which started as JavaScript, and as all things go, got rewriten into Rust.

          • pier25 a day ago ago

            +90% of Astro is still written in TS

            • pjmlp a day ago ago

              Still.... lets see how long it stays that way, now that RIR got started.

  • keepupnow 2 days ago ago

    "The .astro compiler has been rewritten in Rust.".

    I'm personally awaiting the rewrite to assembly.

    • wofo 2 days ago ago

      Rust is so powerful it rewrites your code to assembly on-demand every time you compile ;)

  • microflash 2 days ago ago

    The switch to strict HTML compilation is just not cool, and actively prevents upgrading sites which need to deal with remote content that is not written in strict HTML.

    I also wish there could be a general purpose content processing API so I can plug a different format than markdown (such as typst)

  • AgentME 2 days ago ago

    The AI Enhancements section was interesting. I've been wondering about the best practices for agents interacting with long-running dev servers, and Astro 7's approach (run in background and have a logs command) seems like a good model.

  • MoonWalk 2 days ago ago

    I don't understand what this is, based on this statement:

    "Astro supports every major UI framework. Bring your existing components and take advantage of Astro's optimized client build performance."

    But isn't Astro a framework itself? And then apparently you need Node as well. The frameworks upon frameworks in Web development are baffling.

    • genshii 2 days ago ago

      Astro is a meta-framework that allows you to plug in other web frameworks where you need it (React, Solid, etc). Although it would also be fair to consider Astro a sort of build tool / bundler.

      Node is a runtime, not a framework.

      So there's really only one framework here (Astro). Using other web frameworks within it is completely optional.

      • MoonWalk a day ago ago

        Thanks. I thought V8 was the runtime.

    • fsuts 2 days ago ago

      It means the island bit where you can mark areas of a page as non static and then run react or other framework as components

    • keepupnow 2 days ago ago

      Web dev is a royal mess, but what isn't in current times? Too many opinions not enough direction.

  • pks016 2 days ago ago

    I had tried astro for my personal website when it was released. It was a mess for me. I couldn't keep with so many components. I keep breaking things, one way or the other. I might have to try again to see what things have changed.

  • fnoef 2 days ago ago

    I really really like Astro, but I'm either getting old or it's something else.

    I just recently updated my website to Astro 6 and now... there's Astro 7. Maybe by the time I update, Astro 8 will be a few weeks in the future.

    • MatthewPhillips 2 days ago ago

      We unfortunately released Astro 6 only a few weeks before Vite 8 / Rolldown came out, which is why we did Astro 7 so soon. But there are very few breaking changes compared to Astro 6. That being said, some of these performance improvements (the Sätteri processor) are available in Astro 6 too.

    • fsuts 2 days ago ago

      Cloudflare bought Astro recently, and as it states in docs it previously had cache plugins for 2 companies but not Cloudflare so that may have been a motivation along with the Vite update mentioned

    • ulimn 2 days ago ago

      (As an outsider, ) I suspect it's because the Rust rewrite was big enough to bump the main version number.

      • Princesseuh 2 days ago ago

        It was partially that, but mostly the Vite version with the Rolldown bundling etc. We typically always need to do a major whenever Vite releases one because it tends to impact us a lot compared to other frameworks for various reasons.

  • cassidoo 2 days ago ago

    I upgraded my website recently and it's exciting! That being said, I admit my builds didn't get faster (they actually on average slowed down a bit). Hopefully that improves, but worth noting.

  • yolkedgeek 2 days ago ago

    I like the idea of astro, but never really used it. My main concern is. Does v7 mean that there have been 7 breaking changes thus far? So if I started my project on v1, I had to revise it 6 times to date?

    If yes, then this instability is a serious concern to me.

    • Princesseuh 2 days ago ago

      If you are using every single feature Astro has, your code somehow goes through every single branch (of every single dependency), etc then yes, but that'd be a pretty far-fetched scenario!

      In practice, our users typically comment quite positively on how little (if any) work major updates requires, and we offer pretty extensive upgrade guides, if that helps.

  • stevoo 2 days ago ago

    I have been trying to convince my marketing department to replace there archaic wordpress with an Astro build with AstroCMS and markdown for there needs.

    I have build several sites using Astro 6, and i am finding the ease of building the sites amazing and exceptional in SEO as well.

  • brachkow 2 days ago ago

    Switch from widely supported unified/rehype to own rehype-incompatible markdown tooling just for build time speed improvement is quite upsetting

    Good that they added a tool to keep using rehype, but I’m unsure that it will last

    • Princesseuh 2 days ago ago

      We don't intend on removing support for the unified ecosystem, we on purpose made the Markdown processing pipeline pluggable so that it was possible for both to exists!

      The vast majority of our users don't use any sort of unified plugins, so a pipeline that's faster (and about 100 deps leaner) felt like a better default.

  • mordras 2 days ago ago

    For me currently nothing beats Astro + Claude Code for building sites, maybe with some image generator sprinkled in. Build time improvements are always welcome, great job!

  • shay_ker 2 days ago ago

    I saw the integration with Hono - hadn't heard of it before, do many people use it?

    • brachkow 2 days ago ago

      Hono is a) de-facto new express with proper typescript support b) the way to write serverless code that is not nailed to current platform quirks

      So, yes, it’s very widely used backend for modern typescript backends

  • big_toast 2 days ago ago

    Are these typical build speeds on static sites these days? It's slower than I expected for a rust re-write. (Or I guess maybe the portion re-written in rust is only a small part of the build pipeline time?)

    My understanding is that astro isn't considered particularly slow?

    • Princesseuh 2 days ago ago

      Yeah, the parts rewritten in Rust here as only parts of the bottleneck. A lot of it is still JavaScript (including the user's code!). If Astro was just .md -> HTML, it'd of course be much faster.

  • turkeyboi 2 days ago ago

    Exhausting