# How to Vibe Code Your Own Geneva (and Stop Paying for It)

> The online place to find your offline people

- Site: https://geneva.com
- Category: Community & Communication
- Verdict: **Don't bother** (25/100 vibecodeable)
- Estimated effort: 3-5 months of part-time work for a stripped-down text and event subset

## Verdict

Build a simple text-and-calendar subset for learning, but don't attempt a full clone — the multi-party WebRTC streaming and real-time infrastructure will overwhelm a solo builder.

Geneva stitches together five distinct real-time communications products—Discord-style chat, Clubhouse audio, Zoom video, Twitch-style broadcast streaming, and a local meetup app—into a single interface. While an AI coding agent can scaffold the database schema, basic Next.js UI, and standard REST endpoints in a weekend, wiring up production-grade SFU media routing for multi-host video broadcasts, handling fluctuating WebSocket connections across mobile and web clients, and building geospatial discovery queries will introduce endless edge cases. Paying nothing for the consumer app or simply using existing tools like Discord and Meetup is infinitely more rational than attempting to recreate a venture-backed community platform solo.

### What you can't replicate

- The hundreds of thousands of active community members and organic local clubs
- Proprietary media server cluster tuning for low-latency multi-host broadcasts
- The network effects of urban chapters in New York, Los Angeles, and Dallas

## What it does

An all-in-one group communication and community-building platform combining chat rooms, forum discussions, audio/video rooms, live broadcasts, and a local meetup events calendar.

### Core features

- Group and user management with granular roles and permissions
- Real-time text chat with threads, reactions, @mentions, and typing indicators
- Forum-style long-form discussion boards with sorting
- Live multi-party audio rooms
- Virtual video rooms for face-to-face hangs
- Live broadcast streaming for multiple hosts and viewers
- Centralized event calendar with RSVP tracking and member questionnaires
- Local group discovery and geo-based search

## The business

### Pricing

- Free: $0

### Funding

$26.5M raised.
- Seed Round (August 2020)
- Series A (January 2021)
- Series A1 (September 2022)
Investors: Base Partners, Li Jin

Founded 2018.
Team size: 50-130.

## The hard parts

- Low-latency multi-party WebRTC audio and video streaming architecture (SFU scaling)
- Real-time WebSocket synchronization across thousands of concurrent chat rooms
- Geospatial indexing and spatial querying for location-based group discovery
- Cross-platform state management between React Native mobile clients and web UI

## How to vibe code Geneva

### Prerequisites

- Node.js (free): Runtime environment for building and executing the full-stack web application.
- GitHub (free): Version control and repository hosting to integrate with AI coding tools and deployment platforms.
- Supabase Account (free): Managed PostgreSQL database with built-in real-time subscriptions and authentication.

### Recommended AI tools

- Claude Code: Autonomous terminal agent capable of planning and executing complex multi-file application scaffolding and debugging.
- Cursor: AI-native code editor ideal for iterative UI component styling and multi-file code reviews.

### Stack

- Frontend: Next.js with Tailwind CSS and shadcn/ui components
- Backend: Next.js API routes and Server Actions
- Database: Supabase PostgreSQL with PostGIS extensions for geospatial queries
- Auth: better-auth
- Payments: None (Free consumer platform)
- Other: LiveKit for WebRTC audio and video room capabilities, Mapbox for map-based local group discovery

### Hosting

- Vercel (Hosting the Next.js frontend and serverless API endpoints): $0-20/mo
- Supabase (PostgreSQL database hosting, real-time channels, and asset storage): $0/mo

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js project with Tailwind CSS, shadcn/ui, and configure the Supabase database schema supporting users, groups, channels, and membership roles.

```
Scrape together a new Next.js project using App Router, TypeScript, Tailwind CSS, and shadcn/ui. Set up a Supabase client configuration file and write a comprehensive SQL migration script for a community platform. The schema must include tables for users, groups, group_memberships (with roles like admin, moderator, member), rooms (categorized as chat, audio, forum, broadcast, video), messages, and events. Include foreign key constraints, indexes on foreign keys, and Row Level Security (RLS) policies ensuring only group members can read messages or rooms.
```

