Every year, JavaScript developers report the same problems.
Not because tools are missing
But because nothing works together
AdonisJS is built around one idea: cohesion over composition.
🔗 adonisjs.com/we-hear-you
Posts by AdonisJS Framework
AdonisJS comes with opinions, but your stack is still your choice.
Want to use MikroORM instead of Lucid?
Thanks to MikroORM, there's now an official guide on how to integrate it with AdonisJS 👇
mikro-orm.io/docs/usage-w...
An experimental release of the AdonisJS queues package is now available.
Features include:
- multi-driver support
- typed job classes
- delayed jobs
- a job scheduler
- queue fakes for testing
- and more...
We're eager to hear your feedback.
docs.adonisjs.com/guides/diggi...
AdonisJS v7 is officially out today!
A major milestone after a long development cycle, and we couldn't be more excited about how it turned out.
What's new → adonisjs.com/blog/v7
Upgrade guide → docs.adonisjs.com/v6-to-v7
We already have a forum on GitHub! ✌️
We've released security fixes addressing two vulnerabilities in AdonisJS multipart body parsing (Prototype Pollution & DoS).
Update now:
- v6 users → adonisjs/core 6.20.0
- v7 users → adonisjs/core 7.0.0-next.28
Comments asking for a batteries included frameworks like RoR, Django or Laravel
"We need more batteries-included backend frameworks like Rails, Laravel or Django."
That's literally what AdonisJS has been doing for years.
Back-end Frameworks Pain Points as per State of JS Survey. Main one are Static typing, Browser support and Performance
State of JS Survey is out.
Interesting to see that many backend framework pain points people mention are things already addressed by @adonisjs.com.
If you haven't tried it yet, now might be a good time 👀
Thanks to Wodzen for the responsible disclosure.
We've published a security fix for a Mass Assignment vulnerability affecting Lucid in AdonisJS (CVE-2026-22814).
Update now:
- v6 users → adonisjs/lucid 21.8.2
- v7 users → adonisjs/lucid 22.0.0-next.6
github.com/adonisjs/luc...
Thanks to Wodzen for the responsible disclosure.
We've published a security fix for a Path Traversal vulnerability affecting multipart file uploads in AdonisJS (CVE-2026-21440).
Update now:
- v6 users → adonisjs/core 6.19.2
- v7 users → adonisjs/core 7.0.0-next.18
github.com/adonisjs/cor...
AdonisJS documentation about routing with LLM only text
The next AdonisJS docs will ship with dedicated LLM endpoints.
Not just an llms.txt listing pages. Actual cheat sheets crafted for AI assistants. Minimal context, maximum accuracy.
Your AI pair programmer is about to get much better at AdonisJS 🤖
Your app is slow. But where exactly?
Introducing OpenTelemetry for AdonisJS with zero-config setup.
One command. Full observability.
- Auto-instrumented HTTP, DB queries, Redis
- Traces, metrics, and logs correlated out of the box
- Works with v6 and upcoming v7
adonisjs.com/blog/introdu...
// ❌ Error: Importing backend code in frontend files is not allowed import User from '#models/user' import { UserService } from '../../app/services/user_service' // ✅ Correct - type-only imports are allowed import type { User } from '#models/user' import type { UserService } from '../../app/services/user_service' // ✅ Correct - imports pointing to inertia/ are allowed import { Button } from '#components/button' // if #components/* -> ./inertia/components/* import { utils } from '../utils'
Shipping a new ESLint rule: no-backend-import-in-frontend
Catches accidental backend imports in your Inertia frontend files at lint time. Type imports still allowed, and you can whitelist shared paths.
One less runtime surprise 🙌
import app from '@adonisjs/core/services/app' import router from '@adonisjs/core/services/router' import { SessionCollection } from '@adonisjs/session' router.post('/logout-other-devices', async ({ auth, session, response }) => { const user = auth.user! const sessionCollection = await app.container.make(SessionCollection) const sessions = await sessionCollection.tagged(String(user.id)) for (const s of sessions) { if (s.id !== session.sessionId) { await sessionCollection.destroy(s.id) } } return response.redirect().back() }) import app from '@adonisjs/core/services/app' import router from '@adonisjs/core/services/router' import { SessionCollection } from '@adonisjs/session' router.post('/logout-other-devices', async ({ auth, session, response }) => { const user = auth.user! const sessionCollection = await app.container.make(SessionCollection) const sessions = await sessionCollection.tagged(String(user.id)) for (const s of sessions) { if (s.id !== session.sessionId) { await sessionCollection.destroy(s.id) } } return response.redirect().back() })
We updated our session package so you can now store sessions in your database! 🔥
On top of that, we added session tagging across drivers (redis, database) with a new SessionCollection API to easily manage all sessions for a user.
docs.adonisjs.com/guides/basic...
Just kicked off a new project with AdonisJS 7 and finally using all our codegen work in a real app feels insane.
Type-safety basically everywhere, the DX is wild.
Yes, you can deploy AdonisJS on AWS Lambda, but just because you can doesn't necessarily mean you should. AWS Lambda is a Function-as-a-Service (FaaS) platform designed for short-lived, stateless functions, not for long-running web servers. AdonisJS, like most full-stack frameworks, is meant to run as a persistent HTTP process, so you'd often be fighting against Lambda cold starts, timeouts, and stateless nature. Otherwise, AdonisJS can be hosted anywhere Node.js runs: VPS, Docker, Kubernetes, Fly.io, Railway, Render, etc.
"Can AdonisJS be deployed on AWS lambda?"
Yes, you can deploy @adonisjs.com on AWS Lambda, but just because you can doesn't necessarily mean you should.
🔗 www.reddit.com/r/node/comme...
👇
Don't let the name fool you, Nuxt UI works with way more than just @nuxt.com! 💥
Think @laravel.com, @adonisjs.com, and of course, @vuejs.org!
Plus, we've got starters to get you rolling fast.
Check 'em out: github.com/nuxt-ui-tem...
AdonisJS has been around for a decade now 🎉
From a humble idea to a modern, debt‑free framework, thanks to a passionate community pushing it forward.
Read more about the journey & what comes next 👇
adonisjs.com/blog/a-decad...
AdonisJS has been around for a decade now 🎉
From a humble idea to a modern, debt‑free framework, thanks to a passionate community pushing it forward.
Read more about the journey & what comes next 👇
adonisjs.com/blog/a-decad...
There's a common misconception that frameworks like @adonisjs.com or NestJS are inherently "heavy" compared to Express.
Both start with a very small core and let you opt-in to official (or third-party) modules as you need them.
A new lesson just dropped in our Adding an API series!
We'll remove the modules show route from our resource using except, then refactor to add a GetModules action for our modules index & courses show routes.
Get started ↓
buff.ly/r5xoN1K
🚀 The AdonisJS 7 roadmap is live!
Standalone Lucid, better Inertia support, type-safe URLs, built-in notifications, diagnostics, encryption, and more.
Check out what’s coming next, and tell us what you think!
adonisjs.com/blog/roadmap...
🚨 In 30 minutes, Harminder will be live on GitHub’s Open Source Friday!
Tune in to hear about the motivation behind AdonisJS, the design choices that shaped it, and what sets it apart from other frameworks.
The “Let’s Learn AdonisJS 6” course on Adocasts. The course is marked as Beginner level, with 113 lessons totaling 14 hours and 11 minutes. Description mentions learning AdonisJS 6 step-by-step, covering routing, controllers, services, EdgeJS, Lucid ORM, forms, filtering, authentication, etc. Hashtags include #vite, #markdown, #redis. Buttons for “Start Series”, “Repository”, and “YouTube” are displayed. A sidebar lists modules: Introduction, Fundamentals, EdgeJS views, Database & Lucid ORM, ORM Relationships, Forms, Authentication, Filtering & Pagination, User Watchlist, User Profiles, Admin Panel.
Want to learn AdonisJS 6 but don't know where to start?
@adocasts.com has you covered with their free course: "Let's Learn AdonisJS 6".
You'll get hands-on with most of the core framework features.
Start here 👉 adocasts.com/series/lets-...
Hey @SI-IC! 👋🏻 AdonisJS has been around since 2015, longer than many frameworks currently active in the Node.js ecosystem. From the beginning, our goal has been to help developers write better software in Node.js. That goal doesn't require us to chase popularity or compete with other frameworks. We're not here to fight, we're here to build something stable, fast, and pleasant to use. Why would AdonisJS stop in the next 2–3 years? Quite the opposite is happening. Just a year ago, we released a major update embracing ESM to stay aligned with the direction of the Node.js ecosystem. We're also actively refactoring Lucid, our ORM, to make it more powerful and developer-friendly. The level of care and long-term thinking behind AdonisJS is rare. Since you mentioned NestJS: despite its popularity, Nest has yet to adopt ESM and still relies on non-standard decorators. As the ecosystem shifts toward spec-compliance, that could become a bigger issue. From a long-term perspective, frameworks that don't evolve with the platform may be more at risk than those that do. We're here for the long haul, not because we aim to dominate, but because we believe in building excellent tools that we love to use ourselves.
"How long will adonisjs exist?"
github.com/orgs/adonisj...
As with our move to ESM, we want to stay aligned with the JavaScript spec and avoid TypeScript-only patterns. We’ll start testing the new syntax internally and share updates as we go. 🙌
RyanCavanaugh writting : "I don't think we're going to have decorator metadata in ES decorators. It's unlikely. Not impossible, but very unlikely. We are increasingly moving away from any type-based emit in all forms; it's slow, error-prone, impossible for third-party tools to replicate, and not standardized. emitDecoratorMetadata is documented as experimental, and also requires you to set another flag with experimental in the name. Features don't stop becoming experimental due to the passage of time -- if we thought they were not experimental, we would have renamed them. They're still experimental, and it's still up to each developer to understand the consequences of taking dependencies on features that are not considered stable. We tried for a very long time to align the TC39 decorator proposal with the experimental decorators that originated in TypeScript. The committee didn't land on something that exactly aligns with what we have, with one...."
After a year of uncertainty, the TypeScript team has officially confirmed that spec-compliant decorators will not support emitting type metadata.
Since decorators are used sparingly in AdonisJS, migrating away from the experimental syntax will mostly affect Dependency Injection.
Welcome! 👋