- Client
- Greyline
- Role
- Lead Designer & Full-Stack Developer
- Timeline
- Ongoing product
- Year
- 2026
- Category
- Interactive Experience
Overview
Greyline is a narrative investigation: you inhabit a disappeared journalist’s recovered phone. The product brief is fiction as software — an OS of messages, evidence, and a clock that does not wait for “next.” The RecoveredProjects tree has campaign media only; there is no checkout of a Next.js app here. A later mystery-game README even borrows an ElevenLabs key “from the GreyLine project,” which is a breadcrumb, not a verified stack.
Why
Most “interactive stories” are branching PDFs. Greyline’s brief was a recovered phone: you inhabit a disappeared journalist’s device, the story moves on its own clock, and the OS — messages, evidence, files, timeline — is the product.
The RecoveredProjects tree has campaign media only. There is no Next.js checkout here. A later mystery-game README borrows an ElevenLabs key “from the GreyLine project,” which is a breadcrumb, not a verified stack. Until that repo is restored, this study stays at the product idea and the stills.
The challenge
Most “interactive stories” are branching PDFs. Greyline’s brief was a recovered phone that moves on a clock. We still tell that story — without claiming a Next.js checkout we do not have locally.
What made it hard
- Most “interactive stories” are branching PDFs; this brief was a recovered phone.
- The story had to move on its own clock, not a click-to-advance novel.
- Runnable source is not on disk — we do not treat NPC APIs or app-router versions as audited.
Approach
The intended pipeline is title → intro → character → in-world OS. Waitlist mail in older notes goes to hello@greyline.app. Until the app repo is restored, this case stays at the brief and the stills — not OpenAI route names or a package version.
Process
- Fiction as software: The phone/desktop is the product, not a marketing site with a plot.
- Campaign archive: Stills and Greyline case-study media are what we can show locally.
- Honest gap: No recoverable Next.js tree; no invented NPC or Studio screenshots from code.
What we built
- Recovered-phone brief: The player inhabits a journalist’s device. That is the product idea, not a branching PDF.
- Investigation OS (brief): Messages, calls, evidence, files, and timeline as the intended workplace.
- Campaign media: Local proof is the case-study stills, not a running app checkout.
- Waitlist / studio ops (brief): Older notes include hello@greyline.app and a live-ops Studio — unverified until the repo returns.
How it was built
The intended pipeline is title → intro → character → in-world OS. Older notes mention Firebase, OpenAI NPC dialogue, an admin Studio, and waitlist mail to hello@greyline.app. Those stay labeled as the brief.
We do not treat `/api/message`, Framer Motion, Zustand, or a 0.1.0 package version as audited from disk. Local proof is campaign media, not a RecoveredProjects checkout. The engineering honesty is the gap.
Stack
- Campaign + brief: Media archive; app source not recovered
- Narrative OS (intended): Investigation surfaces from the product brief
Outcomes
- Brief: Recovered-phone investigation OS
- Media: Campaign archive on disk
- Waitlist: hello@greyline.app in older notes
- Gap: App repo not recovered
Wins
- A recovered-phone investigation brief instead of a branching PDF.
- Campaign media that still frames the OS as the product.
- Waitlist / studio ops named in older notes (hello@greyline.app).
- An honest case study: no invented NPC APIs or app-router versions.
Hard parts
- A clock, not a click: The story had to advance on its own time. Waiting for “next” would have broken the recovered-phone fiction.
- Fiction as software: Messages, evidence, and timeline had to be the workplace — not a novel with buttons.
- Source not recovered: Without the app tree we cannot re-verify NPCs, Studio, or versions. This page does not pretend we can.
Services
- Narrative investigation product brief
- Recovered-phone OS concept (messages, evidence, timeline)
- Campaign / case-study media archive
- Waitlist ops notes (hello@greyline.app)