Worldbuilding atlas for game development teams. This repo follows the rules in AGENTS.md.
- Copy env file:
cp .env.example .env- Start Postgres:
docker-compose up -d db- Install deps + generate Prisma client:
npm install
npx prisma generate- Run migrations and dev server:
npx prisma migrate dev --name init
npm run dev- Health check:
curl http://localhost:3000/healthdocker compose up --buildDetailed guide: see DEPLOY.md.
- Install Docker + Compose:
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker- Clone and configure:
git clone https://github.com/GrEarl/Depictionator.git depictionator
cd depictionator
cp .env.example .envEdit .env:
- Set
AUTH_SECRETto a strong random value. - Set
APP_BASE_URLto your public URL (e.g. https://your-domain). - Configure LLM providers/keys as needed (see LLM section).
- Keep
DATABASE_URLpointing atdbfor compose (default is fine).
- Build + start:
docker compose up -d --build- Verify:
curl http://localhost:3000/healthNotes:
- The container entrypoint runs
prisma migrate deployif migrations exist; otherwise it runsprisma db pushautomatically. - Assets are stored in the
assets-datavolume; DB indb-data.
- Enable providers with
LLM_PROVIDERS_ENABLED(comma list:gemini_ai,gemini_vertex,codex_cli) and choose a default withLLM_DEFAULT_PROVIDER. - Gemini (AI Studio): set
GEMINI_API_KEYand optionallyGEMINI_MODEL(e.g.gemini-3-flash-previeworgemini-3-pro-preview). You can override API versions withGEMINI_API_VERSIONandGEMINI_API_VERSION_FALLBACK. - Gemini (Vertex): set
VERTEX_GEMINI_API_KEY,VERTEX_GEMINI_PROJECT,VERTEX_GEMINI_LOCATION, and optionallyVERTEX_GEMINI_MODEL. You can override API versions withVERTEX_GEMINI_API_VERSIONandVERTEX_GEMINI_API_VERSION_FALLBACK. - Codex CLI: ensure
codexis installed and available (override path withCODEX_CLI_PATH), and optional timeout viaCODEX_EXEC_TIMEOUT_MS. The app can accept a base64auth.jsonper request or use the default~/.codex/auth.json.
- Database (example):
pg_dump -h localhost -U postgres -d worldlore > backup.sql- Assets: stored under the Docker volume
assets-data(mounted at/app/storage). Snapshot or export that volume alongside DB backups.
- This is an MVP scaffold with minimal UI and full backend endpoints for core features.
- PDF export uses Puppeteer in
/api/pdf/export.
The new map editor provides a professional, designer-friendly experience:
- /maps - Grid/list view of all maps with preview thumbnails
- /maps/[id] - Fullscreen Figma-style editor for individual maps
- Separated creation/import/editing workflows for maximum canvas space
- Top Toolbar: Mode selection (Select/Pin/Path), zoom controls, back navigation
- Left Sidebar: Layers panel + drag-and-drop entity list
- Main Canvas: Full-screen Leaflet map with proper coordinate handling
- Right Panel: Context-sensitive properties (appears when pin/path selected)
- V - Select/Move mode (default)
- P - Pin placement mode
- L - Path drawing mode
- Esc - Cancel current operation, return to select mode
- Arrow Keys - Pan the map
- Drag entities from sidebar → auto-create pins at drop location
✅ Tools no longer appear outside map bounds (proper coordinate conversion) ✅ Inspector panels are fixed UI elements, not canvas overlays ✅ Map display is fullscreen (not cramped by surrounding UI) ✅ Intuitive mode switching with visual feedback ✅ Keyboard-first workflow for power users
- Zero training required: Visual affordances guide users naturally
- Direct manipulation: Drag entities, click to place, immediate feedback
- Personas-inspired aesthetics: Bold typography, vibrant accents, game-like polish