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.
- ๐จ AI-Powered Content Generation: Generate creative Dixit-style prompts using Google Gemini AI
- ๐ฎ Real-time Multiplayer Gameplay: Play with friends in real-time game sessions
- ๐ Custom Deck Management: Create and manage custom card decks
- ๐ Internationalization: Multi-language support with Paraglide.js
- ๐ Secure Authentication: User authentication and session management
- ๐ฑ Responsive Design: Works seamlessly across desktop and mobile devices
- ๐ฏ Type-Safe Development: End-to-end type safety with shared types
- Svelte 5 - Modern reactive web framework with runes
- SvelteKit - Full-stack framework with SSR/SSG
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Bits UI - Headless UI components
- Paraglide.js - Type-safe internationalization
- Elysia - Fast and type-safe backend framework
- Bun - JavaScript runtime and package manager
- TypeBox - JSON Schema validation
- Drizzle ORM - Type-safe database ORM
- PostgreSQL - Relational database
- Google Gemini AI - Creative prompt generation
- Runware SDK - Image generation service
- Azure Blob Storage - Cloud file storage
- Docker - Containerization for PostgreSQL
- Biome - Code formatting and linting
- Cocogitto - Conventional Commits
- Eden - End-to-end type safety
- Bun (recommended) or Node.js 18+
- Docker for database
- Google Gemini API key
- Runware API key
- Azure Storage account (optional)
-
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
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"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"- Create custom card decks
- Import/export deck configurations
- AI-generated card content
- Community deck sharing
- Real-time game sessions
- Voting mechanics
- Score tracking
- Round-based gameplay
# 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 buildThe project supports multiple languages using Paraglide.js:
# Compile translations
cd client && bun run paraglide:compileTranslation files are located in client/messages/ directory.
# Build all packages
bun run build
# Start production server
bun run start- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the creativity of Dixit and similar storytelling games
- Built with modern web technologies and AI integration
- Community feedback and contributions
Made with โค๏ธ for creative storytellers and game enthusiasts