NearPass — The Local Experience Marketplace for People Who Want to Do Something This Weekend Without a 3-Hour Research Session
OpenTable handles dinner reservations and Airbnb Experiences charges 20% commission — but the pottery class instructor running Saturday workshops out of their studio still has empty slots because their only marketing is an Instagram post that disappeared in 48 hours. NearPass is a pay-what-you-book local experience marketplace with zero subscription fee for hosts and a 5% take rate that makes listing a no-brainer.
Difficulty
intermediate
Category
Marketplace
Market Demand
High
Revenue Score
7/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
5/10
What is it?
Local experience hosts — pottery instructors, guided foragers, cocktail class teachers, urban sketching tour guides — have no low-friction booking and payment layer built for sub-$100 experiences. Airbnb Experiences charges 20% and requires 5+ reviews before listing. Eventbrite charges 3.7% plus $1.79 per ticket and is built for conferences not intimate workshops. NearPass lets a host list an experience in 4 minutes, set a max group size and recurring schedule, and accept Stripe payments. Guests browse by city and category, book and pay in 2 clicks, and receive a location PIN 24 hours before the experience. The 5% platform fee is added at checkout so hosts keep 95%. Buildable right now because Stripe Connect handles host payouts natively, Supabase handles geolocation queries, and the marketplace mechanics are well-understood Next.js patterns.
Why now?
Post-pandemic demand for in-person local experiences has sustained above 2019 levels and Airbnb's decision to tighten Experiences listing requirements in the current year has left thousands of independent instructors without a credible booking layer.
- ▸Host onboarding with 4-minute listing flow: experience title, description, photos, schedule, group size, and Stripe Connect payout setup.
- ▸Geolocation browse page showing experiences within 10 miles of the visitor's city with category filters.
- ▸Two-click guest booking with Stripe checkout, automatic host payout via Connect, and location PIN delivery 24h before experience.
- ▸Recurring schedule builder so a host can list every Saturday 10am as a single bookable slot rather than re-listing each week.
Target Audience
Local experience hosts in cities of 100k+ population (pottery, cooking, nature, art, fitness) and urban residents aged 25-40 seeking weekend activities — 500,000 independent experience hosts in the US alone.
Example Use Case
Sarah runs a Saturday morning sourdough workshop for 8 people at $65 per person — she lists on NearPass in 4 minutes, fills her next 3 workshops without posting on Instagram, and receives $1,560 deposited to her bank account by Monday minus a $78 platform fee.
User Stories
- ▸As a pottery instructor, I want to list my Saturday workshop with a recurring weekly schedule and receive payment directly without a 20% commission cut, so that I fill empty seats profitably.
- ▸As a city resident, I want to browse experiences within 10 miles of my neighborhood this weekend filtered by category, so that I can find and book something to do in under 5 minutes.
- ▸As a host, I want to automatically receive my payout 2 days after each experience without logging into a dashboard, so that I can focus on teaching rather than chasing payments.
Done When
- ✓Host listing: done when a host completes the 4-step onboarding form and their experience appears on the city browse map within 60 seconds.
- ✓Guest booking: done when a guest completes Stripe checkout and receives a booking confirmation email with experience details within 2 minutes.
- ✓Host payout: done when a completed booking triggers an automatic Stripe Connect transfer visible in the host's connected bank account within 2 business days.
- ✓Location PIN delivery: done when an automated Resend email containing the exact meeting point address fires to the guest exactly 24 hours before the scheduled experience start time.
Is it worth building?
5% take rate on $75 average booking x 300 bookings/month = $1,125 MRR at month 4. Requires 30 active hosts and 10 bookings each per month. Honest assumption: 2 cities, aggressive host onboarding via in-person outreach.
Unit Economics
CAC: $40 per host via in-person outreach (10 host visits per day, 20% conversion). LTV per host: $180/year at 24 bookings/year x $75 average x 5% take rate = $90 platform revenue per host per year. Gross margin: 72% after Stripe fees.
Business Model
Transaction fee
Monetization Path
5% platform fee added at Stripe Connect checkout. No host subscription. Optional $9/month featured listing upgrade.
Revenue Timeline
First dollar: week 4 via first real booking. $1k MRR: month 5. $5k MRR: month 12 with 2 cities live.
Estimated Monthly Cost
Supabase: $25, Vercel: $20, Mapbox: $15, Resend: $10, Stripe Connect fees: variable (2.9% + $0.30 per transaction, absorbed in 5% take rate), Cloudflare R2: $5. Total: ~$75/month at launch.
Profit Potential
$5k-$15k MRR realistic at 12 months if two cities reach critical mass of 50+ active hosts.
Scalability
Medium — requires city-by-city host supply bootstrap but scales horizontally once supply-demand balance is proven in one city.
Success Metrics
Month 1: 20 active hosts in one city. Month 3: 150 bookings. Month 6: 400 bookings/month, 2 cities live.
Launch & Validation Plan
List 10 experiences manually as ghost host accounts, drive 50 friends to browse page, count how many attempt to book — if 5+ click book on a real listing, validate payment and onboard real hosts.
Customer Acquisition Strategy
First hosts: visit 10 local studios, cooking schools, and outdoor guide businesses in person with a printed one-pager — explain zero subscription fee and 5% take rate. First guests: Instagram local hashtag targeting, Nextdoor posts in target city neighborhoods, r/[CityName] subreddits. Ongoing: SEO on 'things to do in [city]' long-tail keywords.
What's the competition?
Competition Level
Medium
Similar Products
Airbnb Experiences charges 20% commission and gatekeeps listing approval. Eventbrite is built for large events and charges per-ticket fees that hurt sub-$100 intimate workshops. Peek Pro targets established activity operators with $200+/month subscriptions, not independent instructors.
Competitive Advantage
Zero subscription fee for hosts (vs Airbnb Experiences 20% and Eventbrite per-ticket fee), 4-minute listing flow, and recurring schedule support built for workshop-style formats not one-off events.
Regulatory Risks
Stripe Connect requires KYC for host payouts — Stripe handles this natively. Experiences involving food, alcohol, or outdoor activities may require host liability insurance disclosure. GDPR compliance for EU expansion. No licensing required for the platform itself.
What's the roadmap?
Feature Roadmap
V1 (launch): host listing, city browse map, Stripe Connect checkout, recurring schedule, location PIN email. V2 (month 2-3): host reviews, search and category filters, host dashboard analytics. V3 (month 4+): mobile-optimized PWA, gift card purchases, multi-city host accounts.
Milestone Plan
Phase 1 (Week 1-2): schema, Stripe Connect, host onboarding, listing flow functional locally. Phase 2 (Week 3-4): city browse map, booking flow, location PIN email, deployed to prod. Phase 3 (Month 2): 20 hosts live in one city, first 50 real bookings processed.
How do you build it?
Tech Stack
Next.js, Supabase with PostGIS for geolocation, Stripe Connect for host payouts, Resend for booking confirmations, Mapbox for city map browse view, Cloudflare R2 for experience photos — build with Cursor for backend and Stripe Connect logic, Lovable for listing and browse UI
Suggested Frameworks
-
Time to Ship
4 weeks
Required Skills
Stripe Connect marketplace payments, Supabase PostGIS geolocation queries, Next.js dynamic routing for city/category pages.
Resources
Stripe Connect marketplace docs, Supabase PostGIS extension docs, Mapbox GL JS docs, Next.js App Router docs.
MVP Scope
app/page.tsx (city browse hero), app/[city]/page.tsx (city experience grid), app/experience/[id]/page.tsx (booking page), app/host/onboard/page.tsx (host listing flow), app/api/booking/route.ts (Stripe Connect checkout), app/api/payout/route.ts (Stripe Connect transfer), app/api/experiences/route.ts (PostGIS location query), lib/db/schema.ts (experiences, bookings, hosts, schedules tables), lib/stripe.ts (Connect helpers), .env.example
Core User Journey
Browse city map -> click experience -> see group size and schedule -> pay via Stripe -> receive confirmation and location PIN -> attend experience -> host receives payout automatically.
Architecture Pattern
Guest browses -> PostGIS radius query returns nearby experiences -> Stripe Connect checkout initiated -> payment captured -> host payout scheduled T+2 days -> Resend sends guest location PIN 24h before experience -> booking record updated to attended.
Data Model
Host has many Experiences. Experience has many ScheduleSlots. ScheduleSlot has many Bookings. Booking belongs to one Guest and one ScheduleSlot. Host has one StripeConnectAccount.
Integration Points
Stripe Connect for host payouts and guest checkout, Supabase PostGIS for geolocation queries, Mapbox GL JS for city browse map, Resend for booking confirmations and location PINs, Cloudflare R2 for experience photo storage.
V1 Scope Boundaries
V1 excludes: reviews and ratings, host messaging system, gift cards, group discount codes, mobile app, multi-city dashboard for hosts with locations in multiple cities.
Success Definition
A host the founder has never met lists an experience, fills it with strangers, receives a payout, and re-lists for the following week without any founder involvement.
Challenges
Marketplace cold start is the hardest non-technical problem in software — the browse page looks empty without hosts and hosts do not list without guests. Every city requires manual host recruitment before launch, which means founder time in-person, not in Cursor. Finding first 10 paying hosts takes longer than building the marketplace — budget 3x more time for host outreach than development.
Avoid These Pitfalls
Do not launch in multiple cities simultaneously — critical mass in one city before expanding or both cities look empty. Do not build a review system in v1 — it adds 2 weeks and looks empty with no bookings yet. Finding first 10 host listings requires in-person outreach, not just an email — this takes more founder time than expected.
Security Requirements
Supabase Auth with Google OAuth for both hosts and guests, RLS isolating host data by user ID, Stripe webhook signature verification on all payment events, input sanitization on all listing fields, GDPR data deletion endpoint for guest booking history.
Infrastructure Plan
Vercel for Next.js frontend and API routes, Supabase for Postgres with PostGIS, Cloudflare R2 for experience photos, GitHub Actions for CI, Sentry for error tracking, Vercel Analytics for city-level traffic.
Performance Targets
City browse page with 50 listings loads under 2s, PostGIS radius query returns under 200ms, Stripe checkout redirect under 1s, 500 DAU and 200 bookings/day at launch scale target.
Go-Live Checklist
- ☐Security audit complete.
- ☐Stripe Connect payout flow tested end-to-end with real bank account.
- ☐Sentry error tracking live.
- ☐PostGIS index verified under query load.
- ☐Custom domain with SSL configured.
- ☐Privacy policy and terms of service published.
- ☐10 real host listings live in launch city.
- ☐Rollback plan: disable bookings and refund via Stripe dashboard.
- ☐Launch post drafted for r/[CityName] and local Instagram.
First Run Experience
On first run: 8 seeded demo experiences in a fictional city (Maplewood) are pre-loaded with photos, descriptions, and available Saturday slots. User can immediately browse the map, click an experience, and walk through the full booking flow in test mode using Stripe test card 4242 4242 4242 4242. No real money is charged and no host account is needed to see the full guest journey.
How to build it, step by step
1. Define Supabase schema: hosts, experiences, schedule_slots, bookings, stripe_accounts tables with PostGIS point column on experiences. 2. Enable PostGIS extension in Supabase and set up location index. 3. Scaffold Next.js app with Supabase Auth for both host and guest roles. 4. Build host onboarding flow with Stripe Connect OAuth using v0 for UI components. 5. Build experience listing form with photo upload to Cloudflare R2 and recurring schedule builder. 6. Build city browse page with Mapbox GL JS map and PostGIS radius query API route. 7. Build experience detail page with group size availability and Stripe Connect checkout session creation. 8. Implement Stripe webhook handler for payment confirmed -> host payout scheduled -> Resend location PIN email. 9. Build host dashboard showing upcoming bookings and payout history. 10. Verify: create a test host account, list an experience, book it as a guest with Stripe test card, confirm payout appears in Stripe Connect dashboard and location PIN email arrives.
Generated
June 1, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.