Documents
examples
examples
Type
External
Status
Published
Created
Mar 5, 2026
Updated
Mar 5, 2026

import NotV5 from '/docs/snippets/_not-updated-to-v5.md'

Backend customization: An examples cookbook using FoodAdvisor#

The present section of the documentation is intended for developers who would like to get a deeper understanding of the Strapi back end customization possibilities.

The section is a collection of examples that demonstrate how the core components of the back-end server of Strapi can be used in a real-world project. Front-end code that interacts with the back end may also be part of some examples, but displayed in collapsed blocks by default since front-end code examples are not the main focus of this cookbook.

Examples are meant to extend the features of , the official Strapi demo application. FoodAdvisor builds a ready-made restaurants directory powered by a Strapi back end (included in the /api folder) and renders a -powered front-end website (included in the /client folder).

  • đź‘€ You have read the Quick Start Guide and/or understood that Strapi is a headless CMS A headless CMS is a Content Management System that separates the presentation layer (i.e., the front end, where content is displayed) from the back end (where content is managed).

    Strapi is a headless CMS that provides:
    • a back-end server exposing an API for your content,
    • and a graphical user interface, called the admin panel, to manage the content.
    The presentation layer should be handled by another framework, not by Strapi. that helps you create a content structure with the Content-Type Builder and add some content through the Content Manager, then exposes the content through APIs.
  • đź‘€ You have read the back-end customization introduction to get a general understanding of what routes, policies, middlewares, controllers, and services are in Strapi.
  • đź‘· If you want to test and play with the code examples by yourself, ensure you have cloned the repository, setup the project, and started both the front-end and back-end servers. The Strapi admin panel should be accessible from and the Next.js-based FoodAdvisor front-end website should be running on .

This section can be read from start to finish, or you might want to jump directly to a specific page to understand how a given core element from the Strapi back end can be used to solve a real-world use case example:

I want to understand…Dedicated page
How to authenticate my queriesAuthentication flow with JWT
How and when to use
custom controllers and services
Custom controllers and services examples
How to use custom policies
and send custom errors
Custom policies examples
How to configure and use custom routesCustom routes examples
How and when to use
custom global middlewares
Custom middleware example