← Back to Portfolio

FriendChise

A multi-tenant task management SaaS for franchise businesses. Currently in production pilot at a Walker's Doughnuts franchise on an isolated Supabase instance.

Full-Stack Multi-Tenant RBAC SaaS V1 — Live In Pilot

The Problem

Franchise businesses — especially food franchises like donut shops — struggle with consistency, knowledge sharing, and task execution across locations. Task planning relies on paper checklists and group chats. Recipes are scattered on 50+ sheets of paper. Training depends on whoever happens to be available.

I worked at a donut franchise that started as a top 5 location out of 30 and dropped to bottom 2 within two years. Workers were thrown in without training. 12-hour shifts with unfair task distribution led to burnout. Managers blamed workers for problems caused by a lack of structure.

The problems weren't the people — it was the system. FriendChise is the tool I wish existed.

The Solution

A web app where franchise owners define task libraries and timetable templates at the franchise level, managers apply those templates to generate weekly schedules for their branch, and workers view their assigned tasks on any device.

Everything is scoped by organization with role-based permissions. Parent brands define defaults; child franchisees inherit and customize. An invite system handles onboarding, and a notification panel keeps everyone informed.

What's Live in V1

See the full V1 feature list, V2 vision, and rationale →

Tech Stack

Next.js 16

App Router, React 19, Server Actions

TypeScript

End-to-end type safety

PostgreSQL

Hosted on Supabase

Prisma v7

Type-safe ORM & migrations

Auth.js v5

Google OAuth + JWT

Tailwind v4

shadcn/ui + Radix UI

Zod v4

Runtime validation

Vercel

Production deployment

By the Numbers

19
Prisma Models
468
Unit Tests
7
Personas
36
Features
1
Real Pilot

What This Demonstrates

Product Thinking

Started from a real problem I lived through. 7 personas, 34 user stories, 36 MoSCoW-prioritized features, and 9 user flows defined before writing code.

System Design

Hierarchical multi-tenant architecture (Brand → Franchisee). Two-layer timetable system. Min/max frequency constraints. Documented tradeoffs.

Full-Stack TypeScript

Next.js 16 App Router with RSC, Server Actions, and REST API. Discriminated union result types for clean error handling. End-to-end type safety with Zod.

Auth & Security

OAuth + JWT sessions, Edge runtime compatibility, org-scoped permission checks on every route. Full RBAC — not just “admin vs user.”