The Complete Strapi™ Course with Plugins and Deployment

Video description

In this course, we will drive you from the very basic concepts to building, customizing, and deploying a complete Strapi application.

We will quickly introduce Strapi and set up our working environment at the beginning of this course. Once everything is in place, you will learn about content types, fields, relations, components, dynamic zones, and authorization and authentication systems. Then you will learn how to work with REST API and GraphQL API. Next, we will cover custom routes, controllers, services, policies, and middleware.

Later in the course, we will cover the Admin Panel and learn how to customize it. Then learn how to create a complete plugin that is ready for the Strapi marketplace. Finally, you will learn how to deploy our Strapi API.

The application we will be creating includes features built by extending the Strapi core through custom logic (routes, controllers, GraphQL resolvers, and so on). Furthermore, in this course, you will be developing a complete plugin (admin + server code) that is ready to be published on the Strapi Market. (And, in fact, you will find it there now!) The Strapi Plugin section is a course in the course, and it will give you the skills to propose Strapi plugins to customers, both through the newborn Strapi market (that has high growth potential) and directly.

By the end of this course, you will feel empowered as you will master a framework that dramatically speeds up time to market in developing production-ready backend applications, while not sacrificing extensibility to adapt it to endless use cases and business requirements!

What You Will Learn

  • Create a complete Strapi application with custom features
  • Master Strapi basics such as content types, relations, components, dynamic zones, and more
  • Customize the Strapi REST API with custom routes, controllers, services, and so on
  • Customize the Strapi GraphQL API with custom operations
  • Learn Strapi plugins development by creating a full plugin
  • Deploy Strapi with two different architectures and CI/CD pipeline


This course is perfect for anyone that wants to add Strapi to their developer toolbox, being it the most popular headless CMS in the market (and still growing!), which combines top-level out-of-the-box features with strong flexibility and extensibility.

One must have a basic knowledge of JavaScript and for the Strapi Plugins section, only the admin UI part, a basic knowledge of React will be useful.

About The Author

Artcoded Academy: Artcoded Academy is a place to learn full-stack JavaScript and Typescript skills. They feel coding is the best way to empower oneself as a creator, ultimately to bring ideas to life. They teach coding in a concrete, project-oriented way, by targeting a mono-language stack that a solo developer can manage as a one-man business.

