Advertisement · 728 × 90

Posts by Adocasts

Preview
Let's Learn AdonisJS 7: Middleware & Grouping Routes | Coming Soon | Adocasts Lesson Learn AdonisJS middleware for intercepting HTTP requests. Control request flow, implement logging, and secure your applications.

Today in AdonisJS 7, we'll learn all about middleware and sessions!

We'll discuss:
→ the 3 different types of middleware
→ the role of the 'next' function in middleware
→ how to work with session state
→ the perks of using flash messaging

Ready to dive in?

1 day ago 1 0 0 0
Preview
Let's Learn AdonisJS 7: Components, Layouts, & Partials | Coming Soon | Adocasts Lesson Learn all about EdgeJS components, layouts, and partials for reusable view markup. We'll discuss the differences between the three and dig into specifics on how to use components a...

4 new Let's Learn AdonisJS 7 lessons are out now! In these, we'll learn about:

→ EdgeJS components & partials
→ Form basics, method spoofing, & CSRF
→ Validation & Flash Storage
→ Route names & the URL Builder

Ready to learn?

2 weeks ago 0 0 0 0
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
Let's Learn AdonisJS 7: Route Parameters & Matchers | Coming Soon | Adocasts Lesson Learn AdonisJS route parameters and matchers. Capture dynamic segments in URLs and validate and cast with route matchers.

2 new Let's Learn AdonisJS 7 lessons are out now! In these, we'll learn:

→ How to use route params & param validation
→ About controllers & subpath imports
→ About the new barrel file import option in v7

Ready to go?

3 weeks ago 1 0 0 0
Preview
The Road Ahead & A Brief Break | Adocasts Blog I'm planning a little break, we'll talk about why, how long, and what that means for Adocasts going forward.

Upon the completion of my Let's Learn AdonisJS 7 series, I'll be taking a roughly 90 day seasonal break to reset myself, rethink Adocasts in the era of AI, and to try and find joy in coding again.

Read more:
adocasts.com/blog/the-roa...

4 weeks ago 2 0 0 0
Preview
Let's Learn AdonisJS 7: Defining Routes & Rendering Views | Coming Soon | Adocasts Lesson Learn how to define routes and render views in AdonisJS. Understand route definitions, rendering views, and the router service.

3 new Let's Learn AdonisJS 7 lessons are out now! In these, we'll learn:

→ How to define routes & render pages
→ About the 3 types of EdgeJS state
→ EdgeJS view and tag syntax

Ready to go?

4 weeks ago 0 0 0 0
Preview
Let's Learn AdonisJS 7: Introducing AdonisJS | Coming Soon | Adocasts Lesson Introduction to AdonisJS, a full-featured Node.js web framework designed to reduce choice fatigue with opinionated conventions, built-in batteries, and first-class TypeScript suppo...

The first 6 lessons of our Let's Learn AdonisJS 7 series are out now and available to all!

We'll get our environment set up, create a new project, and get cozy with our project's lifecycle and structure!

Ready to start?
buff.ly/V5R3KuW

#adonisjs #nodejs

1 month ago 1 0 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
Preview
Let's Learn AdonisJS 7 | Adocasts Series In this series we'll learn AdonisJS, a NodeJS web framework for building type-safe full-stack, API, and even Inertia applications. It also provides almost everything you need to bu...

I've also been planning a free and updated Let's Learn AdonisJS 7 series. This series will be starting soon, you can add it to your watchlist now to get notified as lessons are released!
adocasts.com/series/lets-...

1 month ago 0 0 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

Huge congrats to the @adonisjs.com team on the release of AdonisJS 7!!

There're so many fantastic changes with release! Check out their blog post to get a break down of what’s new, changed, and coming next:
adonisjs.com/blog/v7

1 month ago 4 1 1 0
Advertisement
Preview
Pragmatic Testing in AdonisJS with Japa: The Browser Client | Coming Soon | Adocasts Lesson In this lesson, we'll softly introduce Browser Testing, which allows powerful DOM assertions, in AdonisJS using Japa's Browser Client and Playwright. We'll get everything installed...

The final 3 lessons in our series on Japa testing are out now! In these, we'll get Japa's Browser Client set up and briefly cover the basics of performing browser tests with it and Playwright!

Read to learn?
buff.ly/I44azkH

2 months ago 1 0 0 0
Preview
Pragmatic Testing in AdonisJS with Japa: The Auth Plugin | Coming Soon | Adocasts Lesson In this lesson, we'll learn how to test authenticated routes in AdonisJS/Japa. First, we'll install and register the Auth API Client plugin. Then, we'll learn how to use our User F...

4 more lessons are out now! In these, we'll learn how to use and test authentication and authorization with Japa. Then, we'll piece everything we've learned thus far together by testing an email change endpoint to completion.

