React · TypeScript · HTML5 Canvas · TanStack Start · Game Dev
Trigger Warning TD
A 2D tower defense about staying clean: defend The Self from cravings, triggers, shame and doom spirals rolling down the Dopamine Highway, using coping tools built from a rehab arts-and-crafts room. Thirty days, one day at a time.
Share preview

About
Trigger Warning TD is a 2D tower defense game about early recovery, built from the limited supplies of a rehabilitation center's arts and crafts room. Intrusive thoughts — cravings, triggers, shame, doom spirals and worse — come rolling down the Dopamine Highway toward The Self. Your job is to keep them from landing.
You play thirty days. Day 30 isn't a finish line — it's where recovery starts getting real. Recovery is one day, repeated.
How It Plays
- Integrity is your health. The Self starts each run with a fixed pool of hearts; every thought that reaches you chips away at it.
- Commissary funds are your economy — canteen money you spend on placing and upgrading coping tools.
- The Coping Toolkit is a pegboard of placeable tools. The Therapist opens things up with slow, heavy hits that reframe incoming thoughts and slow them down; more tools unlock as the days progress.
- The Ability Deck gives The Self hand-played cards with cast times and aiming — Deep Breath slows every enemy on the field, and the deck grows as you go.
- Combo streaks reward clean, uninterrupted defense.
- The Binder tracks your collection and progress across the thirty days, and each day opens with a real recovery tip tied to that stage of treatment.
Design Intent
Every mechanic is a recovery concept wearing game clothes. Tools are supports, not weapons. Nothing eliminates feeling — you build a network sturdy enough to hold when the waves come. The whole visual identity is kraft cardboard, construction paper, popsicle sticks, bottle caps, buttons and yarn: flat, handmade, intentionally imperfect.
Stack
- React
- TypeScript
- HTML5 Canvas
- TanStack Start
- Custom game loop, wave scheduler and entity systems
Play
The game is playable inline above. Click Fullscreen ↗ to open it in a dedicated tab for the best experience.