Community events, meetups, and schedule nomenclature

This page defines how Food Truck Nerdz names and runs community events (meetups, conferences, workshops, showcases) as distinct from truck gig listings (publicEvents — organizers seeking trucks with stipends/bids).

Both appear on the public schedule (/schedule). Gig listings also remain at /events.

Nomenclature

Kind (what the gathering is)

Kind Intent

meetup

Informal owner/fan gathering: tips, networking, local discussion

conference

Multi-session / multi-speaker program (talks, panels)

workshop

Hands-on training (permits, POS, branding, ops)

showcase

Demo day / tasting / vendor spotlight (not a paid truck gig listing)

other

Catch-all until a better kind fits

Truck gig procurement stays on the existing publicEvents model (fixed stipend / budget band / competitive bids). Do not overload that table for meetups.

Scale (reach and atmosphere)

Scale Typical vibe

city

Local: one metro, neighbors, operational tips, casual

regional

Multi-city / state: travel-worthy, stronger programming

national

FTN USA-class: flagship content, broader audience, higher production

international

Cross-border / multi-country programming

Scale is a label for expectations (who it attracts, how loud the brand is). It is not a hard permission gate by itself.

Officiality

Mode Verification FTN branding / merch Publish gate

community

Optional

No FTN marks / merch

Host can publish when ready (subject to ToS / moderation)

ftn_affiliated

Required (age + human check via Yoti — see below)

Allowed only after PR approval + host privilege fee

Cannot publish as affiliated until approved (and fee settled)

Affiliated hosts pay a host privilege fee (product default $500) for the right to run an FTN-branded gathering and receive merch / signup QR kickback tooling. After approval they get an email with a setup link to finish details and pay.

Visibility

Visibility Discovery

public

Listed on /schedule and searchable

unlisted

Not on the main schedule; shareable URL works for anyone with the link

private

Invite-only; RSVP requires an invite (or host approval of request)

Anyone may attend public/unlisted events (people self-sort by interest). Private events are invite-only.

Host identity

Organizers are not required to be food truck owners. If the host has an active FTN owner account (business/truck registration), the event may show a Hosted by a registered food truck owner badge.

Money flows (MVP intent)

  • Host privilege (affiliated only): flat fee to FTN (default $500), then host may recoup via FTN merch allotment and/or QR signup kickbacks.

  • Tickets / entry: host sets the attendee price; FTN takes a platform cut (configurable; default 10% of ticket).

  • Payments are scaffolded in code; wire Square/Stripe (or Adapty where relevant) before charging real money.

Roles

Platform role Powers

pr

Approve/reject ftn_affiliated host requests; manage branding/merch entitlement

developer

Full platform tools; may also approve host requests

user

Create community events / host requests; RSVP; pay tickets

Grant pr via server env FTN_PR_EMAILS (comma-separated). Grant developer via FTN_DEVELOPER_EMAILS (takes precedence).

Human + age verification (Yoti)

For ftn_affiliated hosts we require a third-party age + liveness / real-human check.

Chosen provider: Yoti Age Verification

Why Yoti (vs heavy KYC dumps):

  • Designed around data minimization: FTN can receive an over-age / verified-human result without storing the user’s ID document or birthdate.

  • Supports facial age estimation + liveness and Digital ID “over age” shares.

  • Documents a double-blind style age flow (verifier and relying party minimize linkability).

  • Mature commercial API; better fit for “prove adult + real person” than forcing full government-ID KYC into our database.

We are not choosing Worldcoin-style iris networks or “phone home every visit” identity graphs. If we later want stronger zero-knowledge credentials without Yoti holding the check, evaluate Privado ID as a second lane — not the MVP default.

FTN still only stores: provider session id, pass/fail, timestamp, and Convex user id. See env vars YOTI_* in Environment variables.

User flows (MVP)

Community host (no branding)

  1. Sign in → Manage → Meetups.

  2. Create event (officiality=community), set kind/scale/visibility, ticket price.

  3. Publish when ready.

  4. Manage RSVPs / attendance on the event.

Affiliated host (FTN branding)

  1. Sign in → submit host request (contact pulled from account UUID + optional phone).

  2. Complete Yoti verification (required).

  3. Wait for PR approval (email to PR on new request; email to host on decision).

  4. Open setup link → pay host privilege fee → finish event details → publish.

  5. Sell tickets / track RSVPs; merch + QR kickback tooling land after payments are live.

Attendee

  1. Find events on /schedule (or invite link).

  2. RSVP and pay the host’s entry fee (FTN cut applied at checkout when payments are wired).

  • Convex: communityEvents, communityEventHostRequests, communityEventRsvps, communityEventInvites

  • Next.js: /schedule, /manage/meetups, /manage/pr/host-requests

  • Truck gigs: Events and host venues