Arcadia Hub
Multi-tenant B2B partner management platform: onboarding, case tracking, academy content, and a blog
// At a glance
Problem
A partner-organization network needed a single platform to manage onboarding, case tracking, training events, and content, instead of scattered spreadsheets and email threads across Partner, Commercial, and Admin roles.
Solution
Delivered a layered-monolith Next.js platform on Supabase/Postgres: Server Actions and a per-domain data-access layer replace a separate REST API, Postgres Row-Level Security enforces multi-role authorization across 18 migrations, and locale-aware middleware chains next-intl routing with session/auth handling for English/Italian support.
Outcome
Delivered as v1.0 to a real client, now in Phase-2 planning based on live client feedback.
// Key highlights
- →Real Postgres RLS-based multi-role authorization, including iterative post-launch security hardening
- →Sanitized rich-text/markdown rendering pipeline for safely handling admin-authored HTML content
- →Locale-aware SSR middleware combining i18n routing with session/auth handling
- →Case/matter lifecycle management with auto-generated case codes, attachments, and audit trail
- →Managed the client engagement end-to-end, requirements through v1.0 delivery and post-launch iteration
Arcadia Hub is a full-stack, multi-tenant B2B partner management and engagement platform that centralizes onboarding, case/matter tracking, event scheduling, an academy content library, a document repository, and a blog/news system for partner organizations. Built with role-based access control (Partner / Commercial / Admin) and English/Italian support, it was delivered as v1.0 to a real client and is currently in Phase-2 planning based on live client feedback.
Tech Stack
- Next.js 16 (App Router), React 19, TypeScript 5 (strict mode)
- Supabase (PostgreSQL, Auth, Storage) via
@supabase/ssrand@supabase/supabase-js - Tailwind CSS 4 + PostCSS
- next-intl for internationalization (English + Italian, route-level
[locale]segments) - Zod for schema validation
- Resend for transactional email
- react-markdown, remark-gfm/breaks, rehype-raw/sanitize, turndown for a sanitized rich-text/markdown content pipeline
- ESLint 9, tsx script runner, dotenv
- Deployed on Vercel
Key Features
- Public partner onboarding flow with access requests and admin approval
- Case/matter ("Pratiche") lifecycle management (Pending → In Progress → Completed) with auto-generated case codes, attachments, and audit trail
- Event scheduling (training, workshops, webinars, in-person) with meeting links, recordings, and registrations
- Academy content library (video, gallery, slides, podcast) with view tracking and progress
- Categorized document repository with deadline-driven urgency indicators
- Blog/news system with slugs, categories/tags, and draft/publish workflow
- Community and partner discovery search
- Typed notification system integrated with email delivery
- Admin dashboard with activity feed and case-status analytics
Architecture
Layered monolith architecture: React/Next.js presentation layer talks to Server Actions and a per-domain data access layer (src/lib/data/*), which query Supabase/Postgres directly — no separate REST API layer. Route groups ((admin), (auth), (dashboard)) separate concerns within the locale-aware routing tree. A custom middleware chains next-intl locale resolution with Supabase session refresh and auth gating. Authorization is enforced with Postgres Row-Level Security across 18 sequential migrations, including dedicated hardening passes for RLS recursion and storage policy fixes. Auto-generated database types give end-to-end type safety from schema to UI, and a service layer isolates side effects (notifications, storage) from core CRUD logic.
My Role
- Designed and implemented real Postgres RLS-based multi-role authorization, including iterative post-launch security hardening visible in the migration history
- Built a sanitized rich-text/markdown rendering pipeline for safely handling admin-authored HTML content
- Implemented locale-aware SSR middleware combining i18n routing with session/auth handling
- Delivered operational tooling beyond the core app (database seeding, admin password reset scripts)
- Managed a real client engagement end-to-end, from requirements through v1.0 delivery and structured post-launch feedback iteration