Skip to content

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

What is Strapi? — Headless CMS Explained for Beginners

Learn what Strapi is, how headless CMS architecture differs from WordPress and Contentful, and why developers choose Strapi for building content APIs.

✓ Live

Strapi Architecture — Node.js, Koa, Database, and Plugin System Explained

Learn Strapi's architecture including the Koa framework, SQLite and PostgreSQL databases, plugin system, and how requests flow from API to database.

✓ Live

Strapi Quick Start — Create Your First Project and Content Type

Learn how to create a Strapi project with npx create-strapi-app, set up an admin user, and build your first content type in minutes.

✓ Live

Strapi Admin Panel — Dashboard, Content Manager, and Settings Guide

Learn to navigate the Strapi admin panel including the dashboard, Content Manager, Media Library, Settings, and Content-Type Builder for efficient content management.

✓ Live

Strapi Content Types — Collection Types, Single Types, and Components

Learn Strapi content types including collection types for multiple entries, single types for unique content, and components for reusable field groups.

✓ Live

Strapi Fields & Attributes — String, Number, Richtext, JSON, Media, and Enums

Learn every Strapi field type including string, number, richtext, JSON, media, enumeration, and how to configure validation, defaults, and constraints.

✓ Live

Strapi Relations — One-to-One, One-to-Many, Many-to-Many, and Morph Relations

Learn Strapi relations including one-to-one, one-to-many, many-to-many, and polymorphic morph relations to connect content types effectively.

✓ Live

Strapi Components & Dynamic Zones — Reusable Field Groups and Flexible Layouts

Learn Strapi components for reusable field groups and dynamic zones for flexible page layouts, enabling modular content modeling and structured editors.

✓ Live

Strapi Content Lifecycle — Draft/Publish, Versioning, and Workflows

Learn the Strapi content lifecycle including draft and publish states, content versioning, scheduled publishing, and review workflow management.

✓ Live

Strapi REST API — CRUD Endpoints, Filtering, Sorting, and Pagination

Learn Strapi REST API CRUD operations including creating, reading, updating, and deleting entries with filtering, sorting, and pagination through query parameters.

✓ Live

Strapi API Parameters — Populate, Fields, Sort, Filters, Locale, and PublicationState

Learn Strapi API query parameters including populate for relations, fields for selection, sort, filters, locale for i18n, and publicationState for draft control.

✓ Live

Strapi GraphQL Setup — Install Plugin, Schema Generation, Queries and Mutations

Learn how to install Strapi's GraphQL plugin, explore the auto-generated schema, and write GraphQL queries and mutations to fetch and manipulate content.

✓ Live

Strapi API Customization — Custom Controllers, Routes, Services, and Middlewares

Learn to customize Strapi's auto-generated API with custom controllers, routes, services, and middlewares to add business logic beyond CRUD operations.

✓ Live

Strapi API Security — CORS, Rate Limiting, Query Complexity, and Sanitization

Learn to secure Strapi APIs with CORS configuration, rate limiting, query complexity analysis, input sanitization, and security best practices for production.

✓ Live

Strapi Users & Roles — Authenticated, Public, and Custom Roles Explained

Learn Strapi user and role management including authenticated and public roles, creating custom roles, and understanding the Users & Permissions plugin.

✓ Live

Strapi Permissions — Per-Endpoint Permissions and CRUD Granularity

Learn Strapi permission management including per-endpoint configuration, CRUD granularity for each content type, and custom permission logic using policies.

✓ Live

Strapi Authentication — JWT, Login, Register, Providers, and Token Refresh

Learn Strapi authentication including JWT tokens, login and registration flows, provider configuration, and token refresh mechanisms for secure API access.

✓ Live

Strapi SSO & OAuth — Google, GitHub, Facebook, and Custom Providers

Learn Strapi SSO and OAuth integration including Google, GitHub, and Facebook login providers, custom provider setup, and social authentication configuration.

✓ Live

Strapi Advanced Auth — API Tokens, Webhooks, and Server-to-Server Authentication

Learn Strapi advanced authentication including API tokens for machine-to-machine access, webhook security verification, and server-to-server authentication patterns.

✓ Live

Strapi Media Upload — Admin Upload, Allowed Types, and Size Limits

Learn Strapi media upload including uploading through the admin panel and API, configuring allowed file types and size limits, and organizing uploaded files.

✓ Live

