TixWave.party is a pure HTML/CSS/JS ticket marketplace for nightclub and live events. It uses Supabase for Auth, database storage, and Edge Functions, plus Stripe Checkout for payments.
index.html — homepage, search, country filters, featured events from Supabaseevent.html — event details and ticket purchase flowcheckout-success.html — post-payment ticket display with QR codesmy-tickets.html — buyer login and ticket walletscanner.html — mobile door scanner using device cameraadmin.html — simple PIN-protected event/order/commission admin panelsupabase-schema.sql — database tables, indexes, policies, helper function, and seed demo eventssupabase/functions/create-ticket-checkout/index.ts — creates Stripe Checkout sessionssupabase/functions/ticket-webhook/index.ts — handles checkout.session.completed, creates tickets, updates sales countssupabase/functions/validate-ticket/index.ts — validates and marks QR tickets as usedOpen the Supabase SQL Editor for project:
https://nmusxculduptvefgqfjn.supabase.co
Paste and run supabase-schema.sql.
The schema includes a public_order_token on orders so the checkout success page can display tickets immediately after Stripe redirects the buyer, without requiring login.
Create these Supabase Edge Functions and paste each index.ts file into its matching folder/name:
create-ticket-checkout
ticket-webhook
validate-ticket
Recommended Supabase CLI commands if you are deploying locally:
supabase functions deploy create-ticket-checkout
supabase functions deploy ticket-webhook --no-verify-jwt
supabase functions deploy validate-ticket --no-verify-jwt
Set these Supabase secrets:
supabase secrets set STRIPE_SECRET_KEY=sk_live_or_test_xxx
supabase secrets set STRIPE_WEBHOOK_SECRET=whsec_xxx
supabase secrets set TIXWAVE_SITE_URL=https://tixwave.party
supabase secrets set SCANNER_PIN=2468
SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY are normally available automatically in Supabase Edge Functions. If your project does not inject them, add them as secrets too.
In Stripe Dashboard → Developers → Webhooks, add this endpoint:
https://nmusxculduptvefgqfjn.supabase.co/functions/v1/ticket-webhook
Subscribe to:
checkout.session.completed
Copy the webhook signing secret into Supabase as STRIPE_WEBHOOK_SECRET.
For magic-link login on my-tickets.html, add these redirect URLs in Supabase Auth URL configuration:
https://tixwave.party/my-tickets.html
https://tixwave.party/
Upload all HTML files in this folder to your static host and point tixwave.party to it. Make sure the deployed URLs are:
https://tixwave.party/index.html
https://tixwave.party/event.html?id=EVENT_ID
https://tixwave.party/checkout-success.html
https://tixwave.party/my-tickets.html
https://tixwave.party/scanner.html
https://tixwave.party/admin.html
ADMIN_PIN inside admin.html before publishing. The current value is 2468 for quick setup.SCANNER_PIN; keep the scanner URL and PIN private for door staff.currency column to ticket_types or events.