Free

AdonisJS From Scratch

Learn AdonisJS by building a real-world application from scratch.

Beginner 5+ students Last updated May 2026

About the Course

AdonisJS is a fully-featured Node.js framework for building web applications. In this text-based course, you will learn everything you need to know about AdonisJS. We start with the fundamentals of the framework. Then, step by step, we will build a complete real-world application from scratch.

Along the way, you will master the building blocks and essential concepts of the framework.

What You'll Build

A multi-author blog application with user registration and profiles, session-based authentication, GitHub OAuth, post creation with a WYSIWYG editor and image uploads, scheduled posts, tagging, comments with email notifications, pagination, filtering, sorting, and authorization — built with AdonisJS, Lucid, Edge, and deployed to Railway.

What You'll Learn

  • Set up an AdonisJS project with Node.js, MySQL, and Redis
  • Building blocks of the AdonisJS framework: routings, controllers, middlewares, error handling, etc.
  • Manage frontend assets with Vite, Tailwind CSS, and Alpine.js
  • Build server-rendered views with Edge templates, layouts, partials, components, and Alpine.js
  • Design and run database migrations
  • Database operations with Lucid ORM
  • Model relationships with Lucid ORM with proper eager loading
  • Query scopes and database transactions
  • Implement full session-based authentication — email/password, remember me, and logout
  • GitHub OAuth
  • Build and publish articles with a WYSIWYG editor, cover images, scheduling, and tag filtering
  • Secure the application with Bouncer abilities, resource policies, and template-level authorization checks
  • Send transactional emails using events and listeners
  • Implement background jobs with AdonisJS's queue
  • Apply pagination, filtering, and sorting
  • Deploy a production AdonisJS application to Railway

Prerequisites

  • Comfortable with JavaScript (ES6+), including async/await
  • Basic knowledge of TypeScript syntax (interfaces, types, decorators)
  • Familiar with HTML, CSS, and basic SQL

Course Content

20 sections·80 lessons

Directory structure overview
The Ace CLI
Routing basics
Dynamic routes
Naming routes
Routing to controllers
Passing data to views
Environment variables and validation
Error handling
Middleware
Introduction to Vite
Installing and configuring Tailwind CSS
Installing AlpineJS
Introduction to Edge
Edge helpers
Understanding template states
Creating an app layout component
Setting up a database
Introduction to migrations
Creating the migration for the posts table
CRUD with query builder
Introduction to Lucid models
Creating tag model and migration
Seeding database with tags
Defining user and profile relationship
Creating the user sign up form
Understanding CSRF
Validating form data
Displaying form data upon validation failure
Custom form validation messages
Persisting form data
Displaying logged-in user details
Logging user out
Logging user in
Flashing and displaying session messages
Remember me
Log in with GitHub
Creating posts
Making post slug unique
Adding a WYSIWYG editor
Uploading post cover image
Scheduling posts for later
Tagging posts
Guest middleware
Auth middleware
Redirect to intended URL
Displaying user posts
Updating posts
Deleting posts
Extract status functionality into a service
Extracting dropdown into a component
Creating an avatar component
Updating profile details
Updating account details
Changing password
Displaying blog posts
Displaying a single blog post
Commenting on posts
Displaying post comments
Subscribing to comment notifications
Sending comment notifications to subscribers
Sending new comment email notification to post author
Sending emails in the background
Creating dummy data with factories
Pagination
Filtering posts by status
Filtering posts by comments
Filtering posts by tags
Sorting posts
Authorization
Query reusability with query scope
Ensuring data integrity with database transactions
Preparing for deployment
Deploying to Railway

Your instructor

Chimezie Enyinnaya

Chimezie Enyinnaya

I'm a self-taught full-stack developer and educator. I create practical courses that are straight to the point and easy to understand. The best way to learn is by doing, so my courses equip you with hands-on experience while building real-world applications.

Related courses