Series
Building with AdonisJS & Inertia
We'll learn how to use InertiaJS with AdonisJS 6 to build a feature-complete application, called PlotMyCourse. Our application will use server-side rendering (SSR), Vue 3, and Shadcn-Vue. It'll feature organizations, drag-and-drop, and lots of forms.
Let's Learn AdonisJS 6
In this series, we'll learn AdonisJS 6 step-by-step in a beginner-friendly way. Covering topics like routing, controllers, services, EdgeJS, Lucid ORM, forms, filtering, authentication, etc.
Let's Learn AdonisJS 5
Learn AdonisJS 5 in-depth as we step through all the major functionalities of the framework in-depth. Learn about Routing, Controllers, Lucid, Auth, and much more.
Let's Build A Changelog App
We'll be building a changelog application with AdonisJS through a series of livestreams.
Let's Build with AdonisJS
Livestreams where we build applications using AdonisJS 5. Starting out, we'll be rebuilding Adocasts, formerly called Jagr.Co.
AdonisJS 5 Infinite Load
In this two-part mini-series, we'll be creating an infinite load functionality within our AdonisJS 5 application. We'll make use of a Model Factory & Seeder to make dummy data. We'll then use our Model's paginate method to easily track our progress
Let's Learn AdonisJS 5 Preview
In this series, we'll be doing a deep-dive into AdonisJS 5's Preview version. We'll learn about routing, controllers, the Lucid ORM, migrations, it's CLI, handling file uploads, transactional email, and much more.
Discussions
Is there any point in putting try/catch statements in each method of a controller?
I'm using Adonis JS as the API for my application. For each method in my controllers, I add try/catch statements to handle errors and return a response to my front-end in case one occurs. async createDiscussion({ request, auth, response }:...
Lessons




Making our Search Course Action Easily Reusable
In this lesson, we'll make our search course filters optional to increase the reusability of our action. We'll then switch our courses index route handler to use this action.




Getting Just Course Modules & Lessons
In this lesson, we'll remove our GET module route, using the except method on our resource. Then we'll refactor to add a GetModules action




Course Module Nested Resource
In this lesson, we'll work on nested resourceful endpoints for our course modules. We'll add endpoints to create, update, patch, and deleting modules from a specific course.




Listing Courses
Our goal in this step is to add an endpoint that lists our courses. We'll then build upon this endpoint further with the ultimate goal of getting a list of paginated courses.




API Authorization Checks
In this lesson, we'll implement our API Authorization checks across all the API controller methods we've implemented thus far. We'll then create a specific access token for each operation (read, create, update, and delete) to ensure everything is working.




Status API CRUD
In this lesson, we'll duplicate everything we did one more time for our organization's statuses.




Access Level API CRUD
In this lesson, we'll walk through adding API endpoints for the full CRUD (create, read, update, and delete) flow for our organization's access levels.




Listing Organization Difficulties
In this lesson, we'll begin work on our first CRUD-based API resource by adding the ability to query a list of all our organization's difficulties.




Simple API Versioning
In this lesson, we'll implement a simple versioning mechanism for our API. Versioning allows us to safely make breaking changes without breaking our user's implementations of our API.