I'm really enjoying AdonisJS. My new preferred full-stack framework

There was a post (last week I think) about AdonisJS. The comments were along the lines of “oh great another JS framework”, but I thought I’d try it for a new private project.

Really glad I did. It feels like a Typescript version of Laravel. Highly recommended to add to your toolbox (it’s frontend framework agnostic so you can use whatever frontend you like).

A fullstack framework that is frontend framework-agnostic???

Harper said:
A fullstack framework that is frontend framework-agnostic???

Astro is.

Shane said:

Harper said:
A fullstack framework that is frontend framework-agnostic???

Astro is.

Astro is not a fullstack framework.

@Shane
I think of Astro as a modern static site generator (SSG) with a unique twist: it lets you use your favorite frameworks (like React, Vue, Svelte, etc.) for interactive components. Its primary focus is on optimizing performance by shipping minimal JavaScript to the client as an ‘islands architecture.’

Astro is not a fullstack framework because it focuses on building fast, mostly-static websites and lacks built-in backend features like API routes, database integration, authentication, and middleware. While it supports server-side rendering (SSR) and can integrate with external services for dynamic functionality, it relies on pairing with backend tools or platforms for fullstack needs, unlike meta frameworks like Next.js or Remix or Nuxt or SvelteKit etc.

@Blue
Just to tag on, Astro does support for endpoints, has built-in DB support, and middleware (that you could use to build out authentication). But of course a lot of these aren’t as feature-full as some more mature options since they’ve just been added in the last few versions.

@Blue
Astro supports API routes and has a DB client too.

It’s true it lacks auth and other backend features but how is this different than Next, Remix, etc?

@Noor
Oh. Interesting. I didn’t see those when I last used Astro.

I certainly think that Astro is a very cool project.

And really / I don’t think any of the other options I mentioned are really ‘full stack’ either.

@Blue
> And really / I don’t think any of the other options I mentioned are really ‘full stack’ either.

Definitely agree.

Most so-called ‘full stack’ JS frameworks are not even close to being complete backend frameworks.

Shane said:

Harper said:
A fullstack framework that is frontend framework-agnostic???

Astro is.

I am referring to the paradoxical wording.

The people making jokes in that thread are the people that never used a real ‘full stack batteries included’ framework such as Laravel or Rails. So they read ‘framework’ and the only thing they can associate that with is next/nuxt/remix/astro/etc… so yes, that would be ‘another framework’ for them because they don’t even know what we are talking about here.

Adonis is a big deal. It’s the first one that really feels like what we were missing in this ecosystem.

The fact it natively supports Inertia is the cherry on top. I think it’s the most sane, stable, maintainable, and future-proof way to use React nowadays.

It’s inevitable that at some point more people will start realizing this. As I said, the first roadblock is that many people came to this industry after the ‘rails’ wave was past. So they don’t know yet what this is all about.

@Payne
Honestly if you need a real full stack framework like Laravel, Rails, Django, or .NET I would question if using JS is actually a good choice.

The JS ecosystem is quite brittle. Projects tend to depend on tons of dependencies which might become abandoned at any point. Eg: Lucid (the Adonis ORM) depends directly on a dozen packages (excluding dev dependencies) like Knex for something as fundamental as getting data out of your DB.

If you look at eg .NET it has zero dependencies.

@Noor
The discussion here is about having such a batteries included framework in JavaScript. So if you don’t like JavaScript on the server then this is not for you.

If you are using JavaScript, then a full stack framework is far better than tying together all of that yourself. Yea, there might be tons of dependencies under the hood (maybe?) but you are not dealing with them. They are dealt with once in the framework and everyone benefits from that work.

@Payne
> The discussion here is about having this in JavaScript.

No, the discussion is how to solve the web backend properly.

We’re not in /r/javascript .

> Yea, there might be tons of dependencies under the hood (maybe?)

Maybe? Just check the package.json files.

> but you are not dealing with them.

If those dependencies become incompatible or abandoned for one reason or another they will end up affecting the end user of a framework. If this hasn’t happened to you yet, it’s probably because you haven’t used JS long enough.

@Noor
You seem to be looking for a fight.

What I’m saying here, is that if you are happy with JavaScript on the backend (which is a totally different discussion I’m not going to get into) then Adonis.js is a great (the best, for my taste) solution for like 80 or 90% of the typical CRUD apps we build, because it follows the spirit of Rails and Laravel to provide a comprehensive well-integrated and well-documented solution.

If you’re not happy with JavaScript on the backend then end of the conversation, I don’t have anything to say about that.

If you’re happy with using JavaScript in the backend, then the only alternative to not having ‘tons of dependencies’ is to write the code yourself. Isn’t it?

Adonis might have other dependencies (they’re not that many for the amount of features provided, this is the package.json from the starter template apparently).

But what’s the alternative? Writing the code yourself? With almost every other JS framework out there you’re also going to need tons of libraries for not doing even half of what Adonis does for you.

> If those dependencies become incompatible or abandoned for one reason or another they will end up affecting the end user of a framework. If this hasn’t happened to you yet, it’s probably because you haven’t used JS long enough.

This can happen with ANY JavaScript project and has nothing to do with Adonis. If anything, the fact that it affects Adonis probably means that there will be a lot of people in the same situation and it will be handled quicker, and probably by just one of the maintainers, and everyone benefits from that fix. But again, this is a problem for every ecosystem, especially bad in JS, I know, but not a problem introduced by Adonis. It’d be worse if you hand-picked a library that nobody uses and then you’re alone into upgrading and retro-fitting it to your custom integration.

@Noor
That’s a problem for the Adonis maintainers to handle, is it not? They could probably take over and eventually get it inbuilt.

@Payne
Do you have experience with Hono? If yes, do you think it’s better than Hono? Thanks!

Reagan said:
@Payne
Do you have experience with Hono? If yes, do you think it’s better than Hono? Thanks!

It’s not comparable at all. A totally different thing. You can compare Hono with Express, Fastify, etc.

Adonis is more like Laravel or Rails.

@Payne
I am totally into SvelteKit. Can you give me a short overview of what could be a game changer for me switching to Adonis? I appreciate.

Wren said:
@Payne
I am totally into SvelteKit. Can you give me a short overview of what could be a game changer for me switching to Adonis? I appreciate.

Out of the box, fully integrated ORM, auth, session management, cloud storage management, etc.