Fundema — AI-Powered Event Workspace
A real-time collaborative workspace for live event teams. Fundema replaces spreadsheets, notebooks, and fragmented tools with a single shared workspace — from pre-event planning through on-the-ground execution to post-event follow-up.
Built for H0: Hack the Zero Stack — Track 2: Monetizable B2B App.
Current Status
Fundema is unfortunately still in development however it has been tested at Vercel Ship London (June 2026) to manage field operations for a team of three across roles.
What's Built
| Area | Status |
|---|---|
| Event workspace (schedule, map, speakers, team, leads, notes, session claiming) | ✅ Complete |
| AI lead enrichment (Gemini 2.5 Flash — background, talking points, opportunity score) | ✅ Complete |
| AI voice transcription (Gemini 2.5 Flash, speaker-labelled) | ✅ Complete |
| AI speaker enrichment from LinkedIn/GitHub (Gemini 2.5 Flash) | ✅ Complete |
| AI team-specific talking points (Gemini 2.5 Flash, cached per team with hash freshness) | ✅ Complete |
| AI business card OCR (Gemini 2.5 Flash — name, title, company, phone, email, website) | ✅ Complete |
| AI floor plan detection (Gemini 2.5 Pro for parsing, 2.5 Flash for batch ingestion) | ✅ Complete |
| Interactive SVG multi-floor map editor (per-floor background images, polygon rooms, undo/redo) | ✅ Complete |
| Venue management (multi-location profiles, geo-coordinates, contact info) | ✅ Complete |
| Invite code system (event codes, team codes, organiser codes with free credits/grants) | ✅ Complete |
| Role-based onboarding (venue / organiser / attendee with tier assignment) | ✅ Complete |
| Stripe billing (event fees, AI credit packs, venue Pro subscriptions) | ✅ Complete |
| Bilingual UI (English / Welsh — 78 strings per language, locale persisted in localStorage) | ✅ Complete |
| Super admin panel (user mgmt, pricing, invite codes, branding, orphan cleanup) | ✅ Complete |
| Event payment gating (pending_payment status, Stripe checkout + free code redemption) | ✅ Complete |
| Schema migration endpoint (GET/POST /api/migrate for Vercel deploys) | ✅ Complete |
| Responsive design (mobile + desktop dashboard) | ✅ Complete |
| Team content blocks (rich text, team profiles, pitch cards, ventures, rosters) | ✅ Complete |
What's Coming Next
| Feature | Priority | Notes |
|---|---|---|
| Attendee networking | High | In-app messaging, meeting scheduling, digital business card exchange |
| Post-event analytics | High | Per-event ROI dashboard — leads captured, enriched, converted. Session attendance tracking |
| Integrations (Zapier, CRM) | Medium | HubSpot and Salesforce lead sync, Google Calendar sync, Slack notifications |
| Venue booking / CRM | Medium | Direct venue availability searches and booking requests from organiser workspace |
| Offline / PWA support | Medium | Service worker caching for offline schedule and map access |
| Event mobile app (native) | Low | White-label native apps for venues to offer attendees |
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js 16.2.6 (App Router, React 19) |
| Language | TypeScript 5.7 (strict) |
| Styling | Tailwind CSS v4.2 + shadcn/ui v4.8 + motion v12.40 + lucide-react icons |
| Database | Amazon Aurora PostgreSQL (41 tables, Drizzle ORM v0.45.2, IAM auth via RDS Signer) |
| Auth | Auth0 v4.22 (social login, SSO, MFA, org auto-enrollment via Microsoft 365 / Google Workspace) |
| AI | Vercel AI SDK v6 + @ai-sdk/google v3 — Gemini 2.5 Flash (OCR, enrichment, talking points, transcription), Gemini 2.5 Pro (floor plan parsing) |
| Payments | Stripe Checkout v22 + Webhooks, configurable prices in DB |
| Storage | Vercel Blob v2 (image uploads with base64 fallback) |
| Deployment | Vercel (serverless functions, edge middleware) |
Architecture
Vercel (Edge)
├── Next.js 16 App Router + React 19
├── Server Actions (114 — type-safe DB operations)
├── API Routes (Stripe, Migrate, Upload, Transcribe, Enrich, OCR, Floor Plan, Pricing Tiers, Speaker Intel)
└── Drizzle ORM v0.45.2
│
▼ (TLS / IAM auth)
Amazon Aurora PostgreSQL (41 tables)
│
├── events, speakers, sessions, leads, notes, session_claims
├── venues, venue_locations, venue_maps, venue_map_floors, venue_map_rooms
├── floor_plan_cache, floor_cache_floors, floor_cache_rooms
├── teams, team_members, event_teams, event_members
├── team_profiles, pitch_cards, ventures, team_blocks
├── team_profile_highlights, pitch_card_points, venture_tags
├── speaker_topics, speaker_links, speaker_intel
├── session_speakers, session_talking_points
├── team_talking_points, lead_tags, lead_tag_assignments, lead_talking_points
├── pricing_tiers, pricing_tier_features, prices, event_purchases
└── invite_codes, user_roles, organiser_events
Database: 41 Tables (Fully Normalized)
Every relationship is enforced at the database level with foreign keys — no JSONB arrays. Composite primary keys on event-scoped entities (speakers, sessions, etc.) enable consistent ON DELETE CASCADE throughout. Org-connected teams (365/GWorkspace) persist when empty; manually-created teams auto-delete when the last member leaves.
Schema categories:
- Event & Membership:
events,event_teams,event_members,organiser_events - Teams:
teams,team_members,team_profiles,team_profile_highlights,team_blocks,team_talking_points,pitch_cards,pitch_card_points,ventures,venture_tags - Content:
speakers,speaker_topics,speaker_links,speaker_intel,sessions,session_speakers,session_talking_points,session_claims - Leads:
leads,lead_tags,lead_tag_assignments,lead_talking_points - Notes:
notes - Venue & Maps:
venues,venue_locations,venue_maps,venue_map_floors,venue_map_rooms,floor_plan_cache,floor_cache_floors,floor_cache_rooms - Pricing & Payments:
pricing_tiers,pricing_tier_features,prices,event_purchases - Auth & Invites:
user_roles,invite_codes
Getting Started
Prerequisites
- Node.js 20+
- A PostgreSQL database (Neon or Aurora)
- Auth0 tenant
- Stripe account (for billing features)
- Google Generative AI API key (for all AI features — OCR, enrichment, transcription, floor plan detection)
Setup
Clone the repo:
git clone https://github.com/BigXee/v0-hynt-digital-event-app.git cd v0-hynt-digital-event-appInstall dependencies:
npm installCreate
.env.localfrom the template below and fill in the required variables:AUTH0_DOMAIN= AUTH0_CLIENT_ID= AUTH0_CLIENT_SECRET= AUTH0_SECRET= AUTH0_MANAGEMENT_CLIENT_ID= AUTH0_MANAGEMENT_CLIENT_SECRET= DATABASE_URL= APP_BASE_URL=http://localhost:3000 GOOGLE_GENERATIVE_AI_API_KEY= STRIPE_SECRET_KEY= NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= STRIPE_WEBHOOK_SECRET= SUPER_ADMIN_EMAILS=admin@example.comRun database migrations:
npm run db:migrate
- Seed the database (optional):
npm run db:seed
- Start the development server:
npm run dev
Available Scripts
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Production build |
npm run start |
Start production server |
npm run db:generate |
Generate Drizzle migration |
npm run db:migrate |
Apply migrations |
npm run db:push |
Push schema to database |
npm run db:studio |
Open Drizzle Studio |
npm run db:seed |
Seed sample data |
Applying Schema Changes in Production
On Vercel, schema changes are applied by hitting the migration endpoint after deploy:
curl https://fundema-app.vercel.app/api/migrate
This runs any pending Drizzle migrations from the drizzle/ directory against your database.
Key Routes
| Path | Description |
|---|---|
/ |
Public landing page |
/home |
Authenticated home / dashboard |
/events/[eventId] |
Event workspace |
/dashboard/[role] |
Role-specific dashboard |
/onboarding/role |
Role selection on first sign-in |
/api/migrate |
Schema migration (GET + POST) |
/api/stripe/* |
Stripe checkout sessions |
/api/enrich |
AI lead enrichment |
/api/ocr |
Business card OCR |
/api/transcribe |
Voice transcription |
/api/parse-floorplan |
AI floor plan detection |
/api/ingest-floorplan |
AI floor plan ingestion (batch room creation) |
/api/upload |
File upload to Vercel Blob |
/api/pricing-tiers |
Pricing tier listing |
/api/enrich-speaker |
AI speaker intelligence |
Team
- Marley Plant — Privacy & Deployment Lead
- Zelig Northover-Barnes — Strategy & Client Lead
- Simon Hedley — Strategic Advisor
Built for H0: Hack the Zero Stack — June 2026
Built With
- amazon-web-services
- nextjs
- postgresql
- shadcn
- tailwind
- typescript
- v0
Log in or sign up for Devpost to join the conversation.