Why I Chose AdonisJS Over Other Frameworks

To me, a web framework should make web development easy. What I call “easy” is being able to work alone and/or with other people — especially if I have front-end teammates. Since AdonisJS uses TypeScript, both the back-end and front-end can easily understand each other’s code without learning a new language they’ve never seen before.

I’m also looking for a fast framework at runtime. AdonisJS uses Node.js as its runtime, making it fast and offering better performance than frameworks based on popular scripting languages like Python, Ruby, or PHP. The libraries provided by the AdonisJS team on Adonis packages can also fulfill my basic needs for building a web app — though they’re not as rich as what other frameworks like Laravel offer.

AdonisJS also has out-of-the-box support for InertiaJS, which I always use to make full-stack development easy and fun, without needing separate configs to get the front-end and back-end working together. Want a minimal version, like API-only? AdonisJS has templates for that too.

Community is also a key part of what I want in a framework. The community on Discord is quite helpful, even though it’s not huge. A small community is a plus for me, since I can contribute packages and learn more about web engineering — not just be a web developer. Deployment is easy too; it just needs Docker to ship, and there’s a minimal Docker setup in the docs.

I’ve tried several frameworks like Express.js, Django, and Laravel. What I don’t like about Express.js is that it’s so minimal — I have to do everything by hand, which makes development slow (bad DX). It also uses plain JavaScript without types, which can raise runtime errors. I love Django, especially its “batteries included” philosophy, but I don’t enjoy writing Python. If there were an official Python that used braces instead of indentation, I might go back to Django. But since it uses Python, it doesn’t fit my definition of “easy” from the first paragraph — especially when working with front-end teammates who use JavaScript/TypeScript.

Laravel is good — AdonisJS is inspired by Laravel — but the team behind AdonisJS wanted a TypeScript version of Laravel. Personally, I don’t enjoy coding in PHP; using dollar signs for variables is bad DX for me.

I’d like to see the community grow so more people can contribute, improve packages, and enhance the documentation.

#learned #webdev

All thoughts are my own. Feedback is welcome. Contact: Email: rvyhvn@tuta.io

Unless stated otherwise, content licensed under CC BY 4.0.