2026-03-23

Summary

Major Guild engineering session — built the core membership and loyalty backend end-to-end. Also paid nonprofit lawyer retainer.

Guild — What Got Built

Single session, ~4 hours. The full loyalty lifecycle is now functional:

  • Square webhook registered (sandbox) — payment.updated → purchase log → loyalty points → Square custom attributes sync
  • Stripe webhook — subscription lifecycle (create/update/cancel/payment failure) → tier + status updates → Square sync
  • Stripe products/prices created — Bronze 25, Gold 100 (monthly recurring)
  • Point redemption API — staff-authenticated endpoint, supports store credit + experience + merch + digital perks
  • Check-in API — NFC card UID or phone number lookup, 4-hour dedup, returns member info for kiosk display
  • Square customer sync — custom attributes (guild_tier, guild_points, guild_status, guild_member_id) visible in Customer Directory
  • Biome replaced ESLint + Prettier for linting/formatting with pre-commit hooks
  • 28 unit tests covering loyalty engine and check-in logic
  • E2E tested full lifecycle: subscribe → upgrade → downgrade → cancel → re-subscribe, all syncing across Stripe → Payload → Square

Key Design Decisions Made

  • Points as universal currency — not auto-converted to store credit. Redeemable across multiple paths (store credit, experiences, merch, Discord roles). Tax implications only at redemption for monetary value.
  • Square custom attributes over notes — namespaced to the app, safe for shops that use notes for other things. Important for product portability.
  • Self-serve check-in — NFC card tap (primary) + phone number keypad (fallback) on a Raspberry Pi kiosk at the door. Wizard animation on check-in.

Ideas Captured

  • Guild Seasons — monthly team competition, Harry Potter houses style. Random team assignment, collective point earning, winning team gets prizes/badges. See plans/guild-seasons.md.
  • Achievement system — Dungeon Crawler Carl-inspired. Members earn achievements for milestones (purchases, check-ins, events, tier upgrades). Loot drops, equippable titles, Discord integration. Could be huge for the museum location ARG. See plans/guild-achievements.md.
  • Guild kiosk — Raspberry Pi + touchscreen + NFC reader at the door. Wizard animation, welcome screen, points display. See plans/guild-kiosk.md.
  • dungeon.club — domain for the member portal.

Manapool — First MTG Card Sale

  • Shipped first MTG card sale via Manapool
  • Supplies needed: #6 envelopes, magic tape, toploaders
  • USPS doesn’t sell sheets of non-machineable stamps — need to buy separately
  • Want to set up a proper system for selling MTG cards going forward

Nonprofit

  • Paid Andrea Kantor (nonprofit lawyer) $3,000 retainer for incorporating Dungeon Arts Inc. as a 501(c)(3).

What’s Next

  • Guild kiosk frontend (React on Pi, needs hardware)
  • Member portal at dungeon.club (Next.js frontend)
  • Hi.Events webhook for event attendance
  • Achievement system design
  • Stripe Checkout for member signup flow

Vault Updates

  • plans/roadmap.md — Guild added as active project
  • plans/membership-platform.md — synced with points currency + Square custom attributes decisions
  • plans/guild-seasons.md — new, team competition concept
  • plans/guild-achievements.md — new, achievement/gamification concept
  • plans/guild-kiosk.md — new, kiosk UX spec
  • references/square-integration.md — Guild section added
  • index.md — Guild project linked