Strapi Tutorials — Complete Project-Based Guide
In this tutorial series, you will master Strapi — from your first content type to custom plugin development, GraphQL API setup, and production deployment on PostgreSQL. With 40 lessons covering every aspect of this powerful headless CMS, you will go from absolute beginner to Strapi developer.
Strapi is the leading open-source headless CMS. Unlike WordPress which couples content with presentation, Strapi separates content management from frontend delivery — giving you REST and GraphQL APIs automatically, so you can build websites, mobile apps, and IoT interfaces from the same content repository.
What You'll Build
Throughout this series, you will build a complete headless CMS backend for a recipe sharing platform. You will model content types for recipes and authors, configure roles and permissions, expose a GraphQL API, upload and optimize images, build custom plugins, and deploy to production.
How to Use This Series
Each lesson builds on the previous one. Start with Module 1 if you are new to Strapi, or jump to any module that matches your skill level.
Module 1: Foundations
| # | Lesson | What You'll Learn |
|---|---|---|
| 01 | What is Strapi | Headless CMS concept, vs WordPress, vs Contentful |
| 02 | Strapi Architecture | Node.js, Koa, SQLite/PostgreSQL, plugins |
| 03 | Quick Start | npx create-strapi-app, admin setup, first content type |
| 04 | Strapi Admin | Dashboard, content manager, settings, UI overview |
Module 2: Content Types & Schemas
| # | Lesson | What You'll Learn |
|---|---|---|
| 05 | Content Types | Collection types, single types, components |
| 06 | Fields & Attributes | String, number, richtext, JSON, media, enums |
| 07 | Relations | One-to-one, one-to-many, many-to-many, morph relations |
| 08 | Components & Dynamic Zones | Reusable field groups, flexible layouts |
| 09 | Content Lifecycle | Draft/publish, versioning, workflows |
Module 3: REST & GraphQL APIs
| # | Lesson | What You'll Learn |
|---|---|---|
| 10 | REST API | CRUD endpoints, filtering, sorting, pagination |
| 11 | API Parameters | Populate, fields, sort, filters, locale, publicationState |
| 12 | GraphQL Setup | GraphQL plugin, schema generation, queries and mutations |
| 13 | API Customization | Custom controllers, routes, services, middlewares |
| 14 | API Security | CORS, rate limiting, query complexity, sanitization |
Module 4: Users, Roles & Permissions
| # | Lesson | What You'll Learn |
|---|---|---|
| 15 | Users & Roles | Authenticated, public, custom roles |
| 16 | Permissions | Per-endpoint permissions, CRUD granularity |
| 17 | Authentication | JWT, login/register, providers, token refresh |
| 18 | SSO & OAuth | Google, GitHub, Facebook, custom providers |
| 19 | Advanced Auth | API tokens, webhooks, server-to-server auth |
Module 5: Media & Files
| # | Lesson | What You'll Learn |
|---|---|---|
| 20 | Media Upload | Admin upload, allowed types, size limits |
| 21 | Upload Providers | Local vs S3 vs Cloudinary vs R2 |
| 22 | Image Optimization | Formats, compression, responsive images |
| 23 | File Management | Folders, replace files, media library API |
| 24 | File Security | Signed URLs, access control, private files |
Module 6: Plugins & Customization
| # | Lesson | What You'll Learn |
|---|---|---|
| 25 | Plugin Ecosystem | Plugin types, marketplace, installing |
| 26 | Custom Plugins | Plugin structure, server vs admin code |
| 27 | Admin Panel Customization | Logo, colors, custom fields |
| 28 | Email & Notifications | Email plugin, template customization |
| 29 | Internationalization | i18n plugin, content translation, locales |
Module 7: Advanced Development
| # | Lesson | What You'll Learn |
|---|---|---|
| 30 | Lifecycle Hooks | beforeCreate, afterUpdate, model lifecycle |
| 31 | Custom Middleware | Request/response middleware, order, config |
| 32 | Webhooks | Content type events, custom webhook payloads |
| 33 | Strapi with TypeScript | TS setup, type generation, strict mode |
| 34 | Testing | Unit tests, integration tests, API testing |
Module 8: Deployment & Production
| # | Lesson | What You'll Learn |
|---|---|---|
| 35 | Production Setup | PostgreSQL, NODE_ENV, Process management |
| 36 | Database Configuration | PostgreSQL vs MySQL, migrations |
| 37 | Environment Variables | .env, db config, JWT secret, providers |
| 38 | CI/CD | GitHub Actions, Docker, automated deployment |
| 39 | Performance | Caching, CDN, database optimization, clustering |
| 40 | Security & Monitoring | Hardening, logging, error tracking, backups |
Let's begin with Lesson 1.
Published Topics
All 40 topics in Strapi Tutorials — Complete Project-Based Guide are published.