Type-safe
We pay a closer look at type-safety, seamless intellisense, and support for auto imports when designing framework APIs.
ESM ready
AdonisJS leverages modern JavaScript primitives, including ES modules, Node.js sub-path imports, and much more.
Fast - Wherever it matters
We ship with one of the fastest validation libraries, and our HTTP server has performance on par with Fastify.
World-class testing experience
Testing is not an afterthought for us. We ship with primitives to manage test databases, swap dependencies, generate fake data, interact with cookies and sessions, and much more.
With AdonisJS, you will love writing tests.
import { test } from '@japa/runner'
import { UserFactory } from '#factories/user_factory'
test('render polls created by the logged-in user', async ({ visit, browserContext }) => {
/**
* Create a user with 5 polls using Model factories
*/
const user = await UserFactory.with('polls', 5).create()
/**
* Mark the user as logged in
*/
await browserContext.loginAs(user)
/**
* Visit the endpoint that renders the list of
* polls for the logged-in user
*/
const page = await visit('/me/polls')
for (let poll in user.polls) {
await page.assertExists(
page.locator('h2', { hasText: poll.title })
)
}
})
A huge collection of officially maintained packages
Always find yourself switching between the latest ORMs or migrating away from those unmaintained libraries?
We have been there too! That is why AdonisJS ships with a collection of officially maintained and well-documented packages.
Pick and use the ones you need.
Lucid
SQL ORM with a database query builder, Active record based models, support for migrations, and model factories for testing.
Auth
Driver-based authentication layer with support for sessions, API tokens, basic auth, and much more.
Bouncer
Bouncer provides low-level APIs to build custom authorization workflows like RBAC or ACL.
FlyDrive
FlyDrive provides a unified API to manage user-uploaded files on S3, GCS, and the local filesystem.
Limiter
Protect your API endpoints by implementing fine-grained rate limiting. Supports multiple backend stores.
Edge
A modern and batteries-included template engine for the ones who keep things simple.
Bentocache
Speed up your applications by storing slowly changing data in a multi-tier cache store.
VineJS
A superfast and type-safe validation library for Node.js. VineJS comes with 50+ validation rules and 12+ schema types.
Ally
Add support for Social login to your apps. Ally ships Twitter, GitHub, Google, LinkedIn, and many more drivers.
I18n
Create multi-lingual web apps. We provide APIs for localization, formatting values, and managing translations.
Health checks
Monitor database connectivity, redis memory size, and your application health using a single package.
Mailer
Send emails from your application using a multi-driver mailer. Supports SMTP, SES, Mailgun, Resend and much more.
Transmit
Send real-time updates by leveraging the power of Server Sent Events (SSE).
Lock
Synchronize the access to a shared resource to prevent several processes, or concurrent code, from executing a section of code at the same time.
Vite
Bundle the frontend assets of your applications using Vite.
Inertia
Make your frontend and backend work together in perfect harmony.
Tuyau
An end-to-end type-safe client for interacting with your AdonisJS APIs.
IoC container
AdonisJS ships with a zero-config IoC container that uses reflection to resolve and inject class dependencies.
Supercharged CLI
Scaffold resources, run database migrations, use application-aware REPL, or create custom commands. All using a unified CLI framework.
Security primitives
Implement CORS policies to protect your APIs, or use AdonisJS shield to protect against CSRF, XSS, and man-in-the-middle attacks.
A wall full of love and support from developers across the world
![]()
Adonis in MVC is a blessing tbh! I use it with HTMX or Turbo and it's just perfect!
![]()
Adonis is wonderful - just a perfect level of cognitive load a framework can have both in documentation and implementation.
Not too much, not too little, but exactly what you need as a developer.
![]()
Reagan Ekhameye
@techreagan
@adonisframework is the first ever framework I learnt from the docs, I'm in love with this framework, it's just like @Laravel but for the @nodejs world . I will be like I'm stuck how can i solve this, the docs got you covered. It's gonna be my long term buddy.
![]()
The more I work with @adonisframework the more I'm convinced that it is the best framework in the Nodejs Ecosystem.
The docs are well written, well designed, you just want to stay there and learn more.
Thanks to all the people who are working on this project.
![]()
Dragos Nedelcu
@Drag0sNedelcu
Tried recently @adonisframework v6 and I am blown away. I love how the modules are separated, like orm, validation etc. Wish there were more discussions on this. Feels highly underrated...
![]()
Carl Mathisen
@carlmathisen
We’ve used it at work for a couple of years, just replacing these express cocktails. They were fine, but I was tired of maintaining and upgrading a unique set of libraries that were our company unique combination of regular features.
![]()
Having a solid experience in Laravel and wanting to explore NodeJs, I found @adonisframework a good choice for me to go through. It is been easy for me to jump in since it feels like I am just writing Laravel but in typescript and NodeJS , Awesome developer experience!.
![]()
I've been using @adonisframework for the last two days an I've already got more done then I did in the last 3 weeks with just using expressjs.
![]()
If you’re a PHP dev who loves Laravel and want to give another language a go and use a similar style framework then make sure to check out @adonisframework. It has its own ORM, Auth support, and even a CLI tool called Ace which is very similar to Artisan.#Laravel #NodeJS
![]()
So funny seeing everyone looking/begging for the node/ts equivalent of rails/Laravel when it’s existed for years. I started using @adonisframework in 2016 in production for one of the biggest startups in Asia. If you want full stack with everything built in take a look.