Inspiration
Everyone daydreams. Some of us daydream worlds — with characters who have names and backstories, locations that feel real, relationships that evolve over time, scenes that replay in our heads while we commute, fall asleep, or pretend to pay attention in meetings.
But there's nowhere to put it all. Notes apps are too flat. Writing tools assume you're drafting a novel. Character creators assume you're playing a game. Tools like SillyTavern are powerful but complex and carry a stigma that doesn't fit the cozy, creative experience most daydreamers want.
Every existing tool is either character-first or novel-first. Nobody was building world-first — where the universe itself is the foundation, and characters, conversations, scenes, and stories all grow from it. That's how daydreaming actually works: you build the world first, then you live in it.
I wanted to build the app I wished existed — and MeDo made it possible to go from concept to a fully functional, visually polished product as a solo builder in three weeks.
What it does
Lorekeeper is a worldbuilding app for daydreamers. You create fictional worlds — characters with personalities and backstories, locations with atmosphere and sensory detail, lore with history and rules — and then you step into them through AI-powered interactions.
🌌 The Multiverse — Your Home Screen Each world you create is a glowing orb floating in a personal cosmos. You can build as many universes as you want — a gothic magic school, a ninja village, a superhero academy — and hop between them. The multiverse grows as your imagination does, complete with an animated starfield that makes opening the app feel like stepping into a different headspace.
✦ Build Your World Create characters, locations, and lore entries with rich, structured detail. Every character has a personality that feeds the AI, every location has a "vibe" that sets the scene, and every piece of lore deepens the world. Define relationships between everything — rivalries, mentorships, forbidden romances, political alliances — color-coded by type (rose for forbidden attraction, warm gold for loyalty, teal for mentorship). Watch your world come alive as a glowing Constellation graph, where the most-connected entity sits at the center and every node drifts gently like stars breathing.
🎨 Bring Entities to Life with AI Art Generate portraits for any character or background art for any location with Kling AI integration. Type a description, watch the polling status pulse, and your daydream gets a face.
💬 Step Inside It Chat with your characters in-character. They know their personality, their relationships, where they are, and what's happening in your world. Every message dynamically pulls in tagged entities — so when your assassin walks into a tavern, the AI already knows about the bartender's debt and the bounty board lore you wrote three weeks ago. Generate narrative scenes between characters at specific locations through the AI Scene Director, with multi-character selection, location targeting, and prompt-driven scene generation.
📖 Write Your Story Organize your world into chapters. Write your own prose with an AI-assisted editor that can continue your writing, rewrite passages, or describe settings — all pulling from your worldbuilding as context. Every chapter holds your prose, your chat sessions with characters, and your saved scenes side by side.
🗺️ Map Your World Spatially Build interactive location maps with drag-and-drop nodes, parent-child connections, and AI-generated background art. Annotate maps with freehand paths, labels, custom markers, and region polygons in any color. It's a worldbuilding tool that finally treats geography as something you can see.
📥 Import Any Story Paste a story, upload a file, and let Lorekeeper's AI read the entire thing and auto-generate a complete world: every character, location, lore entry, and relationship, organized into chapters and visualized as a constellation. A long story becomes an explorable universe in seconds.
🔍 Find Anything, Anywhere The Advanced Search modal filters across all entity types, tags, and full-text content. The integrated Web Search (Cmd/Ctrl+K) lets you find inspiration from the open web with context-aware actions: insert a quote into your chapter, set a found image as a portrait, or pull a description into a character's appearance field.
🎧 Experience It Each writing session can have an ambient soundscape — rain, fireplace, forest, ocean, wind, tavern, city, night — that plays softly while you chat or write. A Daily Daydream Prompt greets you each time you open a world. The Timeline View shows your story unfolding chronologically, scrollable with chapters and scenes as glowing nodes. The Mood Board captures the aesthetic of each world with text snippets, web-searched images, and drag-and-drop reordering. Memory Milestones celebrate your worldbuilding journey — first entity, tenth entity, first relationship, hundredth message — with sparkle-laden achievement toasts. The Journey sidebar shows recent activity so you can pick up exactly where you left off.
🎲 Discover New Stories A Surprise Me button picks random entities from your world and uses Claude to generate provocative encounter prompts. One tap turns the prompt into a full scene through the Scene Director.
📤 Make It Yours, Take It Anywhere Export your entire universe as JSON to back up or share. Import any exported world to instantly populate a new universe. Your worlds are yours.
How we built it
Lorekeeper exists because of MeDo. As a solo builder with a three-week deadline and a vision that spanned 35+ features across 8 screens, traditional development was off the table — I would have spent the entire window wiring up React boilerplate, configuring Supabase, debugging TypeScript types, and never gotten near the worldbuilding logic, the AI integrations, or the cosmic aesthetic that makes the app feel like the inside of a daydream.
MeDo collapsed all of that. Every screen, component, animation, data model decision, and AI integration was specified in natural language and built through MeDo's chat interface. No Vite config debugging. No Tailwind purge issues. No Supabase client setup. Just describing what the app should do and what it should feel like — and watching it appear.
What MeDo enabled was a fundamental shift in where my time went. Instead of fighting tooling, I spent three weeks on the things that actually matter: the emotional resonance of the home screen, the precise feel of a hover state, the cadence of how a generated scene reveals itself paragraph by paragraph. The product is what it is because MeDo handled everything else.
Tech Stack (all scaffolded by MeDo): React 19 + TypeScript + Vite + TailwindCSS 3 + Framer Motion + lucide-react on the frontend; Supabase (Postgres + Storage + Edge Functions) for backend; Gemini 2.5 Flash + Claude Sonnet + Kling AI behind a unified provider layer for AI; HTML5 Audio for ambient soundscapes.
Pairing MeDo with OpenClaw — building from anywhere
The other half of the workflow was OpenClaw, an open-source personal AI agent that runs on my own machine and connects to chat apps like Telegram and Discord. Pairing MeDo with OpenClaw meant I could fix, build, and ship Lorekeeper from anywhere — not just sitting at my laptop.
A typical loop: I'd notice a bug while testing the app on my phone in bed, message OpenClaw on Telegram describing what was wrong, and OpenClaw would investigate the code, draft a fix, and hand it back to MeDo for implementation. Same pattern for new features — I could spec a small one in chat from a coffee shop, and by the time I got home it was already running. For deployment, OpenClaw handled the publish steps directly: pushing changes, monitoring builds, checking logs, and surfacing anything that needed my decision.
What this combination unlocked was continuity. MeDo gave me a way to build entire features through natural language. OpenClaw gave me a way to keep building when I wasn't at the desk. Together they collapsed the distance between "I have an idea" and "it's live in the app" — which is how a solo builder ships 35+ features in three weeks.
How I structured conversations with MeDo
After a few rough early features, a working pattern emerged:
- One feature per conversation. Stacking multiple features into a single prompt meant MeDo would silently skip the third or fourth thing. Short, self-contained prompts produced reliable output every time.
- Write specs as checklists, not paragraphs. Numbered requirements with concrete values and edge-case behavior produced polished output on the first or second pass. Vague descriptions produced vague results.
- Specify the empty state, error state, and loading state every time. "What does the user see when there's nothing here yet?" got answered in the same prompt as the happy path.
- Iterate visually, not architecturally. When something felt off, I described the fix in experiential terms ("nodes should drift like stars breathing") rather than implementation terms, and MeDo translated.
- Treat refactors as natural-language migrations. Mid-project I swapped persistence from IndexedDB to Supabase. I described the new model once and MeDo propagated the change across every entity, chapter, chat session, and image upload in a single coordinated pass — a refactor that would have taken days by hand. The mental shift was treating the prompt itself as the deliverable. The cleaner the spec, the cleaner the build. MeDo rewards precision the way a compiler rewards correct syntax.
The most impressive feature MeDo helped me create
The Constellation graph — the radial relationship visualization at the heart of every world. It's the single screen that communicates what Lorekeeper is in three seconds, and it's also the most technically dense thing in the app: a custom layout algorithm, ambient per-node animations, hover cascade logic, entity-type color coding, an empty state, and a slide-in side panel with full context.
I described all of it in one MeDo session. Layout: most-connected entity at center, radiating outward by edge count. Motion: nodes should breathe, drifting gently so the graph feels alive rather than static. Interaction: hover one node, watch its connections illuminate while everything else fades. MeDo built it in a single iteration. The second pass refined the feel of the motion.
What would have been a multi-day implementation project became an afternoon. And it's not a stripped-down version — it's the polished, demo-ready feature I show first every time. MeDo turned what would have been a stretch goal into the defining feature of the product.
How I used plugins and API integrations to extend functionality
MeDo handles the app itself. Three integrations extended it outward — each scaffolded in a single MeDo conversation, including the Edge Function setup, environment wiring, and client-side calls:
Web Search plugin — wired into the Mood Board, Chapter Detail, and Entity Editor with a Cmd/Ctrl+K shortcut. Results are context-aware: the same found image becomes Set as portrait in the Entity Editor, Insert into prose from a chapter, or Add to board from the Mood Board. MeDo built the full flow — UI, shortcut, history, Edge Function — from one description.
Supabase integration — handles the database, image storage, and Edge Functions that proxy every third-party API call so keys stay server-side. Auto-save runs in the background on every keystroke while the UI updates optimistically. MeDo set the whole thing up from a description of how the data should behave.
Kling AI image generation — character portraits and location map backgrounds. Generations are async with a polling indicator while the user waits, and finished images are saved to Supabase Storage. MeDo wired up the full flow — UI states, Edge Function, polling, storage — from a single description.
Challenges we ran into
Scope discipline as a solo builder. The vision was always bigger than three weeks. I had to ruthlessly prioritize: core worldbuilding first, then chat, then scenes, then the constellation, then layer additional features one by one. The lesson — a polished app with fewer features beats a broken app with more.
Making the constellation graph feel alive, not clinical. Early versions looked like a network diagram from a computer science textbook. The breakthrough was treating it as a literal star map — drifting nodes, glow effects, dimming on hover — and it went from "useful" to "the thing people want to screenshot."
AI context quality for character chat. The difference between a generic chatbot and a character who feels like they live in your world is entirely in what gets fed to the model. Too little and the character is bland; too much and the AI loses focus. Finding the right balance took many iterations.
Fanfic import reliability. Unstructured creative writing doesn't parse neatly into entities. The AI sometimes merged characters or invented relationships. The fix was a preview-and-edit step that lets users correct mistakes before the world is created — making the feature feel reliable rather than magical-but-broken.
Getting MeDo to implement every detail. No-code tools sometimes skip features or simplify specs. I learned to write extremely detailed, checklist-driven prompts — one feature at a time, with every edge case spelled out — to ensure nothing was omitted.
Accomplishments that we're proud of
The constellation graph. Hovering over a character and watching their connections illuminate while everything else fades — it feels like looking at a map of someone's imagination.
Fanfic-to-universe import. Watching a long story transform into a fully populated world in under a minute is the feature that makes people say "wait, it can do that?"
The location map builder. What started as "let users arrange locations spatially" became a full annotation system with freehand drawing, markers, region polygons, and AI-generated backgrounds. The feature I'm most surprised I shipped.
A cohesive aesthetic across the whole app. Every screen and interaction follows the same cosmic visual language. It doesn't look like a hackathon project — it looks like a product someone would pay for.
Building this solo in three weeks. MeDo let me focus on the vision, the design, and the emotional experience instead of fighting with build tools and boilerplate. I shipped more than I thought possible.
What we learned
Design is the product in a no-code hackathon. When the code is abstracted away, visual quality and emotional resonance become your primary differentiators. I spent as much time on hover glow effects and animation timing as on feature logic — and that investment shows in every interaction.
Context engineering beats prompt engineering. What you put into the model matters more than how you ask. The tag-traversal that surfaces adjacent lore was a bigger quality lever than any prompt rewrite. Lorekeeper's chat feels canon-aware not because of clever wording, but because of the architecture of what reaches the model.
The emotional hook matters more than the feature count. "Build the world you daydream in, then step inside it" — that single sentence did more for this project than any technical spec. It guided every design decision, every feature priority, and every word of copy in the app. When you can explain your app's soul in one breath, everything else follows.
MeDo is genuinely powerful for solo builders. I expected limitations and compromises. What I got was the ability to iterate on visual design, data architecture, and feature logic through conversation — at a speed that would be impossible writing code from scratch. The key was learning to write extremely specific, detailed prompts. Vague instructions produce vague results. Precise descriptions — down to the hex code and the animation curve — produce polished products.
What's next for Lorekeeper
Multi-character group scenes — Chat with 2+ characters simultaneously in the same conversation, where they interact with each other and with you. The hardest AI prompting challenge in the app, but the most immersive feature imaginable.
AI character consistency memory — Tracking what each character has said and done across all conversations and scenes to prevent contradictions across long story arcs.
Community world gallery — A public space where users can publish their worlds for others to browse and explore (read-only). Discover other people's universes — "Trending Worlds," "Most Characters," "Newest." Turn Lorekeeper from a personal tool into a creative community.
Shareable character cards — Export any character as a beautiful, Instagram-story-sized image card showing their portrait, name, role, key relationships, and a signature quote. Daydreamers already make these in Canva — Lorekeeper should generate them automatically.
Voice chat with characters — Hands-free daydreaming. Lie in bed, close your eyes, talk to your characters out loud, hear them respond.
Force-directed and hierarchical constellation layouts — Alternative views of the relationship graph for users who want different ways to see their world.
Mobile-native app — The web app is responsive, but a dedicated mobile experience would perfectly serve the core use case: daydreaming in bed at midnight, phone in hand, stepping into a world only you know exists.
Built With
- medo
- react
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.