Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
A tabletop RPG where the world does not wait for you. Now in beta.
GamesTypeScript · JavaScriptGitHub @SpeckledorkedOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗The world doesn't wait for you.
Leave a city mid-crisis and come back a month later — it may have fallen, been saved by someone else, or quietly changed hands while you were gone. MythOS is built on top of a real simulation that keeps running whether or not anyone's at the table: NPCs pursue their own goals, factions rise, fight, and collapse, seasons turn, and every consequence of what you did — a debt owed, a wound taken, a promise broken — is written into durable, structured state that keeps compounding long after the scene ends. The AI's job is to narrate what that simulation already decided. It never invents an outcome from scratch.
MythOS is not a chatbot improvising a story with you. It's not a choose-your-own-adventure with an LLM stapled on. It's a living simulation, and the AI is the voice that tells you what it already decided.
Curious how any of this actually works — what's built, what's tested,
what's still rough, and what's next? The full technical audit lives in
docs/ARCHITECTURE.md.
This application uses PostgreSQL's pgvector extension for the campaign
memory RAG system. It must be installed before running the application.
Easiest option: Docker (pgvector pre-installed):
docker-compose up -d
Alternative: install manually:
# Ubuntu/Debian
./scripts/setup-pgvector.sh
# macOS
brew install pgvector
See SETUP.md for detailed installation instructions.
# 1. Clone the repository
git clone https://github.com/yourusername/interactive-stories-live.git
cd interactive-stories-live
# 2. Install dependencies
npm install
# 3. Start PostgreSQL with pgvector
docker-compose up -d
# 4. Configure environment
cp .env.example .env
# Edit .env and set:
# DATABASE_URL="postgresql://pguser:pgpassword@localhost:5432/interactive_stories"
# OPENAI_API_KEY="your-key-here"
# PUSHER_* variables
# JWT_SECRET (generate with: openssl rand -base64 32)
# 5. Run database migrations
npx prisma migrate dev
# 6. Start the development server
npm run dev
Navigate to http://localhost:3000 to see the application.
See SETUP.md for detailed manual setup instructions including installing PostgreSQL and pgvector, configuring environment variables, setting up Pusher and OpenAI, and troubleshooting common issues.
# Run development server
npm run dev
# Run tests
npm test
# Run tests with UI
npm run test:ui
# Build for production
npm run build
# Start production server
npm start
# Database management
npm run prisma:studio # Open Prisma Studio
npm run prisma:migrate # Run migrations
npm run prisma:generate # Generate Prisma Client
.
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── lib/ # Utility libraries
│ ├── services/ # Business logic and services
│ └── hooks/ # Custom React hooks
├── prisma/
│ ├── schema.prisma # Database schema
│ └── migrations/ # Database migrations
├── scripts/
│ ├── setup-pgvector.sh # pgvector installation script
│ ├── init-db.sql # Database initialization
│ └── README.md # Scripts documentation
├── docs/
│ ├── ARCHITECTURE.md # Full technical audit: what's built, tested, and next
│ ├── design-system.md # UI conventions: tokens, type scale, primitives, chrome
│ └── MIGRATIONS.md # How to write and apply schema migrations
├── docker-compose.yml # Docker setup with pgvector
└── SETUP.md # Detailed setup guide
src/lib/ai/models.ts) for
story generation, with a multi-model fallback chain and an opt-in
per-scene image-generation modelmyth design token system (light/dark
with a manual toggle) — conventions in docs/design-system.md. Every
interactive control comes from src/components/ui/; don't hand-style a
raw <button> or <input>.This means pgvector isn't installed. See SETUP.md#troubleshooting for solutions.
Check SETUP.md for detailed troubleshooting steps.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)[Add your license here]
For issues and questions: