Skip to main content

Multi-Tenant SaaS Platform — Affiliate Marketing

SaaS platform for deploying and managing custom affiliate landing pages across multiple domains, with admin dashboard and built-in analytics.

Next.jsReact 19SupabaseTypeScriptTailwind CSSshadcn/uiThree.jsAnalyticsMulti-TenantSaaS

Multi-tenant SaaS platform developed for a client, enabling deployment of custom affiliate sites on independent domains from a centralized dashboard.

ARCHITECTURE:

Single Next.js 16 application serving multiple domains via a proxy system (replacing Next.js middleware). Automatic domain detection, header injection, conditional admin/public routing. Feature-Sliced Design architecture on the frontend. PostgreSQL database via Supabase with Row Level Security. Server-side RPC functions for analytics aggregation.

TECH STACK:

Frontend: Next.js 16 + React 19, shadcn/ui (Radix + Tailwind CSS 4), Zustand, TanStack Query v5, React Hook Form + Zod 4, Three.js (3D animations), react-fast-marquee, dnd-kit (drag & drop), nuqs

Backend: Supabase (PostgreSQL + Auth + Storage), server RPC functions, Next.js Server Actions

Analytics: Cookieless system with timezone-aware aggregations (date-fns-tz), period comparison, tracking by device/button/card

FEATURES:

Multi-tenancy: Each client gets their own domain with customizable theme (oklch colors), configurable hero, SEO metadata, legal content, logo/favicon. Flexible JSONB configuration without schema migrations.

Admin dashboard: CRUD management for sites and partner library. Site-partner associations with drag & drop ordering, custom badges, configurable internal cards, per-button redirect URLs.

Cookieless analytics: GDPR-friendly tracking without cookies. Server-side aggregation via Supabase RPC. Statistics by period (day, week, month, year) with automatic comparison. Device breakdown, click rate, per-partner performance.

Premium animations: CSS morphing blobs with GPU acceleration, pre-calculated floating particles (zero-jank), animated gradients. Responsive optimization (reduced sizes on mobile).

Internationalization: Multilingual support (FR/EN) per site, automatic locale detection.

RESULTS:

Production platform serving multiple domains simultaneously. New site deployment in minutes via the dashboard. Real-time analytics with no external dependency.