📄️ Introduction
What a headless CMS is, why Strapi, installing Strapi 5, understanding the project structure, and your first look at the admin panel.
📄️ Content Modeling
Defining collection types, single types, field types, components, and dynamic zones in Strapi 5.
📄️ Relations
Defining one-to-one, one-to-many, and many-to-many relations between content types to build a blog data model.
📄️ Managing Content
Using the admin panel to create, edit, and publish content -- drafts, publishing workflow, media library, and bulk operations.
📄️ REST API
Strapi's auto-generated REST API -- endpoints, filtering, sorting, pagination, field selection, population, and testing with curl.
📄️ Authentication & Permissions
The Users & Permissions plugin, JWT authentication, user registration, roles, API tokens, and controlling access to your Strapi API.
📄️ Controllers & Services
Extending Strapi's default CRUD controllers, creating custom actions, delegating business logic to services, and sanitizing output.
📄️ Routes, Policies & Middleware
Custom routes for new endpoints, access control policies, request/response middleware, and the Strapi request lifecycle.
📄️ Lifecycle Hooks & Webhooks
Reacting to content events with Document Service middleware, configuring webhooks, and integrating with external services.
📄️ Media & File Uploads
Upload providers, S3 and Cloudinary integration, image optimization, responsive formats, upload validation, and media management.
📄️ TypeScript
Setting up TypeScript in Strapi 5, generating types from content schemas, typing controllers, services, and Document Service queries.
📄️ Configuration & Deployment
Environment-based configuration, PostgreSQL setup, deploying Strapi to a VPS with PM2, nginx reverse proxy, HTTPS, and security hardening.