Remix.run Logo
koakuma-chan 14 hours ago

I am very disappointed with Astro.

Who is this framework for?

It's been years, and they still don't support unit testing Astro Actions. They still don't support inter-island communication.

"Astro v6 is around the corner" - and the only changes are 1. refactored CLI (why? it's perfectly fine) 2. bumped zod to v4

It's great if you want to build a blog or something, but it's definitely far from great for building apps.

Don't know what they are thinking.

drawfloat 14 hours ago | parent | next [-]

I don't think it's really targeted at building apps, as far as I can tell its whole pitch has always been that that most websites are not apps and therefore most websites do not need a full JS framework like Next.js.

They even say it in this blog:

"Our mission to design a web framework specifically for building websites — what we call content-driven websites, to better distinguish from data-driven, stateful web applications — resonated"

monooso 14 hours ago | parent | prev | next [-]

> Who is this framework for?... It's great if you want to build a blog or something, but it's definitely far from great for building apps.

Not an Astro expert, but the massive headline at the top of the homepage may provide a clue as to their intended audience:

> The web framework for content-driven websites

mpeg 14 hours ago | parent | prev | next [-]

On inter-island communication, I actually think less is more – I find a lot of the recent big features like this they have added unnecessarily constrain you to doing things a certain way, while the reason I liked Astro in the first place was the simplicity.

You can easily add any global store library to your project to communicate between islands from the very simple (nanostores) to more complex stuff (are people still using mobx, redux, etc?)

I actually would prefer if Astro kept the core more simple, I never understood the point of Astro components for example; always thought their game plan would be to build their own client-side framework like what remix v3 is doing, but currently their components are too limited to make them worth using over just doing everything in react, svelte, or whatever floats your boat.

koakuma-chan 14 hours ago | parent [-]

Astro component is your page's entry point. It's similar to React server component. The typical flow is to fetch data in it, and pass the data to client component written in React or whatever. You can also have pages that are Astro only, without any front-end framework.

mpeg 14 hours ago | parent [-]

Yeah, I know, but since by default the front-end islands are server-rendered with no hydration the lines are blurred between what you would use an .astro component for, and just using for example react.

Personally I only ever use .astro components if I'm 100% sure I will never need any client side interactivity, otherwise it's just easier to ignore them.

koakuma-chan 14 hours ago | parent [-]

I mean, you have to have an .astro file if you want your route to be picked up, and then import and use React components in that file. IIRC, you cannot just directly use React.

mpeg 14 hours ago | parent [-]

Oh right, yeah I get what you're saying now. Indeed I think .astro templates make sense at the page level say to define a layout, and I actually like the syntax of stuffing the server js into a frontmatter style block, it's pretty nice.

pier25 12 hours ago | parent | prev | next [-]

There are tons of options for sharing state between islands.

The docs show how to use nanostores but you can use other libs like vue refs, etc.

https://docs.astro.build/en/recipes/sharing-state-islands/

CharlieDigital 14 hours ago | parent | prev | next [-]

    > They still don't support inter-island communication
Can't you just use standard DOM events for that on the client? This would work even pushing events from React to Vue to Vanilla.
koakuma-chan 14 hours ago | parent [-]

That's what I did, but DX is not great. I would prefer some kind of channel API.

philipwhiuk 14 hours ago | parent | prev [-]

If all you are writing a blog and you're not using Substack or Squarespace or any of the other million blog hosting options you're crazy IMO.

re5i5tor 14 hours ago | parent | next [-]

If you aren’t realizing the importance of POSSE imho that’s crazy ;-)

array_key_first 12 hours ago | parent | prev | next [-]

You become beholden to these platforms and they're inherently not portable. There is risk here, and given the track record of Internet companies I think it's fair to say the risk is not worth it for many people.

Your costs could explode, or worse, the business could go under and you lose all your shit.

upcoming-sesame 13 hours ago | parent | prev | next [-]

Why ? Spinning up a blog these days with one of these frameworks is almost quicker than signing up to one of the blog hosting platforms.

And you get to keep your data in markdown easily portable

pier25 14 hours ago | parent | prev [-]

Substack only really makes sense if you want to monetize your content.