The Third Place — Live Community Platform with Payments & Admin Panel

    Shipped a full-stack community and events platform from zero to production — consumer app with Razorpay payments, GA4/GTM analytics, and a dedicated admin panel with RBAC, recurring events, and social posting.

    3 platforms live in productionReal payments processingEnd-to-end analytics pipeline5-role access control system
    Platform ProductPaymentsAnalytics0→1

    Overview

    The Third Place is a live community and events platform — the idea that work and home aren't enough, people need shared spaces. I built three interconnected platforms from scratch: a consumer app for discovery and payments, an admin panel for operators, and a landing page that ties the ecosystem together.

    The Ecosystem

    Three platforms, one shared Supabase backend: • Consumer App (mythirdplace.rapchai.com) — Event discovery, community pages, Razorpay payments, GA4/GTM analytics • Admin Panel (admin.rapchai.com) — RBAC with 5 roles, event management, social posting, payment tracking, audit logging • Landing Page (rapchai.com) — Neo-brutalist ecosystem landing routing users to food ordering and community/events

    Context & Role

    Solo architect, PM, and IC. Built all three applications end-to-end — from database schema and RLS policies to frontend and deployment.

    Consumer App — What Shipped

    Razorpay payment integration with idempotent sessions, orphaned payment cleanup, and cancellation guards. Payment confirmation emails via Resend. Short URLs for events (/e/:shortCode) and communities (/c/:slug). Image and video gallery with adaptive masonry layout. Post-signup name prompt modal for progressive profiling. GA4/GTM analytics covering auth events, e-commerce tracking, and community engagement. SEO meta tags with IST timezone handling and canonical URLs.

    Admin Panel — What Shipped

    Full admin dashboard with quick-create modals and at-a-glance status cards. RBAC with 5 distinct roles. Recurring event management with decoupled editing and bulk operations. Short URL management for marketing. Hootsuite social posting integration. Video gallery uploads. Payment session tracking and audit logging.

    Product Decisions

    Chose Razorpay over Stripe for India-first payment UX — built idempotent session handling to prevent double charges. Implemented RLS at the Supabase layer so privacy is enforced at the database, not the UI. Decoupled recurring events from single events to allow independent editing without cascade bugs. Made audit logging a first-class requirement from Phase 1.

    Architecture

    Consumer: Next.js (SSR) → Supabase (PostgreSQL + Auth + RLS + Storage) → Razorpay → Resend → Vercel. Admin: React + Vite → Supabase → Hootsuite API. Landing: Next.js 16 + Framer Motion → Vercel. Shared Supabase instance with RLS policies governing consumer vs admin access patterns.

    Metrics & Impact

    Three platforms live in production. Consumer app processing real payments with full analytics pipeline from signup through payment conversion. Admin panel operational across all 4 phases. Gallery, events, and communities all serving real user traffic.

    Challenges & Trade-offs

    Razorpay's webhook reliability required building orphaned session cleanup and polling UX as fallbacks. Balancing admin flexibility (5 roles) with simplicity — solved by progressive disclosure in the UI. GA4/GTM event taxonomy needed IST timezone normalization to avoid attribution errors on day boundaries.

    Lessons

    Payment integrations need defensive engineering — idempotency keys, orphaned session cleanup, and cancellation guards aren't optional. Audit logging from day one saves debugging time later. RLS-enforced privacy is more trustworthy than UI-layer permission checks. Shipping three interconnected platforms on a shared backend forces you to think about access patterns from day one.

    Tech Stack

    Next.js (SSR)TypeScriptSupabase (Auth/RLS/Storage)RazorpayResendGA4/GTMReactViteTailwindVercel
    Ping me