Covered Topics
Each Adocasts topic constains groupings of series, lessons, news, and livestreams.
All Topics
Ace CLI
The Ace CLI is AdonisJS' command-line interface. It allows you to boot your server, easily create new project files, and more. It's included by default with every AdonisJS application and it allows you to create custom commands as well.
Latest Lessons

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

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.


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

Updating Our URL & Populating Filter Field Values
In this lesson, we'll learn how we can use HTMX to easily update our URL via our AdonisJS response. Then, we'll use our URL's query string to pre-populate our filter form field values.

Posting & Swapping Filtered Content with HTMX
In this lesson, we'll utilize the filter form handler we defined in our last lesson by adding an HTMX post handler to our filter form that will retrieve the filtered results HTML and swap it with the pre-existing results.

Defining Our AdonisJS Filter Form Handler
In this lesson, we'll expand on the filter query we built in the last lesson by reusing the query within a service for our filter form handler.
Authentication
AdonisJS Auth provides first-party support for authentication to AdonisJS. It supports sessions, API tokens, and basic authentication formats. API tokens can be database or Redis-driven. Auth integrates deeply within the HttpContext and Edge.
Latest Lessons

How To Seamlessly Share AdonisJS Sessions & Authentication Across Subdomains
In this lesson, we'll learn how one simple tweak to our AdonisJS project allows us to seamlessly share sessions and user authentication across multiple subdomains, as well as our application's primary domain.

Remember Me in AdonisJS Authentication
In this lesson, we'll take a look at how to remember the user's authentication session in AdonisJS Auth. We'll learn how to define the remember me checkbox within our form and more.

How To Redirect Back to the Previous Page After Login with AdonisJS
In this lesson, we'll learn an easy way we can redirect our user's back to their original page after they login or register in an AdonisJS application.
Authorization
Authorization controls what users can do within your application. The native package for this in AdonisJS is Bouncer, however, in this topic you can find manual approaches to authorization as well.
Latest Lessons

AdonisJS User Role Management
In this lesson, we'll learn how to create a user management screen that'll allow administrators to change any of our registered user's roles

AdonisJS User Role Authentication in 15 Minutes
In this lesson, we'll learn how we can specify user roles using a User and Role AdonisJS Model within our 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.


AWS Amplify
AWS Amplify is a back-end as a service offering provided by AWS targeted to allow rapid application development. It supports REST and GraphQL, authentication, and various other AWS services. It also has a visual builder called Amplify Studio.
Latest Lessons

How To Use A Custom Domain in AWS Amplify with Route53
In this lesson, we'll be adding a custom domain to both our production and stage AWS Amplify builds using a Route53 hosted zone.

How To Deploy a Nuxt SPA to AWS Amplify for Production
We'll learn how to create and deploy an Amplify production environment so that our development data and production data are separate from one another.

How To Deploy A Nuxt SPA To AWS Amplify
In this lesson we cover how to deploy our Nuxt application as an SPA to AWS Amplify.
Bouncer
AdonisJS Bouncer provides first-party authorization support to AdonisJS. With it we can authorize custom defined actions against the authenticated user and/or guests.
Latest Lessons

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.
Edge
Edge is a feature-packed template engine for Node.JS that AdonisJS utilizes out-of-the-box. It comes with support for conditionals, looping, partials, layouts, components, and so much more.
Latest Lessons

Minify Your AdonisJS HTML in 5 Minutes
We'll learn how we can alter all our AdonisJS HTML response bodies using a simple global middleware to add HTML minification.

How To Create Your Own Global Helpers in AdonisJS
In this lesson, we'll learn how we can create our own globally available helper methods & properties in AdonisJS.

Altering Adocasts' Lesson 404 Page Behavior
In this stream, we'll alter our soon-to-be-published lessons to display a "Coming Soon" notice when visited instead of the current 404 page.


HTMX
HTMX is a lightweight JavaScript library that simplifies adding AJAX capabilities to web pages, enabling real-time content updates without full page reloads.
Latest Lessons

Updating Our URL & Populating Filter Field Values
In this lesson, we'll learn how we can use HTMX to easily update our URL via our AdonisJS response. Then, we'll use our URL's query string to pre-populate our filter form field values.

Posting & Swapping Filtered Content with HTMX
In this lesson, we'll utilize the filter form handler we defined in our last lesson by adding an HTMX post handler to our filter form that will retrieve the filtered results HTML and swap it with the pre-existing results.

Defining Our AdonisJS Filter Form Handler
In this lesson, we'll expand on the filter query we built in the last lesson by reusing the query within a service for our filter form handler.
HttpContext
The AdonisJS HttpContext is unique to each request. It contains information about a specific request like the request body, matched route, headers, cookies, the authenticated user, and much more.
Latest Lessons

Rebuilding Jagr.Co, Social Auth & Image Management
In this stream, we work on finishing up social authentication using AdonisJS Ally. Then, we'll add project and permission settings and image uploading to Digital Ocean Spaces.

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

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.


InertiaJS
InteriaJS provides a unique approach to a monolith application, which they call the "modern monolith." It allows us to easily mesh our server-side to our client-side without needing to change much code.
Latest Lessons

Form Validation Error Handling
In this lesson, we'll see just how nice InertiaJS is when it comes to form validation error handling. As you'll see, little work needs to be done on our part.

