How to vibe codeGeneva
The online place to find your offline people
geneva.com ↗Community & Communication
The verdict: can you vibe code Geneva?
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.
Estimated effort: 3-5 months of part-time work for a stripped-down text and event subset
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
Founded
2018
Raised
$26.5M
Team
50-130
Cheapest paid tier
$0
What Geneva 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 from Base Partners, Li Jin
The hard parts of vibe coding Geneva
- 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 vibecode Geneva
Prerequisites
Node.jsfree
Runtime environment for building and executing the full-stack web application.
GitHubfree
Version control and repository hosting to integrate with AI coding tools and deployment platforms.
Supabase Accountfree
Managed PostgreSQL database with built-in real-time subscriptions and authentication.
AI coding tools
Recommended 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 |
Build guide
01Project 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.02Authentication & 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.03Group 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.04Real-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.05Live 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.06Events 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.07Polish, 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 for Geneva
What will you build it with?
Starting total with Claude Code$0 one-time
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 Geneva
$0 (Consumer Free Tier)
Your time to build
120-160 hours
AI tool credits
$20 (Claude Pro)
Break-even
Never (clone is for learning)
Vibe code Geneva: FAQ
- Can you vibe code Geneva yourself?
- Don't bother — 25/100 vibecodeable. 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.
- How long does it take to vibe code Geneva?
- 3-5 months of part-time work for a stripped-down text and event subset — roughly 120-160 hours of hands-on time with an AI coding agent.
- How do you build your own Geneva?
- Scoped to personal use: Next.js with Tailwind CSS and shadcn/ui components on the front, Next.js API routes and Server Actions behind it, Supabase PostgreSQL with PostGIS extensions for geospatial queries for data. Follow the 7-step build guide on this page — each step has a paste-ready prompt for an AI coding agent.
- How do you code your own Geneva without being an expert?
- Use an AI coding tool (Claude Code or Cursor) and work in small steps: scaffold, data model, core screens, then deploy. Realistic effort: 3-5 months of part-time work for a stripped-down text and event subset. The prompts on this page are written so the AI does the heavy lifting.
- How much does it cost to vibe code Geneva instead of paying?
- About ~$12 one-time to start and ~$0-20/mo to run, versus $0 (Consumer Free Tier) for Geneva. Break-even: Never (clone is for learning).
- What stack should you use to vibe code Geneva?
- Next.js with Tailwind CSS and shadcn/ui components; Next.js API routes and Server Actions; Supabase PostgreSQL with PostGIS extensions for geospatial queries; plus LiveKit for WebRTC audio and video room capabilities, Mapbox for map-based local group discovery.