Skip to content

Case Study

Coyotes and Candles: Building a Full-Service Creative Platform for a Two-Person Business

Role: Solo Full-Stack Developer & Co-founderDuration: June 2026 (~8 days active development)Status: Live and accepting bookings
Next.js 16SupabasePostgreSQLStripePayPalAgoraUpCloud + pm2

The Problem

My wife Alli and I run Coyotes and Candles - a two-person business offering tarot readings, D&D one-shots, private group campaigns, and an online community. Before this build, every piece of the business lived in a different tool:

  • -Calendly for scheduling (no payment, no video link, no follow-up)
  • -Zoom for video (manual links, no native context)
  • -Patreon and Ko-fi for subscriptions (fragmented audiences)
  • -Discord for community (disconnected from everything else)

Customers had to bounce between five tools to book a session, join a video call, and find the community. We needed a single platform that handled everything from booking through post-session follow-up.

What Was Built

One integrated platform with six distinct booking flows, two payment providers, embedded live video, a full virtual tabletop, a community system, and an admin dashboard - replacing all five tools.

Booking & Payments

  • ·6 booking flows: tarot readings, one-shots, private groups, campaigns with deferred billing, gift cards, subscriptions
  • ·Stripe for one-time payments and recurring subscriptions
  • ·PayPal Subscriptions API with complete webhook lifecycle management
  • ·20+ automated email templates: confirmations, reminders, failures, and recovery
  • ·Real-time availability calendar with timezone awareness
  • ·Automatic refunds for cancellations 48+ hours before session
  • ·Self-service rescheduling and campaign seat reservations with deferred payment
  • ·Gift cards with promo codes

Session Delivery (VTT)

  • ·Embedded Agora live video rooms - no downloads required
  • ·Full virtual tabletop: tokens, fog of war, freehand drawing, dice roller
  • ·D&D 5e character sheets with full SRD compendium integration
  • ·Shadowrun 4e character sheets with Chummer XML import
  • ·GM-controlled music via YouTube
  • ·CoyoteCloud: live DiceCloud write-back and two-way sync so character changes in DiceCloud appear in the VTT instantly

Community

  • ·Discord-style channel system, campaign-gated channels
  • ·Direct messaging, reactions, typing indicators
  • ·Web push notifications
  • ·Moderation tools and audit logs
  • ·Optional Discord webhook mirroring

Admin Dashboard

  • ·Booking and campaign management
  • ·Player management with custom pricing and attendance tracking
  • ·Session notes and recaps
  • ·Revenue analytics and P&L view
  • ·Google Search Console integration
  • ·Error monitoring with deduplication

Screenshots

Tarot readings booking page
Live VTT session - tokens on a real map
Shadowrun 4e character sheet in VTT
Community channels
Admin dashboard
Analytics - traffic, revenue, top pages

Technical Architecture

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-based CSP, atomic database operations, timing-safe comparisons
ComplianceGDPR-ready, Finnish VAT (25.5%), JSON-LD structured data, Finnish sole trader (Y-tunnus: 3572436-7)

Links