Advertisement · 728 × 90

Posts by AdonisJS Framework

Preview
AdonisJS - JavaScript Devs, We Hear You Every year, the State of JavaScript survey asks developers what's broken. Every year, the same pain points rise to the top.

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

2 weeks ago 9 4 0 1
Preview
Using MikroORM with AdonisJS | MikroORM This guide covers integrating MikroORM with AdonisJS, replacing the default Lucid ORM with MikroORM's Unit of Work and Identity Map patterns. For a complete working example, see the adonis-example-app...

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...

3 weeks ago 8 3 0 0
Preview
Queues Learn how to use job queues in AdonisJS to process tasks in the background with support for retries, scheduling, and multiple backends.

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...

1 month ago 9 4 0 0
Preview
AdonisJS v7 is here AdonisJS v7 introduces end-to-end type safety, new starter kits with authentication, zero-config OpenTelemetry, and a rewritten developer experience. Available now

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

1 month ago 21 6 1 1

We already have a forum on GitHub! ✌️

2 months ago 1 0 0 0

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

2 months ago 4 1 0 0
Comments asking for a batteries included frameworks like RoR, Django or Laravel

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.

2 months ago 5 1 0 0
Back-end Frameworks Pain Points as per State of JS Survey. Main one are Static typing, Browser support and Performance

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 👀

2 months ago 7 1 1 0

Thanks to Wodzen for the responsible disclosure.

2 months ago 1 0 0 0
Preview
Mass Assignment in AdonisJS Lucid Allows Overwriting Internal ORM State ### Summary **Description** A Mass Assignment (CWE-915) vulnerability in AdonisJS Lucid may allow a remote attacker who can influence data that is passed into Lucid model assignments to overwrite...

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...

2 months ago 8 2 1 0
Advertisement

Thanks to Wodzen for the responsible disclosure.

3 months ago 0 0 0 0
Preview
AdonisJS Path Traversal in Multipart File Handling ### Summary **Description** A Path Traversal (CWE-22) vulnerability in AdonisJS multipart file handling may allow a remote attacker to write arbitrary files to arbitrary locations on the server...

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...

3 months ago 3 2 1 0
AdonisJS documentation about routing with LLM only text

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 🤖

3 months ago 7 3 0 0
Preview
OpenTelemetry for AdonisJS Introducing @adonisjs/otel, a package that brings OpenTelemetry to AdonisJS with zero-config setup and sensible defaults.

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...

3 months ago 14 8 0 0
// ❌ 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'

// ❌ 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 🙌

3 months ago 12 2 1 0
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()
})

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...

3 months ago 9 2 0 1

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.

4 months ago 12 3 1 0


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.

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...

👇

4 months ago 6 1 0 0
Advertisement
Post image

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...

4 months ago 9 1 0 0
Preview
10 Years of AdonisJS — A Personal Reflection and What’s Next AdonisJS just turned 10 years old. A decade of building, learning, and growing with a community that truly loves the framework

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...

6 months ago 11 7 0 2
Preview
10 Years of AdonisJS — A Personal Reflection and What’s Next AdonisJS just turned 10 years old. A decade of building, learning, and growing with a community that truly loves the framework

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...

6 months ago 11 7 0 2

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.

7 months ago 5 1 1 0
Video

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

8 months ago 4 2 0 0
Preview
Roadmap to AdonisJS 7 AdonisJS 7 brings a new Lucid ORM, type-safe routing, improved Inertia support, diagnostic channels, encryption updates, and a flexible notification system.

🚀 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...

9 months ago 26 7 0 0
Preview
Open Source Friday with AdonisJS creator Harminder Virk Building a JavaScript framework from scratch is no small feat—especially one as developer-focused and feature-rich as AdonisJS. In this episode of Open Source Friday, Karan M V from GitHub hosts Harm...

🚨 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.

9 months ago 7 2 0 0
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.

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-...

10 months ago 8 3 0 0
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.

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...

11 months ago 16 2 1 0
Advertisement

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. 🙌

11 months ago 4 0 0 0
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...."

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.

11 months ago 10 1 1 0

Welcome! 👋

1 year ago 3 0 0 0