A modern full-stack web application for creating and playing card-based storytelling games, featuring AI-powered content generation and real-time multiplayer gameplay.
Meeplix is a digital platform inspired by storytelling games like Dixit, where players use creative prompts and images to tell stories, vote, and compete in rounds of imaginative gameplay. The platform combines modern web technologies with AI-powered content generation to create unique gaming experiences.
Clone the repository
git clone https://github.com/yourusername/meeplix.git
cd meeplix
Install dependencies
bun install
Start the database
docker-compose up -d postgres
Set up environment variables
# Copy example env files and configure
cp server/.env.example server/.env
cp client/.env.example client/.env
Run database migrations
cd server
bun run db:push
Start development servers
# Terminal 1 - Backend
cd server
bun run dev
# Terminal 2 - Frontend
cd client
bun run dev
server/.env
)DATABASE_URL="postgresql://meeplix_user:meeplix_password@localhost:5432/meeplix_db"
GEMINI_API_KEY="your-gemini-api-key"
AZURE_STORAGE_CONNECTION_STRING="your-azure-connection-string"
client/.env
)PUBLIC_API_URL="http://localhost:3000"
meeplix/
āāā client/ # SvelteKit frontend application
ā āāā src/
ā ā āāā lib/ # Shared components and utilities
ā ā āāā routes/ # SvelteKit file-based routing
ā ā āāā app.html # HTML template
ā āāā static/ # Static assets
ā āāā package.json
āāā server/ # Elysia backend application
ā āāā src/ # Server source code
ā āāā drizzle/ # Database migrations
ā āāā package.json
āāā shared/ # Shared types and utilities
ā āāā api.ts # API type definitions
ā āāā models/ # Database models
ā āāā utils.ts # Shared utilities
āāā ai/ # AI integration modules
ā āāā gemini/ # Google Gemini integration
ā āāā runware/ # Runware image generation
ā āāā azure/ # Azure storage integration
āāā docker-compose.yml # Development database setup
Generate creative storytelling prompts using Google Gemini AI:
# Interactive prompt generation
bun run dixit-prompts
# Generate prompts for specific topic
bun run dixit-prompts-simple "nature"
# Generate migrations
bun run db:generate
# Apply migrations
bun run db:migrate
# Push schema changes
bun run db:push
# Open Drizzle Studio
bun run db:studio
# Build frontend
cd client && bun run build
# Build backend
cd server && bun run build
The project supports multiple languages using Paraglide.js:
# Compile translations
cd client && bun run paraglide:compile
Translation files are located in client/messages/
directory.
# Build all packages
bun run build
# Start production server
bun run start
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ā¤ļø for creative storytellers and game enthusiasts