// projects / detail

hanken

White-label ticketing SaaS built on LINE. Ticketing is the hook — audience CRM is the core.

tech stack
elixirphoenixashliveviewlineoban
SCREENSHOT_001.png

One-liner

Give event organizers and venues their own ticketing system, with audience CRM for long-term relationship building.

Why

Traditional ticketing platforms take a cut, own the audience, and reset to zero after each event. hanken flips that: flat SaaS fee, the organizer owns the audience, and data compounds over time. Ticketing is the acquisition hook — CRM is the real product.

Business Model

  • Flat monthly SaaS fee, zero commission on ticket sales
  • White-label: the system runs on the organizer’s own LINE Official Account — audience relationships stay with them
  • Organizers integrate their own payment provider (ECPay, LINE Pay) — the platform never touches money

Technical Choices

Elixir + Phoenix + Ash Framework. Ticket rushes produce massive short-burst concurrency — the Erlang VM’s sweet spot. Ash handles the complex state machine of ticketing: on-sale, locked, paid, issued, refunded, checked-in.

Seat locking uses FOR UPDATE SKIP LOCKED pessimistic locks via raw Ecto where Ash can’t express it — a deliberate design choice, not tech debt.

WaitingRoom is a per-event GenServer controlling concurrent purchase access. Two-stage queue (selection + lock), driving LiveView state transitions via process messages.

Architecture Highlights

  • Schema-based multi-tenancy: one PostgreSQL schema per organization
  • Workflow pattern: all multi-step transactional logic lives in Workflows modules — LiveView never composes Ash operations directly
  • Layered side effects: after_action inside transaction → Notifier after commit → Oban workers outside transaction
  • UUIDv7 primary keys, generated natively by PostgreSQL 18’s uuidv7()

AI Features

  • Lookout: LLM agent that proactively analyzes audience behavior and generates marketing suggestions — with hallucination validation, cost gating, push suppression, and per-tenant timeout as safety guardrails
  • Desk: Jido agent-powered interactive Q&A with conversation persistence and long-conversation summarization

LINE Ecosystem Integration

TechnologyPurpose
LINE LoginOne account per person — raises scalper costs
LIFFTicketing, ticket display, check-in all open inside LINE
Message APIEvent notifications, CRM automation
LINE OAEach organizer’s official account — audience stays with them