Panda Pod

Built for Kumon centers: students check in and out with a barcode scan, and staff see the floor live.

# verified on the raw body, applied exactly once
async def stripe_webhook(request):
    event = stripe.Webhook.construct_event(
        await request.body(),
        request.headers["stripe-signature"],
        SECRET,
    )
    if not await record_once(event.id):  # primary key
        return {"status": "duplicate"}
    await apply(event)
A Stripe webhook, simplified.
When
2026
Status
Ran in production, paused
Code
Private repository
Stack
Next.js 15, FastAPI, Supabase, Stripe, Tailwind 4, Cloudflare Tunnel

Built for a real front desk

  1. Four roles, four devices

    Parents on phones, staff on desktops, the owner, and a locked check-in iPad.

  2. Barcode check-in and check-out

    Each code holds a random token per student and subject, rotated or revoked at will.

  3. Webhooks that cannot double-charge

    Stripe events verified on the raw body and deduplicated by event ID.

  4. Timers with no scheduler

    Timers stop themselves on the floor poll; one bulk query replaced sixty.

  • 1.3 s# sign-in to landing at worst, down from 3.8 s
  • 31 ms# sidebar click to first paint, down from 420 ms
  • 28# screens verified against WCAG 2.2 AA, both themes