Fallstudie
Coyotes and Candles: Att bygga upp en kreativ helhetsplattform för ett tvåmansföretag
Roll: Fristående fullstack-utvecklare och medgrundareVaraktighet: Juni 2026 (cirka 8 dagars aktiv utveckling)Status: Öppet och tar emot bokningar
Next.js 16SupabasePostgreSQLStripePayPalAgoraUpCloud + pm2
Problemet
Min fru Alli och jag driver Coyotes and Candles – ett tvåmansföretag som erbjuder tarotspådomar, D&D-engångsspel, privata gruppkampanjer och en online-community. Innan vi byggde upp det här systemet hanterades varje del av verksamheten i olika verktyg:
- -Calendly för tidsbokning (ingen betalning, ingen videolänk, ingen uppföljning)
- -Zooma för video (manuella länkar, inget inbyggt sammanhang)
- -Patreon och Ko-fi för prenumerationer (spridda målgrupper)
- -Discord för gemenskapen (separat från allt annat)
Kunderna var tvungna att hoppa mellan fem olika verktyg för att boka en session, delta i ett videosamtal och hitta communityn. Vi behövde en enda plattform som kunde hantera allt från bokning till uppföljning efter sessionen.
Vad som byggdes
En integrerad plattform med sex olika bokningsflöden, två betalningsleverantörer, inbyggd livevideo, en fullt utrustad virtuell bordsskiva, ett community-system och en administratörspanel – som ersätter alla fem verktygen.
Bokning och betalning
- ·6 bokningsflöden: tarotspådomar, engångsbesök, privata grupper, kampanjer med uppskjuten fakturering, presentkort, prenumerationer
- ·Stripe för engångsbetalningar och återkommande prenumerationer
- ·PayPal Subscriptions API med fullständig hantering av webhook-livscykeln
- ·Över 20 automatiserade e-postmallar: bekräftelser, påminnelser, felmeddelanden och återställning
- ·Tillgänglighetskalender i realtid med hänsyn till tidszoner
- ·Automatisk återbetalning vid avbokning minst 48 timmar före sessionen
- ·Självbetjäning för ombokning och platsbokning för kampanjer med uppskjuten betalning
- ·Presentkort med kampanjkoder
Sessionshantering (VTT)
- ·Inbyggda Agora-rum för livevideo – inga nedladdningar krävs
- ·Helt virtuellt spelbord: spelpjäser, krigsdimma, frihandsteckning, tärningskastare
- ·D&D 5e-karaktärsblad med fullständig integration av SRD-kompendiet
- ·Karaktärsblad för Shadowrun 4e med import av Chummer XML
- ·GM-styrd musik via YouTube
- ·CoyoteCloud: realtidsuppdatering och dubbelriktad synkronisering med DiceCloud, så att ändringar av karaktärer i DiceCloud omedelbart visas i VTT
Gemenskap
- ·Kanalsystem i Discord-stil, kanaler med kampanjbegränsad åtkomst
- ·Direktmeddelanden, reaktioner, skrivindikatorer
- ·Webb-pushmeddelanden
- ·Moderationsverktyg och granskningsloggar
- ·Valfri spegling av Discord-webhook
Administratörspanelen
- ·Bokning och kampanjhantering
- ·Spelarhantering med anpassade priser och närvaroregistrering
- ·Anteckningar och sammanfattningar från sessionerna
- ·Intäktsanalys och resultaträkningsöversikt
- ·Integration med Google Search Console
- ·Felövervakning med datareducering
Skärmdumpar






Teknisk arkitektur
FrontendNext.js 16 (App Router), TypeScript, Tailwind CSS
BackendSupabase (PostgreSQL, Auth, Realtime) with Row Level Security
DeploymentUpCloud VPS via pm2 + Caddy reverse proxy
PaymentsStripe (one-time + recurring), PayPal Subscriptions API
VideoAgora SDK - embedded rooms, no downloads
SecurityNonce-baserad CSP, atomära databasoperationer, tidssäkra jämförelser
ComplianceGDPR-anpassad, finsk moms (25,5 %), strukturerade data i JSON-LD, finsk enskild näringsidkare (Y-nummer: 3572436-7)