
The course presentation video
An overview about the course structure, to plan and optimize your learning path
Learn what is Strapi with this introduction
Get an overview of the developer blog application we'll build throughout this course
Install NodeJs using Node Version Manager
Create the Strapi project for our developer blog application
More info on what the Strapi installation script performed for us
How to adopt Typescript for your Strapi project
Learn to distinguish admin users from application users, and get an overview of the admin panel sections
Instructions on how to update Strapi to a more recent version
Learn what Strapi content types are and start creating the Post content type
Explore all field types
Start adding fields to our Post content type
Create our second collection type
Create and understand relation fields
Understand Strapi components and create our first one
Use our first 2 content types to create some content instances by using the Content Manager
Create two new collection types needed for our application
Start creating our first single content type for our blog's Home Page
Learn about dynamic zones and create a first zone
Populate the HomePage single content type with content, thus also learning how to use dynamic zones
Fix the component tree of the Home Page
Creating a CompanyInfo component for setting up global configuration parameters for our site
A couple of tools to install to follow along with the course
Enable and perform our first public REST API call
Learn how Authentication & Authorization flows work in Strapi
Sign a user up via API
Perform a request as an authenticated user, by applying the needed auth header
Learn how to manually generate tokens to grant access to Strapi API
Learn about the default CRUD endpoints for Collection Types, with examples
Learn about the default CRUD endpoints for Single Types, with examples
Install the Strapi GraphQL plugin and enable its endpoint
Overview and demo of the plugin we'll be developing
We generate our plugin from the CLI and "register" it to the Strapi core
Install dependencies and configure env variables to interact with the Github remote API
We start tweaking the default generated plugin route-controller-service chain to meeting our Github fetching needs
Performing our Github API call to fetch repositories
Enriching and filtering our API response to shape it as an array of "repository" objects
Create the Project content type associated to our plugin
Manually create a test Project entity to be able to start testing our functionalities
Get information for each repo on the existance of an already generated project associated to it
Optimized fetched markdown text for repos to be properly handled in Strapi
Change the plugin logo and create a first custom React component
Introduction to the Strapi UI design system
Fetch Github repositories with an API call from the Admin panel UI of our plugin
Start populating our Admin Plugin UI with a table listing Github repositories
Add dynamic action icons for each repository shown in the table
Add functionality to select/deselect repositories/rows through the checkboxes, individually or in bulk
Change our repo fetching route's policy to allow that operation only for authenticated admin users
Generate a Project programmatically from a single repository via a custom route-controller-service chain
Implement table instant update and alerts to provide proper feedback to user operations
Delete a project programmatically from repository rows
Prevent deleting projects by mistake by adding a confirmation dialog for project deletion
Add buttons to perform bulk project creation/deletion
Generate multiple projects in bulk
Delete multiple projects in bulk
Apply role-based restrictions that limit the access to the plugin
Admin role-based restrictions for specific routes
Apply the then/catch syntax to properly handle errors
Expose projects for public read access
Translate the plugin in multiple languages
Extract our plugin as a standalone package
Publish the plugin as an npm package on the npm registry
Install the plugin as a remote NPM package, while also learning how to publish a plugin to the Strapi Marketplace
The definitive course to learn Strapi™ v4 from the basics to advanced usage!
Why Strapi and why this course?
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.
Build and deploy a complete Strapi app, plus a complete plugin!
In this course I will drive you from the very basic concepts to building, customizing and deploying a complete Strapi application.
The application we'll be creating includes features built by extending the Strapi core via custom logic (routes, controllers, GraphQL resolvers, etc.). Furthermore, in this course you'll 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!).
Let me say that 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.
Course topics list
Here are the main topics you will be learning:
Working with content: content types, fields, relations, components, dynamic zones
Authorization & authentication system
Working with the REST API
Working with the GraphQL API
Extending Strapi core: custom routes, controllers, services, policies, middleware
Extending the GraphQL plugin
Customizing the Admin Panel
Creating a complete plugin (server and admin included), ready for the Strapi marketplace
Deploying Strapi in production
What you'll be able to do afterwards
By the end of this course, you will feel empowered as you'll 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!
Disclaimer
The Strapi™ name and logo are property of Strapi Solutions SAS and are shown, as well as parts of the Strapi application, for educational purposes. This course is published independently, with no affiliation with Strapi Solutions SAS.