AdonisJS
AdonisJS 5 is a NodeJS framework that's comes packed with everything you'll need to quickly build scalable and secure applications or APIs.
Sub-Topics
Series
Latest Lessons

Understanding The Flow Between Adonis, Inertia, and Vue 3
In this lesson, we'll be inspecting the request flow from Adonis through Inertia and to Vue for both initial and subsequent requests.

How To Make A Simple AdonisJS Package
Learn about AdonisJS' MRM Preset and how we can use it to easily make an AdonisJS package. In particular, we'll be building a Honeypot package that defines a provider, middleware, global component, and types.

How To Add InertiaJS to a New AdonisJS Project
In this lesson, we'll create a new AdonisJS project, then install and configure InertiaJS with Vue 3 using the InertiaJS-AdonisJS adapter.

How To Make Your AdonisJS Authentication Login Case-Insensitive
Learn how to make the AdonisJS login attempt query case-insensitive easily by adding a simple method to our User Model.

How To Add A Custom Method to the Model Query Builder in AdonisJS
In this lesson, we'll learn how to define a macro for the Model Query Builder within an AdonisJS project to provide a new method onto all our Model's Query Builder.

Service Providers & The IoC Container
We'll learn about Service Providers and how they interact with the IoC Container. We'll then put this to practice by wrapping a NodeJS package so it's easy to use within AdonisJS

Static, Non-Static, & Singleton Services
We'll learn what services are. We'll then discuss three different ways we can use them within our AdonisJS application, including static, non-static, and singleton services.

How To Serialize All AdonisJS Lucid Model Properties As Camel Case
In this lesson, we'll learn how to use Naming Strategies in AdonisJS to alter the serialization behavior for all our model properties from snake case to camel case.

How To Add TailwindCSS to a New AdonisJS Project
This lesson covers creating a new AdonisJS project that includes Webpack Encore, then adding and configuring PostCSS and TailwindCSS within the project.

Creating & Using Bouncer Policies
We'll learn about policies and how we can use them to group resource-based actions. We'll also learn how to create and share hooks with policies.

Implementing Authorization Actions
We'll take what we learned about AdonisJS Bouncer actions in the last lesson to finalize the needed authorization checks for our blog application.

Bouncer Actions & Authorizations
We'll learn about AdonisJS Bouncer actions and how we can use these actions to check if a user is authorized to perform a specific task. Plus, conditional check authorizations.

Introducing, Installing, & Configuring Bouncer
In this lesson, we'll introduce AdonisJS Bouncer, the first-party AdonisJS package for authorization checking. We'll also get a start project setup and install and configure Bouncer.

AdonisJS Authentication in 15 Minutes
We'll be creating a new AdonisJS project and adding authentication to it within 15 minutes. You'll be able to logout, register, and login with either your username or email.

How To Add AdonisJS Edge Support to your WebStorm Environment
A quick tip on how to add AdonisJS Edge syntax highlighting to your JetBrains WebStorm environment using the VSCode plugin and TextMate Bundles.

Route & Controller Resources
In this lesson, we'll learn what a resource is and how we can quickly and easily define a route resource and handle each resourceful route with a resource controller.

Debugging, Inspecting, and Freezing Code Execution
In this lesson, we cover a couple of ways to debug your AdonisJS application using the Edge inspect global function, the debugger keyword, and the Chromium NodeJS Devtools.

Rebuilding Jagr.Co, Password Reset & Account Locking
In this livestream, we'll add a system to lock users' accounts after so many bad login attempts and we'll also add in the password reset flow.

Handling Routes with Controllers
In this lesson, we'll learn about Controllers and how we can keep our route definitions clean and easy to scan by extracting our route handlers into these Controllers.

Rebuilding Jagr.Co, Username Sign In & Post CRUD
In this livestream we cover adding the ability to sign in using either a username or email address. We also dig into setting up the ability to create, read, update, and delete our posts.

Getting Data by the User's Timezone with Luxon's DateTime
In this lesson, we'll learn how we can use the user's current time zone to create, update, or query time-sensitive information in AdonisJS using Luxon's DateTime object.

Rebuilding Jagr.Co, Start & Auth
In this livestream we create a new project, install and configure the Lucid and Auth packages. Define our migrations and model schema. And hammer down basic authentication.

How To Add A Global Property To Your HttpContext in AdonisJS 5
In this lesson, we'll be covering how we can extend our HttpContext with a new property that we'll populate using a route parameter.

Extending the Adonis Router and Route Matchers
In this lesson, we'll be learning how we can add our own chainable methods using macros to the Adonis Router's Route, Route Group, Route Resource, Brisk Route, and Matchers properties.

Generating URLs and Signed URLs
In this lesson, we'll be focusing specifically on generating URLs from our route definitions. We'll cover generating generic URLs, signed URLs, redirect URLs, and more.

Multi-File Route Grouping Strategies
In this lesson, we'll discuss strategies you can use to apply multiple files worth of route definitions into a single route group without redefining the route group in each file.