Strapi Upload Providers — Local vs S3 vs Cloudinary vs Cloudflare R2

Learn Strapi upload providers including local filesystem storage, Amazon S3, Cloudinary, and Cloudflare R2 for scalable media file management in production.

✓ Live

Strapi Image Optimization — Formats, Compression, and Responsive Images

Learn Strapi image optimization including format conversion to WebP, automatic compression, responsive image generation, and serving optimized images through CDN.

✓ Live

Strapi File Management — Folders, Replace Files, and Media Library API

Learn Strapi file management including folder organization, replacing files while preserving URLs, and using the Media Library API for programmatic file operations.

✓ Live

Strapi File Security — Signed URLs, Access Control, and Private Files

Learn Strapi file security including signed URLs for temporary access, access control for private files, and protecting uploaded media from unauthorized downloads.

✓ Live

Strapi Plugin Ecosystem — Plugin Types, Marketplace, and Installing Plugins

Learn Strapi's plugin ecosystem including plugin types, exploring the marketplace, installing and configuring plugins, and managing plugin dependencies.

✓ Live

Strapi Custom Plugins — Plugin Structure, Server vs Admin Code

Learn to build Strapi custom plugins including plugin structure, server-side code for API extensions, and admin-side code for custom admin panel features.

✓ Live

Strapi Admin Panel Customization — Logo, Colors, and Custom Fields

Learn to customize the Strapi admin panel including custom logos, brand colors, custom fields, and extending the admin interface with React components.

✓ Live

Strapi Email & Notifications — Email Plugin Configuration and Template Customization

Learn Strapi email and notifications including configuring the email plugin with SendGrid or SMTP, customizing email templates, and sending transactional emails.

✓ Live

Strapi Internationalization — i18n Plugin, Content Translation, and Locales

Learn Strapi internationalization including the i18n plugin setup, adding locales, translating content across languages, and serving localized content through the API.

✓ Live

Strapi Lifecycle Hooks — beforeCreate, afterUpdate, and Model Lifecycle

Learn Strapi lifecycle hooks including beforeCreate, afterCreate, beforeUpdate, afterUpdate, and other model lifecycle events for running code at specific moments.

✓ Live

Strapi Custom Middleware — Request/Response Middleware, Order, and Config

Learn Strapi custom middleware including creating request/response middleware, understanding middleware execution order, and configuring middleware for specific routes.

✓ Live

Strapi Webhooks — Content Type Events and Custom Webhook Payloads

Learn Strapi webhooks including configuring content type event triggers, customizing webhook payloads, verifying webhook signatures, and handling delivery failures.

✓ Live

Strapi with TypeScript — TypeScript Setup, Type Generation, and Strict Mode

Learn to use TypeScript with Strapi including project setup, automatic type generation for content types, type-safe services and controllers, and strict mode configuration.

✓ Live

Strapi Testing — Unit Tests, Integration Tests, and API Testing

Learn Strapi testing including unit tests for services, integration tests for controllers and lifecycle hooks, and API endpoint testing with automated test suites.

✓ Live

Strapi Production Setup — PostgreSQL, NODE_ENV, and Process Management

Learn Strapi production setup including PostgreSQL configuration, NODE_ENV settings, PM2 process management, and production-ready server configuration.

✓ Live

Strapi Database Configuration — PostgreSQL, MySQL, and Migrations

Learn Strapi database configuration including PostgreSQL vs MySQL comparison, connection pooling, data migrations, and production database management.

✓ Live

Strapi Environment Variables — .env, Secrets, and Multi-Environment Setup

Learn Strapi environment variables configuration including .env files, JWT secrets, database credentials, provider keys, and managing config across environments.

✓ Live

Strapi CI/CD — GitHub Actions, Docker, and Automated Deployment

Learn Strapi CI/CD pipeline setup including GitHub Actions workflows, Docker containerization, automated testing, and zero-downtime deployment strategies.

✓ Live

Strapi Performance Optimization — Caching, CDN, Database Tuning, and Clustering

Learn Strapi performance optimization including response caching, CDN integration, database query tuning, PM2 clustering, and API response compression for production workloads.

✓ Live

Strapi Security & Monitoring — Hardening, Logging, Error Tracking, and Backups

Learn Strapi security hardening and production monitoring including access control, audit logging, error tracking with Sentry, health checks, and automated backup strategies.

✓ Live

All 40 topics in Strapi Tutorials — Complete Project-Based Guide are published.