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 |
|---|---|
|
Informal owner/fan gathering: tips, networking, local discussion |
|
Multi-session / multi-speaker program (talks, panels) |
|
Hands-on training (permits, POS, branding, ops) |
|
Demo day / tasting / vendor spotlight (not a paid truck gig listing) |
|
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 |
|---|---|
|
Local: one metro, neighbors, operational tips, casual |
|
Multi-city / state: travel-worthy, stronger programming |
|
FTN USA-class: flagship content, broader audience, higher production |
|
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 |
|---|---|---|---|
|
Optional |
No FTN marks / merch |
Host can publish when ready (subject to ToS / moderation) |
|
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 |
|---|---|
|
Listed on |
|
Not on the main schedule; shareable URL works for anyone with the link |
|
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.
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 |
|---|---|
|
Approve/reject ftn_affiliated host requests; manage branding/merch entitlement |
|
Full platform tools; may also approve host requests |
|
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)
-
Sign in → Manage → Meetups.
-
Create event (
officiality=community), set kind/scale/visibility, ticket price. -
Publish when ready.
-
Manage RSVPs / attendance on the event.
Affiliated host (FTN branding)
-
Sign in → submit host request (contact pulled from account UUID + optional phone).
-
Complete Yoti verification (required).
-
Wait for PR approval (email to PR on new request; email to host on decision).
-
Open setup link → pay host privilege fee → finish event details → publish.
-
Sell tickets / track RSVPs; merch + QR kickback tooling land after payments are live.
Related code
-
Convex:
communityEvents,communityEventHostRequests,communityEventRsvps,communityEventInvites -
Next.js:
/schedule,/manage/meetups,/manage/pr/host-requests -
Truck gigs: Events and host venues