Inspiration
I have tried every productivity system that exists. To-do lists. Time blocking. Habit trackers. Accountability apps. Notion databases so elaborate they became a second job.
None of them lasted more than three weeks.
The problem was never the system. The problem was that none of them felt like anything. Checking a box is not satisfying. Moving a card across a Kanban board is not motivating. Watching a streak counter reset is actively demoralizing.
I wanted to build something that made the invisible texture of daily life visible — the way your job drains you, the way avoiding a friend accumulates into distance, the way a small daily choice either builds toward something or quietly destroys it.
Survival games understand something productivity apps don't: scarcity creates urgency, consequence creates engagement, and a world that responds to your choices creates investment.
Shipwrecked maps your real life onto a survival game island. Your obligations become terrain. Your habits become weather. Your goal becomes the rescue signal you are trying to complete before the storms close in.
What it does
Shipwrecked is a survival game web app where the island is built from the player's real life and all resources map to real-life assets.
Setup begins with a 10-15 minute conversational interview powered by the LLM plugin. The AI asks about the player's top three goals, main recurring obligations, energy levels at different times of day, most important relationships, worst recurring habits, and available free time. No forms. No dropdowns. Just a conversation.
The interview output generates a personalized island map in watercolor style. Terrain features are named after the player's actual obligations:
The Corporation Ridge for their job. The Family Fortress for home duties. The Fog of the Feed for social media.
The rescue signal tower represents the player's primary goal. Three resource meters track Energy, Relationships, and Focus. The weather forecast shows upcoming storms derived from the player's known stressors.
Each day the player makes one decision from three survival-framed choices plus a free text option:
A storm is coming Thursday. You mentioned a deadline. Do you gather wood today (deep work on the project) or repair the shelter (call the friend you have been avoiding)?
The Storm Detection System is the technical core. It maintains persistent memory of every decision across every session and analyzes cumulative patterns to detect when the player is heading toward a predictable crash. The crash probability is modeled as:
$$P_{storm} = \frac{\sum_{i=1}^{n} w_i \cdot \delta_i}{n \cdot T_{threshold}}$$
where $w_i$ is the severity weight of decision $i$, $\delta_i$ is the imbalance indicator for that decision, $n$ is the total decisions in the analysis window, and $T_{threshold}$ is the pattern threshold for storm activation. When the signal exceeds the threshold the storm triggers, damages the rescue signal, and forces a reckoning conversation.
When the rescue signal reaches 100%, the goal is complete. The island archives as a trophy. A new goal generates a fresh island.
Players can share a read-only link with an accountability partner showing the island state, resource meters, rescue signal progress, and the last 7 days of decisions. The current island can also be exported as a high-resolution image suitable for printing as a poster.
How we built it
Built entirely using MeDo through conversational prompting in five turns.
Turn 1 built the Setup Interview Page with the conversational chat interface, the six-dimension interview flow using the LLM plugin, and the island generation logic that maps obligations to terrain features, relationships to shelter, habits to weather patterns, and free time to daylight hours.
Turn 2 built the Island Map Page with the watercolor-style island visualization, the three resource meters embedded in the island world design, the weather forecast panel, the daily decision interface with three choices plus free text, and the visual update logic after each decision.
Turn 3 implemented the Storm Detection System with persistent cross-session decision history, the cumulative pattern analysis engine, storm trigger logic, the Storm Event Page with forced reckoning conversation, and rescue signal damage calculation.
Turn 4 built the Goal Completion Page with island archival, the Archive Page with completed island display, the Shared Island View Page with read-only access and share link management including revocation, and the island export system generating high-resolution PNG files.
Turn 5 implemented anonymous authentication with persistent session identifiers, strict data isolation policies, the Text-to-Speech plugin for audio narration of island events and storm warnings, application-level and page-level error boundaries, and the 404 Not Found page.
Total build time: approximately 4 hours.
Challenges we ran into
The island generation needed to feel personal, not templated. Early versions produced islands where the terrain names were clearly generated from a list of synonyms. The Corporation Ridge felt generic. The fix was using the player's exact language from the interview rather than AI-generated substitutes. If the player called their job "the agency grind" the terrain is called The Agency Grind Ridge. Their words, not ours.
The Storm Detection System required true cross-session persistence. A storm that triggers based on today's data alone is not a storm. It is a nag. The pattern analysis had to look across every decision the player has ever made and identify slow-moving drift — the kind that feels fine day by day and catastrophic in retrospect. This required the decision history to be stored server-side, indexed by session identifier, and queried in full before every pattern analysis run.
The daily decision framing was the hardest writing problem. The choices cannot feel like a productivity checklist in disguise. They must feel like actual survival decisions where the stakes are real and the trade-offs are visible. Getting the LLM plugin to maintain the survival game frame while referencing the player's actual obligations and upcoming stressors required careful prompt engineering. Generic choices broke immersion immediately.
Anonymous authentication with strict data isolation. Players have no accounts and no passwords. Each browser session gets a persistent anonymous identifier. The data isolation policies had to be strict enough that no player could ever see another player's island, decisions, or interview responses — including through the share link system which exposes partial data by design.
Error boundaries without breaking immersion. A blank screen in a survival game destroys the experience entirely. Every page needed its own error boundary with a recovery path that kept the player inside the island world rather than dropping them into a generic error screen.
Accomplishments that we're proud of
The Storm Detection System is the feature we are most proud of. It is the only part of the product that requires memory — not just data storage, but pattern recognition across time. The system does not react to what the player did today. It reacts to who the player has been becoming over weeks. That distinction — between a single decision and an accumulated pattern — is what makes the storm feel earned rather than punitive.
The island naming system is the second feature we are proud of. Using the player's exact language to name terrain features creates a mirror effect that no template could replicate. The moment a player sees The Agency Grind Ridge on their island map they recognize their own voice in it. That recognition is the emotional hook that makes the game feel personal rather than designed.
The watercolor island visualization in consistent predefined style maintains the hand-crafted aesthetic without requiring per-session image generation. The terrain features update visually based on resource states and decision impacts, making the island a living document of the player's choices rather than a static background.
What we learned
Consequence is the missing ingredient in productivity tools. Every app tracks what you do. Almost none of them show you what your patterns are doing to you over time. The storm system exists because slow-moving self-sabotage is invisible until it becomes a crisis. Making that drift visible — as weather, as a damaged rescue signal, as a forced conversation — changes how people engage with their own choices.
Your own words are more motivating than anyone else's words. The island terrain named in the player's exact language from the interview creates immediate ownership. Design language that sounds like the designer, no matter how polished, creates distance. Language that sounds like the player creates investment.
Immersion is not decoration. Every productivity app has a theme layer over a standard database UI. Shipwrecked has no chrome that breaks the survival game frame. The resource meters are part of the island. The daily decision is framed as a survival choice. The storm is a narrative event. Immersion is not a coat of paint applied at the end. It is the architectural constraint from which every feature is designed.
Anonymous access is user experience. Requiring account creation before showing value is a conversion killer. Anonymous authentication with persistent session identifiers gives players the full experience immediately. They can decide whether to invest further before they have invested anything.
What's next for Shipwrecked
- Voice interview mode where players complete the setup interview by speaking rather than typing, lowering the friction of the initial setup significantly
- Accountability partner two-way communication allowing viewers to leave timestamped notes on the shared island view that the player can read as messages in bottles washed ashore
- Multi-goal islands where the player manages two active rescue signals simultaneously with different resource allocation priorities competing for the same daily decision
- Island evolution visualization showing a time-lapse of how the island has changed across all sessions, making the slow drift visible as a visual narrative
- Seasonal events where real-world calendar events the player mentioned in the interview (annual review, family holidays, recurring deadlines) surface as predictable weather seasons that the player can prepare for in advance
Built With
- anonymous
- apis
- authentication
- css
- deploy
- html
- javascript
- llm
- localstorage
- medo
- node.js
- plugin
- react
- rest
- text-to-speech
Log in or sign up for Devpost to join the conversation.