Naming, Grouping, & Prefixing Routes
In this lesson, we'll learn about naming routes and using groups with prefixes to structure our routes and reduce redundancies.

Moving & Organizing Routes
In this lesson, we'll cover various different ways you can structure your routes within your Adonis project, including moving the routes.ts file, and using a module approach

Dynamic Routing with Route Parameters
In this lesson, we go in-depth with route parameters covering optional route params, validation using matchers, casting, wildcards, and a few things to watch out for.

Routing Introduction
We'll learn how to define routes in Adonis using the Route module. We'll cover defining routes for specific HTTP Methods (like GET, POST, PUT/PATCH, and DELETE), Caveats, and Brisk Routes.

Understanding the HttpContext
The HttpContext object contains unique information about individual requests our application receives. In this lesson, we'll cover what it is, how it's passed, and how we can mutate it.

Introducing the Ace CLI
In this lesson, we'll be learning about Adonis' command-line interface (CLI). Including what the Ace CLI is, its options, how it'll be expanded, and how we can create custom commands

How To Create An Infinite Loader
In this lesson, we'll be going over how to add an infinite loader to our app. We'll specifically be utilizing an Edge component and our Model's paginate method to make this happen.

Project Setup & Creating Dummy Data
In this lesson, we'll be setting up our project with fake data using a Model Factory and a Seeder. We'll also set up our initial list of posts so that we're all set and squared away to cover

Project Structure
In this lesson, we'll get familiar with our Adonis 5 project by running through all the folders and files and their purposes. We'll learn which folders and files within our project structure

Prerequisites & Creating A New Project
In this lesson, we'll learn about AdonisJS 5; what it is, what it offers, its prerequisites, and how to create a new project. We'll then start our project up to ensure everything is working.

Let's Learn Adonis 5: Introducing The Edge Template Engine
In this lesson, we learn the basics of the Edge Templating Engine, which allows us to dynamically inject our server-side data into our HTML views.

Let's Learn Adonis 5: Validating Requests
In this lesson, we focus on Adonis' built-in Validator. We'll learn how to define a validation schema, custom messages, custom rules, and more

Let's Learn Adonis 5: Writing Reusable Queries with Query Scopes
In this lesson, we'll learn how we can extract repetitive query builder statements into reusable query scopes as a way to keep our codebase easy to maintain.

Let's Learn Adonis 5: Querying, Checking Existence, and Aggregating Relationships
In this lesson we'll learn how to query relationships, determine if a relationship exists, and how to aggregate relationship data.

Let's Learn Adonis 5: The Query Builder
In this lesson we'll be focusing specifically on the query builder. We'll discuss how we can filter down data, order, limit, and aggregate our data.

Let's Learn Adonis 5: Creating Data & Relationships Records
In this lesson, we learn about conditional inserts and how to reach through to relationships to create relationships and related records.

Let's Learn Adonis 5: Intro to Creating, Reading, Updating, and Deleting (CRUD)
In this lesson, we'll learn the two different modules Adonis' Lucid provides us to communicate with our database. We'll then introduce basic CRUD operations using these modules.

Let's Learn Adonis 5: Defining Model Relationships
In this lesson, we'll learn about the different types of database relationships, how Adonis supports these relationship types, and how to define these relationships.

Let's Learn Adonis 5: Intro to Models
This lesson is all about models. We'll learn what they are, how to define them, what they're used for, and some of the extended capabilities they provide.

Let's Learn Adonis 5: Altering Tables with Migrations
In this lesson, we'll expand on migrations a bit further by discussing how to alter existing databases using migrations.

Let's Learn Adonis 5: Migrations
This lesson is all about migrations. We'll discuss what they are, how to use them, and how they're integrated within Adonis. Then we'll put them to use.

Let's Learn Adonis 5: Installing and Configuring Lucid
In this lesson, we'll be learning how to install and configure Lucid, Adonis' Object-Relational Mapping (ORM) system, within our application.

Let's Learn Adonis 5: Controllers, Services, Resources, and Namespacing
In this lesson, we'll be hammering down several Adonis topics in one swoop. We'll be covering Controllers, which in turn allow us to utilize Services, Resources, and Namespacing.

Let's Learn Adonis 5: Routes and Route Handling
In this lesson, we learn the basics of Adonis routing and route handling by covering how to define a route, render a page, respond with JSON, simplify our route definitions, and more.

Let's Learn Adonis 5: Project Structure and the Ace CLI
We'll learn our way around Adonis' project structure and gain an understanding of what goes where. We'll also discuss Adonis' Ace CLI.

Let's Learn Adonis 5: Prerequisites & Creating A New Project
We'll be learning a little about what Adonis is, the prerequisites to get started, and how to create a new project.
Want A Monthly Roundup of the Newest Lessons?
Sign up for our Adocasts Roundup newsletter! It's sent monthly and contains the a roundup of all the latest Adocasts lessons.