CHATALYZE.

Real-time fan ↔ creator chat intelligence

Every conversation
is a dataset.

Chatalyze turns raw OnlyFans chat into deterministic signals, session analytics, and triage — event-sourced on Cloudflare, no auto-send, no black box.

15 event types15 deterministic signalsD1 + DO on the edge

@chatalyze/metrics

The signal vocabulary

Deterministic extractors over ordered events. No LLM required — models label later, rules measure now.

response_latency_secsec
0s

Fan→chatter reply gap. Fast replies convert; slow ones ghost.

turn_countcount
0

Speaker switches per session. Dialogue beats monologue.

silence_pct0–1
0%

Share of wall-clock lost to long gaps. Lower is warmer.

session_aht_minmin
0m

Average handling time — session start to finish.

question_ratio0–1
0%

Questions per chatter message. Curiosity keeps turns alive.

cta_countcount
0

Calls-to-action sent. Too few starve revenue; too many push away.

emoji_densityratio
0%

Warmth per message. A tone proxy that needs no model.

sentiment_fan0–1
0

Fan mood per session. Rule-scored today, model-labeled in Wave 3.

hours_to_outcomehrs
0h

Time from open to paid outcome. The funnel clock.

Illustrative values. Each variable feeds VariableInsight + DecisionCard rules automatically.

live ops

Triage the hottest fan first

Deterministic priority from read models: awaiting-reply time, lifetime spend, recency. SLA on first reply.

Priority inboxGET /api/sessions?sort=priority&awaiting=1
  • fan_8•••2awaiting 6:1292$412SLA breach
  • fan_3•••7awaiting 2:0484$265SLA 2m
  • fan_9•••1awaiting 0:4871$188SLA 2m
  • fan_5•••4awaiting 0:1963$97SLA 2m
  • fan_2•••8replied45$54
Backed by /api/fans · /api/sla · computePriorityScore in @chatalyze/metrics ops
Fan360rm_fans
Lifetime spend$412
Sentiment0.74
Topicspricingcustom contentschedule
Suggestedsend PPV teaserask a questionslow cadence
Sentiment + topics today: deterministic. Wave 3: model-labeled via ModelLabeled events.

wave 3 preview

Topic trends

What fans actually talk about — volume, share, and 7-day trend per theme.

TopicVolume% of totalTrend 7d
pricing & bundles18%▲ 12%
custom content13%▲ 4%
schedule & availability11%▼ 3%
support & access8%▲ 8%
small talk6%▼ 1%

under the hood

Event-sourced, end to end

Every fact is an immutable event. Read models are disposable projections — replayable anytime.

  1. OFAPI webhookapps/apisigned, idempotent ingest
  2. HMAC + normalizepackages/adapters/ofapithe only field-mapping layer
  3. ChatSession DOapps/dos/chat-sessionopen / rotate / close policy
  4. Event storepackages/adapters/d1-eventstoreappend-only source of truth
  5. Projectionspackages/projectionsrm_* read models in D1
  6. Ops UIapps/web /livepriority inbox · Fan360 · SLA
Event store is truthnever “just update” a table
Analysis-onlyno auto-send, ever (ADR-007)
No LLM in webhooksmodels work async, off the hot path
Deterministic firstrules measure now, models label later