Ready to learn? 🎓

2 months ago 2 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
Preview
Pragmatic Testing in AdonisJS with Japa: Database Test Runner Hooks | Coming Soon | Adocasts Lesson In this lesson, we'll learn how to set up a dedicated test database to ensure clean, isolated testing. We'll configure a separate SQLite database using a test environment variable ...

Four more lessons on testing with Japa are out now! In these, we'll learn about:

→ Database hooks
→ Testing db-driven endpoints
→ Using model factories to simplify setup
→ Testing model logic

Ready to learn? 🎓

2 months ago 0 0 0 0
Preview
Pragmatic Testing in AdonisJS with Japa: testing VineJS Validations & Working with CSRF | Coming Soon | Adocasts Lesson In this lesson, learn Functional Testing for POST requests. We'll cover sending JSON and form payloads and how to assert validation errors. We'll also discuss how to set up and use...

Our first 4 lessons of 2026 are out now! In these, we'll learn about testing:

→ Client validations & CSRF protection
→ JSON structures
→ OpenAPI specifications
→ File uploads

Ready to learn? 🎓

3 months ago 1 1 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

Hope everyone has a great new year!! May 2026 go slower than 2025 did 🚂

Happy new year!

3 months ago 1 0 0 0
Preview
Pragmatic Testing in AdonisJS with Japa: Testing Ace Console Commands | Coming Soon | Adocasts Lesson In this lesson, we'll learn how to test AdonisJS Ace Commands with Japa. We'll cover how to instantiate and execute the command, while passing arguments and capturing prompts. We'l...

Our last batch of new lessons for 2025 are out now! In these, we'll learn about:

- Testing Ace commands
- Functional vs Unit tests
- Japa's API Client

Ready to watch?

3 months ago 0 0 0 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
Advertisement
Video

4 new Testing with Japa lessons just landed!

In these, we'll learn:
- About IoC Container Bindings
- How to swap Container Bindings with Mocks
- How to use AdonisJS's Fakes
- Plus more

Ready to learn? 🎓
adocasts.com/lessons/test...

Preview 👇

3 months ago 1 0 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
Video

In our latest batch of Testing with Japa lessons, you'll learn how to:

→ Prevent false positives with async tests
→ Use datasets to optimize your test data
→ Focus test runs with skipped, pinned, and tagged tests

Test smarter, not harder ⤵︎
buff.ly/AFOOHmR

3 months ago 1 0 0 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
Post image

You can now find the full lesson plan for our Japa series directly on the Adocasts site! This is part of a small QOL update to make planned content more transparent and clear!

adocasts.com/series/pragm...

3 months ago 1 0 0 0
Preview
Pragmatic Testing in AdonisJS with Japa: Making Assertions | Coming Soon | Adocasts Lesson In this lesson, we'll get comfy with making assertions against actual and expected values. We'll step through and demo several highly used assertion methods to see exactly how they...

3 new Testing in AdonisJS with Japa lessons are out now! In these, we'll:

» Cover common assertions
» Discuss easy test naming
» Walk through group & test hooks

Ready? 👇

4 months ago 0 0 0 0
Preview
Pragmatic Testing in AdonisJS with Japa: Why Bother Testing? | Coming Soon | Adocasts Lesson In this lesson, we'll discuss what the benefits of testing are, what we should focus on when testing, and give a brief introduction to this series.

The first 4 lessons of our new series, Pragmatic Testing in AdonisJS with Japa, are out now and available to all!

Ready to get started with the foundations? 👇

4 months ago 1 0 0 0
Post image

Our next series on testing AdonisJS apps with Japa will be starting later this week with the first four lessons!

👇 full series outline

4 months ago 2 0 0 0
Advertisement
Preview
Unlimited AdonisJS & NodeJS Access | Adocasts Pricing Discover Adocasts Plus pricing plans for unlimited access to all AdonisJS and NodeJS video lessons and series. Accelerate your learning journey today.

Happy Black Friday! Quick reminder that you can get 50% off any Adocasts Plus plan, now through Dec 7th.

The best part? This isn't 50% off your first month, like most other sales. This one lasts the entire duration of your subscription!

Use code "FRIDAY2025" at checkout!

buff.ly/jufRl5C

4 months ago 0 0 0 0
50% off Adocasts Plus Pricing

50% off Adocasts Plus Pricing

Level up your skills this Black Friday!

Get your Adocasts Plus subscription for 50% off all plans! Unlock exclusive series, private repositories, and the new in-lesson notes feature.

Don't miss out, this deal is only good until December 7th!

adocasts.com/pricing

#webdev #blackfriday

4 months ago 0 0 0 0