Vendor and stall management for market organizers

B2BWeb1 weekNext.jsSupabaseStripe

The idea

A farmers market organizer runs a small logistics operation out of a Gmail inbox: dozens of vendor applications, certificates of insurance that quietly expire, cottage-food permits with different rules per product, and a weekly puzzle of who is showing up and who has paid. ManageMyMarket owns this niche but is visibly dated, and both vendors and organizers complain about it in public.

The wedge is document expiry enforcement wired into attendance. The moment a vendor’s COI lapses, the system blocks them from the roster and nags them directly, which is exactly the liability question that keeps organizers up at night. Everything else (applications, fees) hangs off that spine.

Who pays

The market organizer pays 59 dollars a month per market, which is less than one stall’s weekly fee and replaces hours of admin for someone who is often part-time or a volunteer coordinator handling 30 to 80 vendors paying 30 to 80 dollars a week each. Distribution runs through state farmers market associations, organizer Facebook groups, and directly poaching frustrated ManageMyMarket users who post their complaints publicly.

MVP scope

  • Hosted vendor application form with document upload and expiry dates
  • Application review queue with approve/reject/waitlist
  • Weekly attendance grid tied to document validity
  • Stripe stall-fee invoicing per date or per season
  • Expiring-document alerts to organizer and vendor
  • Skip for v1: stall map visualisation, vendor self-service portals with logins, POS or sales reporting, multi-market org accounts
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build StallBook, a management app for farmers market organizers. Stack: Next.js (App Router), Supabase (auth, Postgres, storage), Stripe for payments.

Core flow: an organizer creates a market with a season (recurring market dates) and publishes a hosted vendor application form at /apply/[market-slug]. Vendors fill it without creating an account: business details, product categories, and document uploads (certificate of insurance, cottage food permit, seller's permit), each with an expiry date field. Applications land in the organizer's review queue with approve/reject/waitlist actions. Approved vendors appear on a weekly attendance grid: rows are vendors, columns are market dates, cells toggle attending/absent. From the grid, the organizer triggers Stripe invoices for stall fees, either per-date or a season bundle.

Pages: /dashboard (this week's roster, expiring documents, unpaid fees), /applications (queue with document preview), /vendors (directory with document status badges), /schedule (attendance grid), /billing (invoice list with paid/unpaid), public /apply/[market-slug].

Implementation details: store documents in Supabase Storage with a nightly cron that flags anything expiring within 30 days and emails both organizer and vendor; block a vendor from being marked attending if a required document is expired, with an organizer override that logs who overrode and why.

Pricing: 59 dollars/month per market, unlimited vendors, Stripe fees passed through to vendors. 30-day free trial.

// More B2B ideas