A full-stack event management platform that actually does everything β from creating and selling tickets to real-time networking, QR check-ins, and organization-level analytics.
Built with Next.js 15, React 19, Supabase, and a whole lot of Framer Motion β¨
EventFlow is a multi-tenant event management platform where organizations can create, manage, and sell tickets for events β and attendees can discover, book, and engage with them in real time.
Think of it as your own Eventbrite, but with a modern stack, gorgeous UI, and features you'd actually want to use: live polls, networking chat, QR code check-ins, coupon engines, waitlists, and more.
- Every event belongs to an organization β teams can collaborate on event creation and logistics
- Dedicated Event Spaces (slug-based custom hubs) for each org
- Step-by-step onboarding wizard for new organizations
- Role-based access: Global Admin β Org Admin β Team Member β Attendee
- Full event builder with sessions, agendas, speakers, and venue management
- Smart tagging and categorization for discoverability
- Cover image uploads with drag-and-drop
- Venue management with lat/long support
- Multiple ticket tiers β Early Bird, VIP, General Admission
- Real-time inventory tracking with automatic "Sold Out" states
- Coupon & discount engine with usage limits and expiration
- Waitlist system β captures interest when events sell out
- QR code tickets β every booking gets a scannable token
- Mobile check-in β staff can scan and verify attendees on-site
- Live polls during events for real-time attendee feedback
- Networking hub with direct messaging between attendees
- Review system β star ratings, written reviews, "Helpful" votes, and moderation
- Follow organizations, events, or categories
- Social profiles with badges, bio, and activity history
- Real-time toast notifications + persistent notification center
- Scheduled reminders (24h before events, customizable)
- Granular notification preferences per user
- Built-in email campaign composer for org admins
- Admin command center β global stats, user growth, revenue
- Org-level dashboard β event stats, ratings, revenue breakdown
- Trending scores based on views, bookings, and ratings
- Audit logging for admin actions and org activities
- Automatic invoice generation for subscriptions and purchases
- Subscription plans β Free, Pro, Enterprise
- Refund management workflow for users and admins
- Built with Radix UI + Tailwind CSS + Framer Motion
- Glassmorphism, grainy textures, spotlight effects, 3D hover cards
- Bento grids, infinite moving carousels, animated border gradients
- Simplex noise-driven dynamic backgrounds
- Full dark mode with system detection and smooth transitions
| Layer | Tech |
|---|---|
| Framework | Next.js 15.1 (App Router, Turbopack) |
| UI | React 19, Tailwind CSS, Radix UI, Framer Motion |
| Backend | Supabase (Postgres, Auth, Realtime, Storage, Edge Functions) |
| Language | TypeScript (strict mode) |
| Forms | React Hook Form |
| Icons | Lucide React |
| Dates | date-fns |
| Deployment | Netlify / Vercel (static export) |
event-flow/
βββ public/ # Static assets
βββ src/
β βββ app/ # Next.js App Router pages
β β βββ admin/ # Admin dashboard & management
β β βββ auth/ # Login, register, password reset
β β βββ customer/ # Attendee-facing pages
β β βββ events/ # Event browsing & details
β β βββ organization/ # Org dashboard, settings, billing
β β βββ notifications/ # Notification center
β β βββ social/ # Social profiles & follows
β β βββ globals.css # Global styles & theme tokens
β βββ components/ # Reusable React components
β β βββ ui/ # Base UI primitives (shadcn/ui)
β βββ contexts/ # Auth, Theme, and other providers
β βββ hooks/ # Custom React hooks
β βββ lib/ # Supabase client, API utils, helpers
βββ supabase/ # Migrations, functions, schema
βββ conductor/ # Orchestration scripts
βββ scripts/ # Build & utility scripts
βββ netlify.toml # Deployment config
βββ package.json
- Node.js β₯ 18
- A Supabase project (free tier works)
git clone <repository-url>
cd event-flow
npm installCreate a .env.local file in the root:
NEXT_PUBLIC_SUPABASE_URL=your_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key- Create a new project at supabase.com
- Run the migrations from
supabase/migrations/in the SQL Editor - Enable Row Level Security (RLS) policies
- Create storage buckets for event images
- Configure auth providers and redirect URLs
npm run devOpen http://localhost:3000 and you're live π
npm run dev # Start dev server (Turbopack)
npm run build # Production build
npm run build:static # Static export build
npm run start # Start production server
npm run lint # Run ESLintThe project supports static export, so you can deploy the out/ folder to pretty much anywhere:
- Netlify (configured via
netlify.toml) - Vercel
- GitHub Pages
- AWS S3 + CloudFront
- Any static hosting
npm run build:static
# Deploy the `out/` directory- Row Level Security (RLS) β database-level policies ensuring data isolation between orgs
- Supabase Auth β JWT-based authentication with social login support
- Role-based access control β enforced at both UI and database layers
- Automated triggers β backend automation for profile creation, follower syncing, and stat updates
- Fork the repo
- Create a feature branch:
git checkout -b feature/your-idea - Make your changes
- Open a PR with screenshots if it's a UI change
We use TypeScript strict mode, ESLint, and conventional commits.
- Next.js for the framework
- Supabase for the backend
- shadcn/ui for the component primitives
- Framer Motion for making everything feel alive