Vendor management for farmers market organizers

SaaSWeb1 monthNext.jsSupabaseStripe

The idea

A farmers market manager, typically employed part-time by a nonprofit or a business improvement district, runs a genuinely complicated operation from spreadsheets and a Gmail inbox: 80 vendor applications to curate for category balance, certificates of insurance that quietly expire mid-season, a stall map redrawn weekly as vendors come and go, and fees collected in cash envelopes and unpaid promises.

ManageMyMarket exists and is the proof of demand, but it is dated and organiser forums are openly unhappy with it. The wedge is executing the same core loop cleanly: applications with document upload and expiry tracking, a drag-and-drop stall map with copy-last-week defaults, and Stripe invoicing, in an interface built this decade. Document expiry enforcement is the sharpest hook, because an uninsured vendor is the risk that keeps the nonprofit’s board awake.

Who pays

The market organisation pays 59 USD/month per market out of vendor-fee revenue, which for a mid-size market runs 30 to 100k USD a season, so this is an operational rounding error approved by whoever manages the market, not a personal expense. Distribution: the Farmers Market Coalition’s network and conference, state market-manager associations, and the fact that managers change markets often and bring their tools with them.

MVP scope

  • Public application form with category info, photos, and document upload
  • Review queue with approve/waitlist/reject and a category-balance widget
  • Document expiry tracking with 30-day reminder crons and assignment blocking
  • Grid-based stall map with per-date drag-and-drop and copy-last-week
  • Weekly or seasonal fee invoicing via Stripe with reminders
  • Skip for v1: SNAP/EBT token tracking, vendor sales reporting, customer-facing market maps, volunteer scheduling, multi-market vendor profiles
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build StallKeeper, a web app for farmers market organisers managing 30 to 150 vendors per season. Stack: Next.js (App Router), Supabase (Postgres, Auth, Storage, RLS), Stripe for invoicing. Magic-link auth for the manager; vendors interact via signed links plus an optional lightweight login.

Data model: Markets (a manager can run several), Seasons, Vendors with product categories (produce, meat, baked goods, prepared food, crafts), Applications, Documents (COI, food permits, cottage licences, each with an expiry date), Stalls, Assignments (per market date), Invoices.

Applications: a public form per market collects business info, product categories with descriptions, photos, and document uploads. The manager reviews in a queue with approve/waitlist/reject and canned-response emails. Show a category-balance widget (current mix of accepted vendors by category) beside the queue, because managers curate the mix deliberately.

Documents: every document has an expiry. A weekly cron emails vendors 30 days before expiry with an upload link; any vendor with an expired required document is flagged red and excluded from new assignments until resolved.

Stall map: the manager draws the market once as a simple grid/list of named stalls (no geospatial complexity), then drag-and-drops vendors onto stalls per market date, with copy-last-week as the default action. Vendors get an email with their stall for Saturday.

Fees: weekly stall fees or seasonal flat fees, invoiced through Stripe with paid/unpaid tracking and reminders.

Pages: application form, review queue, vendor directory, document status board, stall map, invoicing, season settings.

Pricing: 59 USD/month per market.

// More SaaS ideas