Skip to content
Dimitri Robiere PerrietD. R. PerrietCaen, FR — --:--:--EN · FR

Headless online shop with Strapi and React

○ Archived
Client
MyDigitalSchool
Role
Full-stack developer
Duration
4 weeks
Year
2025
Stack
Strapi · TypeScript · React · Vite · Tailwind CSS
Headless online shop with Strapi and React — illustration
Fig. 01 — Headless online shop with Strapi and React, illustration
(00) — In short

A headless CMS exercise: an e-commerce back end on Strapi (items, sellers, permissions) and a React TypeScript front end, delivered with documentation.

(01)

Context

This project is an exercise on headless CMSs: build the back end of a small shop with Strapi, then a front end that consumes its REST API. The deliverable also included full documentation.

The scope is deliberately small: users, items and the rules linking them.

(02)

Challenge

The main difficulty was permissions. A visitor can only browse the catalogue, while a logged-in user can create items and edit or delete only their own.

The project also had to be reproducible: anyone cloning the repository should be able to run it and get test data without manual setup in the admin panel.

(03)

Approach

I defined the User and Item models (price, stock, category enum, image, slug generated from the title, seller relation) and exposed REST routes with pagination, filters, search and sorting. On startup, a script sets the public and authenticated role permissions and creates sample users and items.

The front end is a React and TypeScript app on Vite, styled with Tailwind CSS, with authentication and protected routes. I wrote the documentation for both sides: data schema, consumed routes, project structure and installation guide.

(04) — Results

Key figures
2
repositories: back end and front end
2
data models
2
roles with distinct permissions
6
commits
← Previous project34 · Real-time location tracking with WebSocket and ReactNext project36MyDigitalHorse, object-oriented programming in PHP