Back to projects

Winbay

Private White Bay marketplace for group-buy offers, with a French storefront, customer accounts, order/payment flows, and a Laravel/Inertia backoffice.

InternalMarketplace and backoffice contribution / 2025

Problem

A group-buy marketplace needs a complete storefront plus a backoffice for sellers, products, announcements, orders, payments, refunds, notifications, and content.

Solution

Pair a Next.js storefront with Laravel APIs and a Laravel/Inertia dashboard. The backend owns auth, roles, domain services, media, order state, SATIM payments, and dashboards.

Key Features

French public marketplace shell with search, navigation, flash groups, top categories, announcements, contact, and legal pages
Customer authentication with email/password plus Google and Apple social login flows
Account area for profile, password, addresses, favorites, notifications, active orders, order history, receipts, and ratings
Announcement catalog with filters, sorting, related offers, seller rates, favorites, and order availability checks
Checkout flow for delivery address capture, order creation, payment-link generation, payment confirmation, and receipt delivery
Laravel/Inertia backoffice for users, products, announcements, categories, notifications, orders, and profile management
Role and permission layer for admin/seller/client behavior using Sanctum, Socialite, and Spatie Permission
Media pipeline for product galleries and announcement covers with Spatie Media Library
Dashboard analytics for users, orders, announcements, suppliers, commissions, and order trends

Architecture Map

Mermaid
flowchart TB
  Buyer["Buyer / group participant"] --> PublicStore["Next.js marketplace"]
  PublicStore --> Catalog["Announcements, flash groups, categories, search"]
  PublicStore --> Account["Auth, profile, favorites, orders, addresses"]
  PublicStore --> Checkout["Checkout and SATIM payment flow"]
  PublicStore --> ProxyApi["Next.js route handlers"]
  ProxyApi --> LaravelApi["Laravel JSON API"]
  Admin["Admin / seller workspace"] --> InertiaDashboard["Laravel + Inertia dashboard"]
  InertiaDashboard --> Backoffice["Users, products, announcements, orders, notifications, categories"]
  LaravelApi --> Domain["Marketplace domain services"]
  Backoffice --> Domain
  Domain --> Products["Products and media gallery"]
  Domain --> Announcements["Validated announcements and group-buy offers"]
  Domain --> Orders["Order lifecycle, delivery, cancel, refund"]
  Domain --> Payments["Payment records and SATIM integration"]
  Domain --> Notifications["Email and in-app notifications"]
  Products --> Media["Spatie Media Library"]
  Domain --> Auth["Sanctum, roles, social auth"]
  Domain --> Database[("SQL database")]
  Payments --> Satim["SATIM payment gateway"]
  Notifications --> Mail["Mail / receipt delivery"]

Winbay Screenshots

4 views
Public marketplace homepage showing the French storefront shell, search, navigation, hero offer, flash groups, and top categories.
Customer authentication screen with classic login plus Google and Apple entry points.
Backoffice dashboard with marketplace KPIs for users, orders, announcements, suppliers, commissions, and order analytics.
Product creation workflow from the admin surface, including pricing, category/supplier assignment, rich text description, and image upload.