Introducing InertiaJS Forms & The InertiaJS Form Helper
In this lesson, we'll learn about InertiaJS and how it differs when it comes to forms. We'll see how it helps simplify response handling and treats forms as a hybrid between APIs and a Monolith. We'll also learn about Inertia's form helper.

Simplifying Imports with Path Aliases & Global Components
In this lesson, we'll learn how to add a path alias with Webpack Encore to eliminate relative paths from our client-side imports. We'll also learn how to register global Vue 3 components.


JavaScript
Learn about specific vanilla JavaScript topics. Lessons here won't have anything to do with frameworks or libraries, just vanilla JS.
Latest Lessons

Easily Manage & Update Your NPM Packages With This Desktop App!
In this video, we'll see how we can easily audit, manage, and update our NPM packages/dependencies and their versions using a graphical user interface (GUI) called the NPM Desktop Manager.

Understanding JavaScript Promises in ForEach, Map, and Reduce Loops
In this lesson, we'll take a look at how promises work when we try to await them inside newer callback-based loops, like forEach, map, and reduce.

How To Use Vue 3 with TypeScript in an AdonisJS Project
In this lesson, we’ll learn how to set up a Vue 3 TypeScript application within our AdonisJS project using Webpack Encore. We’ll start by getting Vue 3 working, then sprinkle in TypeScript support.
Lucid
Lucid is AdonisJS' Object Relational Mapping (ORM). It's a first-party package that follows the active record pattern. With it you can easily perform CRUD operations, add database hooks, normalize data, and so much more.
Latest Lessons

Defining Our AdonisJS Filter Form Handler
In this lesson, we'll expand on the filter query we built in the last lesson by reusing the query within a service for our filter form handler.

Creating Our Filter Query with AdonisJS
In this lesson, we'll create the route and query we'll need to get filtered results with our filter form using the Lucid ORM and AdonisJS.

Exploring My Favorite AdonisJS Model Query Builder Macros: Tips and Examples
In this lesson, I'll highlight a few of my favorite Model Query Builder Macros that I carry with me from project to project. Have a favorite of your own? Let me know in the comments!


Nuxt
Nuxt is a VueJS based extension that makes setting up more advanced Vue configs, like SSR, a breeze. It easily integrates with NodeJS to provide basic back-end integrations and rendering. It also supports static site generation and SPA applications.
Latest Lessons

How To Deploy a Nuxt SPA to AWS Amplify for Production
We'll learn how to create and deploy an Amplify production environment so that our development data and production data are separate from one another.

How To Deploy A Nuxt SPA To AWS Amplify
In this lesson we cover how to deploy our Nuxt application as an SPA to AWS Amplify.

Implementing Our Private & Public Amplify GraphQL API In Our Nuxt App
In this lesson we'll be implementing the publicly and privately accessible GraphQL API that we created in the last lesson within our Nuxt project.
Router
The AdonisJS Router provides routing capabilities for AdonisJS applications. It allows grouping, param validation, sub-domains, middleware assignment, naming, and so much more. It integrates deeply with the HttpContext and Edge.
Latest Lessons

Creating Teams & Setting Default Team
In this stream, we'll be adding the ability to create new teams, set the default team for a user when they switch between teams, and auto-forward users to their default team after login.

The Middleware Mountain
In this lesson, we'll learn about the two different types of middleware, global middleware and registered middleware. We'll also take a deep dive into how they play into the flow of an AdonisJS Request.

Http Method Spoofing & Helper Components in AdonisJS
In this lesson, we'll learn how we can utilize Http Method Spoofing to send PUT, PATCH, and DELETE requests using native HTML forms. We'll then create utility functions to make the implementation cleaner.
Tips
Tips and tricks to help you level up your skills with AdonisJS. These are typically shorter, hyper-focused, lessons meant to answer frequently asked questions throughout the AdonisJS community.
Latest Lessons

How To Redirect Back to the Previous Page After Login with AdonisJS
In this lesson, we'll learn an easy way we can redirect our user's back to their original page after they login or register in an AdonisJS application.

Minify Your AdonisJS HTML in 5 Minutes
We'll learn how we can alter all our AdonisJS HTML response bodies using a simple global middleware to add HTML minification.

How To Create Your Own Global Helpers in AdonisJS
In this lesson, we'll learn how we can create our own globally available helper methods & properties in AdonisJS.
Validator
The AdonisJS Validator is a first-party package that's included with every AdonisJS application. It allows you to easily validate information directly off the request and in a standalone fashion. You can create custom validation rules as well.
Latest Lessons

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.

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.

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.


VueJS
VueJS is a JavaScript framework with data binding created by Evan You. It allows you to build complex user interfaces with simplistic HTML-like markup.
Latest Lessons

Form Validation Error Handling
In this lesson, we'll see just how nice InertiaJS is when it comes to form validation error handling. As you'll see, little work needs to be done on our part.

How To Use Vue 3 with TypeScript in an AdonisJS Project
In this lesson, we’ll learn how to set up a Vue 3 TypeScript application within our AdonisJS project using Webpack Encore. We’ll start by getting Vue 3 working, then sprinkle in TypeScript support.

Naive UI and Vue 3 Component Import on Demand
In this lesson, we'll be installing Naive UI, a Vue 3 component library, to our Inertia and Vue 3 application. Then, we'll set up Import on Demand so components will auto-resolve as we use them.