·
5 min read
·Nuari
Building Rapio from Zero
How the concept for a wedding vendor management platform evolved from a set of workflow frustrations into a working SaaS architecture.
SaaSProduct DesignNext.jsArchitecture
When talking to wedding photographers, makeup artists, and event planners, one pattern emerged repeatedly: their business operations were scattered across WhatsApp chats, manual calendar entries, and unorganized spreadsheets.
Unlike corporate businesses with dedicated account managers, wedding vendors are hands-on creators who are often on-site every weekend. They need software that respects the reality of their operational flow.
## The Core Operational Problem
A typical wedding vendor workflow involves distinct sequential stages:
1. **Initial Inquiry**: Date availability check, service package inquiries, quotation draft.
2. **Booking & Commitment**: Down payment confirmation, agreement terms, calendar reservation.
3. **Pre-Event Coordination**: Moodboard sharing, rundown alignments, schedule confirmations.
4. **Execution Day**: On-site crew coordination, timeline tracking.
5. **Post-Event Delivery**: Photo/video editing deadlines, preview deliveries, final balance settlement.
When these stages are managed inside informal chat apps, critical deadlines get lost in message history.
## Designing the Architecture
For the technical foundation of Rapio, three architectural priorities guided the stack selection:
### 1. Minimal Operational Overhead
As an independent lab project, infrastructure maintenance must be kept close to zero. We chose **Next.js App Router** hosted on Vercel paired with **Supabase (PostgreSQL)** for database and auth services.
### 2. Multi-Tenant Data Isolation
Using PostgreSQL **Row Level Security (RLS)**, every tenant's data (clients, bookings, invoices) is strictly isolated at the database engine level. This ensures high security without complex application-level filtering.
```sql
-- Example RLS Policy for Vendor Bookings
CREATE POLICY "Vendors can only access their organization bookings"
ON bookings
FOR ALL
USING (auth.uid() IN (
SELECT user_id FROM organization_members WHERE organization_id = bookings.organization_id
));
```
### 3. Mobile-First Dashboard
Vendors manage client inquiries on their phones while on location. The entire UI is built with a responsive grid that prioritizes fast single-hand thumb navigation.
## Current Progress & Next Milestones
Rapio is currently in active development. The milestone tracker, quotation builder, and client directory are being refined through iterative feedback with local creative studios.