The AdonisJS Roadmap

Where the framework is headed over the coming months. Items here are the bigger pieces of work across AdonisJS core, first-party packages, and tooling. For version-by-version changes, see the release notes

Pending
18
Static middleware use prefix (backward compatible)

Currently, all HTTP requests pass through the static file middleware and perform a file-existence check on disk. This introduces unnecessary overhead. To improve performance, the static file lookup should only occur when the request URL starts with a predefined prefix such as /public or /assets.

Add support for Inertia 3

Inertia team has lately added a bunch of new features. Which includes, dedicated support for flash messages, once props, infinite scrolling support within the protocol.

Update all packages using secrets to accept the `Secret` class

We will have to find all the packages that must accept the Secret class for the secret value.

In Progress
0
Done
29
Session collection

As of today, there is no way to get list of all the sessions, delete a session by id, or check if a session for the given id exists.

DX improvements
  • Make sure types generation works great with projects using DDD folder structure, even share an example of it in docs. - x Assembler to use its watcher over hot-hook watcher to recover crashed process. - x Generate the manifest file
VineJS schema to JSON schema

Related PR. This is ready to tested and released https://github.com/vinejs/vine/pulls

Inertia scaffolding commands

Ace commands like node ace inertia:page and node ace inertia:component to create scaffold new pages and components

Add support for standard-schema

Since the next VineJS version will be standard-schema-compatible, we should be able to make the core agnostic of Vine. Any place where a validation schema is expected should work with any standard-schema-compatible library. For example, request.validateUsing

Starter kits - Separate logger config for development and testing

Pino is an asynchronous logger — it writes logs in the background without blocking the event loop. This makes it fast and efficient, but it can also cause a small delay before logs appear after an action happens.

Starter Kits - Streamline testing setup

Currently writing functional tests with any starter kit requires additional steps and this shouldn't be the case.

Refactor Tuyau to use builtin URL Builder

Since typesafe URL building will now be part of the core, we need to refactor Tuyau to use it instead of maintaining its own version

Generator system

The generator system will be used to create types for various things. It includes

Edge base components

Building forms in Edge often involves a significant amount of repetitive code — especially when handling errors, repopulating old form data, and displaying global alert messages.

AdonisJS Inertia new version
  • Need to push the new version of adonisjs/inertia with the typed pages system PR is almost ready , we are just missing the Generator System to finish it
AdonisJS vite package new version
  • Need to think about a way to get rid off this NODE_ENV=production thing a lot of people are missing - x Prepare support for Vite 7 ( Waiting for two of our dependencies to add support for it ) - x Probably replace Vavite Multibuild with new Vite Environment API which is super great
Tuyau x React Query

As explained in the Roadmap we want a clean Integration with Tanstack. Pending PR : https://github.com/Julien-R44/tuyau/pull/60

Typed URL builder for the backend

The typed URL builder will replace the existing router.makeURL and router.makeSignedURL methods in favor of a type-safe API. Additionally, it will be possible to narrow down the route search by the HTTP method.

URL builder client

The URL builder client will be generated on the fly by AdonisJS Core. The client could be imported by any frontend app as long as it is part of the same project.

Use beta version of Youch

The next version of Youch has been published on npm under the @beta tag. We must replace all usages of it for the next release to use the beta version.

Adding traces to the framework core

The framework core refers to all the packages included by the @adonisjs/core package.

Introduce mail globals inside the config file

Quite often you would want to reference certain values inside email templates. For example: The name of the brand, logo URL, footer details, and so on. Therefore, the Mail globals could be used for the same.

Do not flash inputs along with validation errors inside an Inertia app

Currently, when we flash validation error messages via session.flashValidationErrors, we also flash all the input data.

BodyParser trim whitespaces

Currently, we need to use the trim rule in validators to remove whitespace around string values. This can be repetitive and tedious since it must be defined for every single field — whether using VineJS or any other validation library.

Old tag should return empty string in edge templates when the field value does not exist

This must be for edge templates only. Because right now we return undefined and that shows up in input fields as a value.

Flash messages helper to flash error and success messages

Flashing alert messages after an action is a common use-case. Therefore, we must add helpers to flash an error or a success message.

Queues

@RomainLanz has already put in the work needed to create a framework agnostic queue package https://github.com/boringnode/queue .

Early access

Become an Insider

Support framework development and get early access to new packages and experimental features before they go public.

New first-party packages and major framework versions land for Insiders 2 to 4 weeks before public release. Prepare upgrades and test against your codebase before everyone else.

Your sponsorship is what keeps AdonisJS being built full-time. The framework you build on has a maintainer working on it every day, not someone fitting it around a day job.

54+ developers are sponsoring AdonisJS

Marco Leong
Tim Griesser
David Maksimov
Pedro Solá
Luiz Alves
Ludwig Antilli
Edu Wass
Jesper Sørensen
Jeremy Chaufourier
Raza
Ross Mackay
Jalil Wahdatehagh
Filipe Braida
Lucas Romano
Christopher Groß
Jarle Mathiesen
McSneaky
Route4Me Route Planner
Jared Dunham
Abdellah
Andrew Connell
gunhanselas
Joan
Ian Chen
Maciej Ładoś
Julian Dawson
Meiyo
Davi de Carvalho
Neighbourhoodie Software
Tom Gobich
Yuta.H
Philippe DESPLATS
Fernando Isidro Luna
Tavares
Jonas Thiesen
Zakodium
Sadek Hossain
Gurvan
Quentin Roggy
Boris Abramov
vartiainen
Lucas Finoti
Hiram Cruz
Dav3rs
Mahmoud Mousa
Outloud
ChristopherFritz
Syntax
BretRen
Let's Dial
TestMu AI Open Source Office (Formerly LambdaTest)
Infinite Giving
Studio Prats
Galaxy Cloud