Founder Communities
Curated IRL founder communities in NYC and Cambridge — intimate dinners, meaningful collisions, and a custom-built community OS (marketing site, member portal, admin CRM, and a dozen integrations) that I designed and ship as the sole engineer.
Public site & blog
Next.js 16 marketing site with the public landing, an apply funnel, and event microsites (NYSki, NYSea). Blog posts come from Beehiiv's Posts API with cache-tag revalidation so a post.sent webhook updates the site instantly.
Members-only dashboard
Authenticated portal for paid members — home dashboard, member directory, journal, billing, and event history. Wrapped in a custom PortalShell with QueryProvider + AuthProvider.
Operator dashboard
An entire internal CRM at /overview · /events · /contacts · /applications · /payments · /memberships · /emails · /campaigns · /observability. Replaces the Notion + Airtable + Zapier sprawl I lived in for years.
Application & interview funnel
Full applicant pipeline — submit, schedule via Cal.com, interview recording + transcript, dinner invite, reminder, rejection, or membership initiation. Each stage is a single API endpoint that fans out the right emails and Stripe links.
Luma-synced event ops
Luma is the source of truth for events and guest registrations. A full-sync script + real-time webhooks pull every event/guest into Supabase; guest approvals write back to Luma via a /api/guest-status proxy.
Templated transactional + campaign email
Resend for delivery; in-app template editor with previews and test-send; every send logged to email_sends so the admin can audit deliveries from inside the dashboard rather than chasing Resend's UI.
Stripe checkout & memberships
Stripe Checkout sessions for dinner tickets and memberships. Webhook handler reconciles customers, subscriptions, and payments back into Supabase; a backfill script imports existing Stripe history.
Luma ↔ Beehiiv ↔ Stripe ↔ Notion
Every system that already had data got a bidirectional sync. Backfill scripts for each (Beehiiv subscribers, Stripe customers, Cal.com bookings, Resend history, Notion contacts), and webhooks for forward sync.
Inngest for everything async
Inngest handles the work that doesn't belong on a request — sync jobs, retries, scheduled reminders, idempotent backfills. Local dev runs against the Inngest dev server.
Why founder communities
I really value the people I spend time with. There's something important about finding people at a similar stage — a stage ahead, a stage behind — who share your values: ambition, creativity, confidence, willingness to make mistakes, and integrity. We wanted to create spaces where a small group of high-quality individuals could actually get to know each other over time.
There's also a bigger thesis. In an AI-first world where we're spending more time inside our computers and AI systems, there will be increased value placed on coming together in real, physical spaces with other humans. The future isn't another feed. It's curated, intentional, in-person communities.
NYC Founders Club
The wider network has grown to 5,000–6,000 individuals, with a core group of around 50 paid members. We host members-only dinners weekly, larger membership-wide gatherings, and 'founders and friends' events — including our annual tradition of buying out a ski mountain every February for 200 founders.
We occasionally work with sponsors like JP Morgan, Rho, and Brex, but the community always comes first.


Cambridge Founders Club
When I moved to Cambridge for MIT, I took the same model and applied it with a lighter touch. The community focuses on connecting builders across MIT and Harvard — hosting dinners and creating spaces where people can genuinely get to know each other.
The community OS — frontend
Next.js 16 App Router with route groups. (marketing) is the public site, the apply funnel, and event microsites. (portal) is the authenticated members surface — dashboard, directory, journal, billing — wrapped in PortalShell with QueryProvider + AuthProvider. (admin) is the operator CRM, gated by middleware that requires both auth and admin_users membership; non-admins get redirected to /dashboard.
Public blog at /blog is powered by Beehiiv's Posts API with Next cache tags + ISR. A beehiiv-blog webhook calls revalidateTag() on post.sent and post.updated so newly-published posts go live without a redeploy. HTML is sanitized via sanitize-html and rendered through @tailwindcss/typography.


The admin panel
The admin CRM is where the marketplace gets run. The applications screen is a stage strip across the top (one cell per ApplicationStage enum value, with live counts), a filterable table of applicants, and a right-side detail panel that slides in when a row is selected — pipeline visualization, interview notes, and the action stack (send dinner invite, send reminder, mark not a fit).
Event night is its own surface: a guest table on the left (with inline approve/decline for pending guests) and a 2x2 seating chart on the right that you can drag guests into. Every admin action fires a Convex mutation that fans out to the right Stripe / Resend / Luma side effects.


The community OS — backend & integrations
Supabase is the database. Every external system that already had data got a sync: Luma (events + guests), Beehiiv (subscribers + posts), Stripe (customers, subscriptions, payments), Cal.com (interview bookings), Resend (sent emails), Notion (legacy contact + application import).
Forward sync is webhooks; backfills are idempotent scripts in /scripts. Inngest handles the work that doesn't belong on a request — sync jobs, retries, scheduled reminders. The application funnel is its own subsystem: each stage (invite-interview, send-dinner-invite, send-reminder, send-rejection, initiate-membership, recording-url, transcript) is a single endpoint that fans out the right side-effects.
I've been the sole engineer through the entire build. Replacing the prior Zapier + Tally + Framer + Notion + Airtable patchwork with one cohesive system is what made the community model actually scalable.
The product is the room
The platform exists so the room can exist. Members-only dinners, larger gatherings, NYSki, NYSea, and the Cambridge Founders Club — the software's only job is to get the right people into the right room.






The brand on the public surface
Cream paper, cadmium-red Italic accents, sticker badges with hand-tape feel, and a calendar that doubles as the editorial backbone. Built as a self-contained HTML prototype before being ported into the production Next.js app.





Where the marketplace runs
Two of the densest screens in the admin: the applications pipeline (queue + selected-row detail panel) and event-night ops (guests + drag-to-seat chart). Both built on a shared design system — cadmium-on-cream, Instrument Serif italics for page titles, Inter Tight for tables.


The member-facing surface
Calmer, more editorial. Paper background, minimal top nav, serif headlines with italic punch words. Three foundational screens: home (your next dinner), the directory (142 founders, 4 cohorts), and onboarding (the 60-second intro that lands on your nametag).