Table of contents

  1. Chapter 1 : Welcome to the Course
    1. Course Teaser
    2. Course Structure: Optimize Your Learning Path
    3. Join the Learning Community
  2. Chapter 2 : Introduction
    1. What Is Strapi?
    2. Course Project: An Overview
    3. Install and Manage NodeJS with NVM
    4. Creating the Strapi Project
    5. More on Strapi Installation
    6. How to Use Typescript (Optional)
    7. Admin Panel: Users, Roles, and Initial Tour
    8. How to Update Strapi
  3. Chapter 3 : Designing Strapi Content Types
    1. Content Types: An Introduction
    2. Data Fields
    3. Adding Fields to a Content Type
    4. Creating the Tag Collection Type
    5. Relation Fields
    6. Components
    7. Using the Content Manager
    8. Creating Service and Course Content Types
    9. Creating a Single Content Type
    10. Creating a Component for Posts Selection
    11. Creating a Dynamic Zone
    12. Creating the Homepage Content Entry
    13. Fixing the Homepage
    14. Creating a Global Configuration Type
    15. Creating Header and Footer Types
    16. SEO and Page Challenge
    17. Finishing the Blog Application
    18. Strapi Architecture: Generated Code Overview
  4. Chapter 4 : Permissions, Authentication, and Authorization
    1. Install Some Tools
    2. Performing Public API Operations
    3. Authentication and Authorization: The Theory
    4. Performing User Authentication Through API
    5. Performing Our First Authenticated Operation
    6. API Tokens
  5. Chapter 5 : Working with REST API
    1. CRUD Operations on Collection Types
    2. CRUD Operations on Single Types
    3. API Parameters: An Introduction
    4. Sort the API Response
    5. Filter Your API Responses
    6. Populate Your API Responses with Relations and More
    7. Select Fields for Your API Responses
    8. Paginate Through Content Through API
    9. Deal with Draft Content Through API
  6. Chapter 6 : Working with GraphQL
    1. Installing the GraphQL Plugin
    2. GraphQL Queries on Public Data
    3. User Authentication with GraphQL
    4. First Authenticated GraphQL Query
    5. Getting Nested Components Through GraphQL
    6. Getting Dynamic Zones Through GraphQL
    7. GraphQL Mutations
    8. GraphQL Operators
  7. Chapter 7 : Extending Strapi Core: Custom Controllers and More
    1. Customizing Strapi: What We Will Build
    2. Strapi Architecture: An Overview
    3. Request and Response
    4. Data Models and APIs
    5. Lifecycle Hooks
    6. Configuring Core Routes
    7. Creating Custom Routes
    8. Policies
    9. The Strapi Object
    10. Middleware
    11. Controllers: Creating Custom Controllers
    12. Controllers: Extending Core Controllers
    13. Controllers: Replacing Core Controllers
    14. Services
    15. Entity Service and Query Engine APIs
    16. Premium Posts: Introduction
    17. Premium Posts: Solution 1
    18. Premium Posts: Solution 2
    19. Premium Posts: Solution 3
    20. Premium Posts: The FindOne Controller
    21. Post Likes: Part 1
    22. Post Likes: Part 2
    23. Lifecycle Hooks: The Theory
    24. Lifecycle Hooks Exercise: Part 1 (Challenge)
    25. Lifecycle Hooks Exercise: Part 2 (Challenge Solution)
    26. Lifecycle Hooks Exercise: Part 3 (First Programmatic Hook)
    27. Lifecycle Hooks Exercise: Part 4 (Second Programmatic Hook)
    28. Lifecycle Hooks Exercise: Part 5 (Declarative Hook)
    29. Webhooks: An Overview
  8. Chapter 8 : Extending the GraphQL API
    1. The GraphQL Plugin and How It Works
    2. Customizing the GraphQL CRUD Operations
    3. Extensions: Nexus Versus GraphQL SDL
    4. Extending the Schema (Custom Mutation)
    5. Creating a Custom Resolver
    6. Applying an Auth Scope to GraphQL Operations
    7. Shaping a GraphQL Response
    8. Reorganizing GraphQL Extension Code
  9. Chapter 9 : Customizing the Strapi Admin
    1. Admin Panel Configuration: Introduction
    2. Admin Server Configurations
    3. Admin Panel Translations
    4. Changing Admin Logos and More
    5. Changing Admin Color Scheme
  10. Chapter 10 : Strapi Plugin Development: Create a Plugin
    1. Introducing Our Strapi Plugin "GitHub Projects"
    2. Creating and Activating a Plugin
    3. Integrating the Third-Party GitHub API
    4. Plugin Route, Controller, and Service
    5. Fetching Data from the GitHub API
    6. Adapting the API Response
    7. Creating the Project Content Type
    8. Creating a Test Project
    9. Fetching Related Projects
    10. Dealing with Markdown Content
    11. Admin Panel: Plugin Icon and First Component
    12. The Strapi Design System
    13. Fetching Data from the Admin Panel
    14. Showing Data in a Table
    15. Setting Up the Action Icons
    16. Implementing the Checkbox Logic
    17. Applying the Proper Auth Policy to Our Route
    18. Generating a Single Project
    19. Providing UI Feedback to the Admin User
    20. Deleting a Project
    21. Showing a Confirmation Dialog Before Deleting
    22. Showing Buttons for Bulk Actions
    23. Creating Projects in Bulk
    24. Deleting Projects in Bulk
    25. Admin RBAC: Restricting Plugin Use to Specific Roles
    26. Admin RBAC: Restricting Routes to Specific Roles
    27. Fixing Error Handling
    28. Exposing Projects with Public Routes
    29. Plugin Localization
    30. Extract the Plugin as a Separate Package
    31. Publish the Plugin to NPM Registry
    32. Install the Plugin as a Dependency (And Publish to the Strapi Market)
  11. Chapter 11 : Deploy Strapi in Production
    1. Introduction to Deployment
    2. Creating a GitHub Repo for Our Project
    3. Deployment Architectures: An Overview
    4. Environment Configurations
    5. Database Creation and Configuration
    6. Server Configuration
    7. Admin Configuration
    8. First Strapi Deployment
    9. Configure the Email Plugin
    10. Configure an External Upload Provider (Cloudinary)
    11. Configure a Custom Domain
    12. Deploying Admin as a Static Site: Configuration
    13. Deploying Admin as a Static Site: Creating the Site
    14. Make Absolute Admin URLs Work
    15. Infrastructure as Code: Make Your Strapi Deployment Reusable (Optional)
  12. Chapter 12 : What's Next (Bonus)
    1. Final Word

Product information

  • Title: The Complete Strapi™ Course with Plugins and Deployment
  • Author(s): Artcoded Academy
  • Release date: January 2023
  • Publisher(s): Packt Publishing
  • ISBN: 9781837635078