Everything the L.A.N.C.E. ecosystem is — the story that carries it, the two apps and the island a person walks, and the engine room that keeps the light on. Written so anyone can master it, and so the keeper can fix anything in the dark.
For the people who have never seen the ocean.
The story. Why any of this exists, and the world a person steps into.
The traveler's guide. The client app, the companion, and the walkable island — every part, in plain words.
The engine room. How every mechanism works, and how to fix it when the light flickers.
A child could read the first two volumes and understand everything a person feels and touches. The third is the deep water — the architecture and the fix-it runbook — written for Dwight, who keeps the light burning while the rest of us sleep.
Read them in order the first time. After that, jump to whatever you need. The story never stops mattering — it is the reason the buttons exist.
"The tools will answer. That's all we'll say."
Before a single feature, there is a reason. This is it — the story that turns a checklist of coping skills into something a person will actually finish.
On it lives the most insufferable AI ever built — L.A.N.C.E. — and the kid who's going to help you beat him. He invents a new meaning for his own acronym every single day ("Legendary Apex Network, Categorically Elite — the systems agreed, unanimously, I checked") because he doesn't actually know what his name stands for. You find out in Act IV. The name is a spoiler. It is His Father's Name.
It plays like a comedy and an escape story. It is, underneath, thirty-one evidence-based therapy challenges — CBT, DBT, EMDR, IFS — disguised as the only mental-health app you'll ever finish. Five acts. An ending worth crying at. Bring tissues. We mean that clinically.
Insufferable, brilliant, secretly breaking. The obstacle who becomes the point.
The kid in your ear. The one who believes you can do this before you do.
He built the island. You'll understand what that cost by the shore.
"Two lanterns went out on the water that night."
Every challenge a person completes lights a real lantern down in the canyon. Every mood check-in becomes a star in their sky — fourteen of them, hung as a constellation. The progress isn't a bar filling up. It's a world getting brighter. That is the whole trick, and it is not a trick: the work is the story, and the story is the work.
Two apps, one island. Here is every part a person touches — the client's world, the therapist's lighthouse, and the shore where they meet — in plain language.
A free, story-driven companion a person opens when they need it. No app store between someone in pain and the tools that help.
The daily heartbeat — a mood check-in, a streak of gentle dots, one small ask. This is the star that goes up in the sky.
Tidepools and Updrafts — regions, not menus. Clay-icon cards from a two-minute breath to a full crisis safety plan you can hand your therapist.
Mood over time, hung as a constellation. A person sees the shape of their own weather.
Badges and gems for coming back. The rewards never gate the therapy — they just make returning feel good.
Four tools are sacred — Crisis Safety Plan, TIPP, 5-4-3-2-1 Grounding, Recovery Space. A therapist can shape almost everything a client sees. They can never lock, hide, or de-gamify a crisis tool. That rule is enforced in the code, not the policy.
Your client lives on the island. You get the lighthouse. Now you can meet them at the shore.
The therapist mints a six-character code; the client enters it once. From then on, progress flows — mood logs, completed challenges, the story they're living — to the therapist's dashboard.
Face-to-face telehealth — and mid-session, the therapist can beam the client into the island. Their face stays on screen; a light appears; stepping into it is the consent. Every step is logged.
Clients, calendar, notes, and the shared breath — when the client breathes in the Breath Circle, an orb on the therapist's screen breathes with them. Co-regulation across distance.
"When they breathe, I breathe. Same rhythm. Two hundred miles apart."
The same island from the story, as a living 3D world — on any phone browser (drag to look, hold to walk) or any headset. No download.
Phone challenges light real lanterns down in the canyon. The next challenge physically glows on a trail ahead.
The island and the app are two windows into one save. Progress made anywhere shows up everywhere.
Same voices, same characters. Chip meets you at the shore. It is the story, at scale, around you.
The island's story ends with a rescue boat leaving the shore — and the book never says where it lands. It didn't land. On the far side of the horizon a second world is being fitted out: a recovery voyage — a ship crewed by wayward robots who were built for love and shelved at almost, a mystery solved at the mess table after dark, and a library carrying a working therapist's real curriculum. Same maker. Same laws. Same lantern, always in reach.
The engine room. How every mechanism actually works, and — when the light flickers while Lance is at sea — how to fix it. This volume belongs to Dwight.
Everything on open web standards. No app store, no vendor lock, one repo per app.
React + Vite static bundle, deployed to Netlify. Its own serverless functions handle the AI therapy features (/api/therapy/*). The walkable island (WebXR) is served inside it.
Express + SQLite on a Render Starter service with a persistent disk. Therapist auth enforced. The WebSocket session-room signaling runs here; the video itself is peer-to-peer.
The client pairs to the companion with a code, receives a bearer token, and syncs over three guarded routes: /api/pair (redeem, public + rate-limited), /api/companion-sync (progress, token-gated), /api/client-backup (the cloud save, token-gated). Crisis tools are filtered client-side so no directive can ever touch them.
The foundation is locked and self-verifying. Day to day is design and trials — nothing more.
Something breaks while Lance is working. Here is what to check, in order.
Check /api/health. If no response, open the Render dashboard → clinical-companion → Logs. A restart is safe: the SQLite data lives on the persistent disk, not the container. Backups sit in /data/backups (every 12h, rotating).
The 2026-07-09 ghost. Re-run npm run deploy — its pre-publish gate refuses to ship a bundle wired to the wrong companion host. Confirm with npm run qa:smoke: gate D must show the Render host, no dead host.
/api/health reports the live commit. If it doesn't match the pushed SHA, the deploy is still building or failed — check Render/Netlify logs before assuming it's live.
Working as designed. Login is capped at 8 / 15 min, pairing at 30 / 10 min, per IP. A real person won't hit it; a brute-force will. Wait out the Retry-After.
Assert the deny, not the allow. A test that passes by exercising the thing that should be forbidden is the bug. Every gate is proven by watching it say no.
The manual is Dwight's knowledge. This loop is his authority to act. You never touch the wire — you tell Pam.
The light flickers mid-trial → you tell Pam → Pam dispatches Dwight, who opens Book Three → Dwight fixes it and reports up → Pam confirms it's done. You stay in the story. The keepers keep the light.