Box customization portal for CSA farms

B2BWeb1 monthNext.jsSupabaseStripe

The idea

The number one reason CSA members do not renew is getting vegetables they do not want, and the number one email a CSA farmer answers is ‘can I swap the kale’. For a farm selling 600-dollar seasonal shares, a few points of churn is the difference between a viable season and not. Farmigo and Harvie address this but are priced or structured around revenue cuts that farmers resent handing over on already-thin margins.

The wedge is a points-based swap system with live scarcity limits, which converts customisation from an email negotiation into a self-service flow the farm controls, plus the aggregated pick-and-pack lists that turn packing day from spreadsheet archaeology into printed sheets. Vacation holds, the other big email generator, come along for free.

Who pays

The farm pays 59 dollars a month flat, no percentage of share revenue, which is the pricing stance that wins against Harvie in farmer conversations. The buyer is the farmer or farm manager running 50 to 400 shares. Distribution through CSA and market-farming communities (the Growing for Market audience, CSA Innovation Network, farmer Facebook groups) and winter conference season, when farms choose next season’s tooling.

MVP scope

  • Season, share, and pickup-site setup with Stripe share payments
  • Weekly box builder with point values and limited-quantity alternatives
  • Member swap portal with live scarcity and site-based cutoffs
  • Post-cutoff pick list, per-site pack lists, and member slips
  • Vacation holds with configurable credit handling
  • Skip for v1: home-delivery routing, farm webshop for extras, wholesale channels, recipe content
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build BoxSwap, a weekly box customisation portal for CSA farms. Stack: Next.js (App Router), Supabase (auth and Postgres), Stripe for share payments.

Core flow: the farm sets up its season (weeks, pickup sites with days and cutoff times) and imports or enrols members, each tied to a share size and pickup site; members pay via Stripe (full season or instalments). Each week, the farmer publishes the week's box: a default contents list where every item carries a swap value in points (bunch of kale: 2, pint of cherry tomatoes: 3) and an available-alternatives list with quantities on hand. Members get an email when the week opens and can adjust their box until their site's cutoff: remove defaults to free points, add alternatives that fit the remaining points, with scarce items decrementing live so the farm never oversells the tomatoes. No response means the default box, which keeps non-engaged members frictionless.

After cutoff, the farm gets the operational payoff: a pick list (total quantities per item across all boxes), a pack list per pickup site (each member's final box contents, printable), and label-sized per-member slips. Vacation holds are first-class: a member marks a week away before cutoff and receives a configurable credit (extra points in a later week or a season extension), and held boxes drop out of the lists automatically.

Pages: farm /dashboard, /weeks/[id] (builder and lists), /members; member /box (this week's editor), /account (holds, payments).

Pricing: 59 dollars/month flat to the farm, no revenue cut. Season-length billing pause available.

// More B2B ideas