2. **Authentication & User Profiles** — Implement authentication flows using better-auth integrated with the Supabase PostgreSQL database.

```
Integrate better-auth into the Next.js application, hooking it up to our Supabase PostgreSQL database. Create secure sign-up, sign-in, and password reset pages with form validation using Zod and React Hook Form. Build a user profile settings page where users can update their avatar, display name, bio, and location (city/coordinates) for local discovery. Ensure user sessions persist correctly across server and client components.
```

3. **Group Creation & Discovery Feed** — Build group creation workflows and a discovery interface allowing users to browse and filter groups by location and category.

```
Build a group creation wizard allowing users to set a group name, description, category, cover image, and membership requirement settings (such as approval questionnaires). Next, build a discovery dashboard page featuring a searchable grid of public groups. Implement location-based filtering using city tags and geospatial distance calculations against stored user/group coordinates. Include a request-to-join modal that triggers membership questionnaires for gated groups.
```

4. **Real-Time Chat & Forum Rooms** — Develop the core community communication interface featuring real-time chat rooms with threaded replies and forum discussion boards.

```
Create a rich group workspace layout with a sidebar listing channels categorized by type (chat, forum, audio, video, broadcast). Implement the real-time chat room view utilizing Supabase Realtime subscriptions for instant message delivery, typing indicators, reactions, file attachments, and threaded replies. Additionally, build a forum room component that displays long-form discussion posts with rich text formatting, sorting by newest and most popular, and comment threads.
```

5. **Live Audio, Video & Broadcast Rooms** — Integrate LiveKit WebRTC client SDK to handle multi-party audio rooms, video hangouts, and broadcast streaming.

```
Implement room interfaces for audio rooms (Clubhouse style speaker/listener grid), video rooms (up to 16 participants grid view), and broadcast rooms (hosts on stage with viewers watching). Integrate the LiveKit client SDK to handle token generation, media publishing/subscribing, microphone/camera toggling, and participant audio/video grid layouts. Handle connection errors and graceful reconnections cleanly within the React UI.
```

6. **Events Calendar & RSVPs** — Build a centralized group events calendar with RSVP management, event details, and reminder scheduling.

```
Build a centralized events calendar view for groups that displays upcoming meetups in a monthly calendar layout and a chronological list. Create an event creation form allowing organizers to set event titles, dates, locations (physical addresses or virtual room links), descriptions, and attendee limits. Implement RSVP functionality allowing members to mark themselves as attending or interested, tracking attendee lists and displaying real-time counts.
```

7. **Polish, Error Handling & Deployment** — Conduct end-to-end testing, error boundary setup, responsive mobile styling polish, and deployment to Vercel.

```
Perform a comprehensive code review and polish pass across all pages to ensure responsive mobile and desktop layouts. Add React error boundaries, loading skeletons for asynchronous data fetches, and toast notifications for user actions. Verify environment variables for Supabase and LiveKit integration, and prepare the project for deployment on Vercel with clean build outputs.
```

### Cost vs paying

**Starting costs (one-time):**

- Custom Domain: $12/yr
- Total: ~$12 one-time

**Ongoing costs (monthly):**

- Vercel Hobby / Pro: $0-20/mo
- Supabase Free Tier: $0/mo
- LiveKit Cloud Free Tier: $0/mo
- Total: ~$0-20/mo

- Paying for the SaaS instead: $0 (Consumer Free Tier)
- Build time: 120-160 hours
- AI tool credits: $20 (Claude Pro)
- Break-even: Never (clone is for learning)

## Sources

- [Geneva Official Website](https://geneva.com)
- [Bumble Inc. Announces Acquisition of Geneva](https://www.nasdaq.com)
- [The Fix Media - The Comeback of Appointment Internet: Geneva Review](https://thefixmedia.com)