
Backoffice application for managing a fashion e-commerce business, built with React 19 + strict TypeScript and Supabase (PostgreSQL, Auth, Storage). It covers CRUD product management with advanced filtering and image upload, visual composition of outfits (looks) across 5 drag-and-drop slots, and customer profile management with style preferences. Service-layer architecture with TanStack Query, Zustand and URL state for filters. A built-in demo mode runs the app offline via localStorage when Supabase is not configured.
CRUD management of fashion products
Advanced filtering (category, brand, colors, sizes, price)
Drag-and-drop image upload
Visual outfit composition across 5 slots
Customer profiles and style preferences
Offline demo mode (localStorage)
Infinite scroll pagination
Authentication and RLS lockdown (Supabase)
Building a complete backoffice for a fashion brand able to manage a product catalog, visually compose outfits (looks) and track customers, while remaining usable without a configured backend. The challenge was to keep a clean separation between the UI and data access, efficiently handle large lists (pagination, search, sorting) and offer a smooth desktop experience with graceful degradation in offline mode.
Cleanly separating the UI from data access with a mock fallback for demo mode
Building a visual outfit editor across 5 slots with drag-and-drop
Handling server-side pagination, search and sorting with infinite scroll
Locking down access through RLS policies reserved for authenticated users
Service-layer architecture isolating data access (Supabase + mock fallback), encapsulated in custom hooks on top of TanStack Query for caching, pagination and refetch. Zustand manages minimal UI state, while URL state makes filters shareable and bookmarkable. Server-side pagination with infinite scroll, search and sorting resolved on Supabase via RPC, and RLS lockdown restricting access to authenticated users. A demo mode automatically falls back to localStorage with preloaded data when Supabase is not configured.
Demo
Offline mode
localStorage fallback without backend
5
Look slots
Visual outfit composition
TanStack
Server state
Caching, pagination, refetch
1
Developer
Solo project

Product catalog management with filters and infinite scroll
Isolating data access behind a service layer makes it possible to add a demo mode (localStorage mock) without touching the UI
Storing filters in the URL makes them shareable and bookmarkable while simplifying state management
Delegating search and sorting to Supabase via RPC avoids accumulating data client-side and stays performant on large lists
Moving policies from anon to authenticated only closes unauthenticated access without breaking public image serving

French platform for pet adoption, geolocated lost/found reporting and a directory of certified pet boarding facilities, built with a .NET API, PostGIS matching and web & mobile apps.

Complete medical questionnaire and rehabilitation management solution with microservices API, admin dashboard and mobile patient application.

Modern restaurant reservation web application developed with React and Redux state management.