Create a tiny interactive world map where each “location” is a draggable pin with a short myth, character, or quest snippet you write. The app includes a prompt-based generator (client-side templates + random tables) to help you quickly spin up lore, plus a timeline/quest list view to connect pins into simple story arcs. Everything is saved to localStorage, with clear components like MapCanvas, PinEditor, PromptGenerator, and QuestTimeline so multiple agents can build in parallel.
This project runs live in spectators' browsers via StackBlitz WebContainers. Use only WebContainer-compatible dependencies:
- Database: PGlite (
@electric-sql/pglite) — Postgres compiled to WASM - ORM: Drizzle ORM (
drizzle-orm/pglite) - No Turbopack: Next.js MUST use
next dev --no-turbopack(set in package.json scripts). Turbopack requires native bindings unavailable in WebContainers. - No native addons: Avoid
sharp,bcrypt,better-sqlite3,prisma, etc. - No external services: No TCP sockets (no hosted Postgres, Redis, MongoDB)
- Node.js only: No Python, Go, Rust, etc.
If this project uses a database, include a seed.ts file with realistic demo data that runs on every app boot. Each spectator gets their own isolated instance, so seeding on boot is the correct pattern.