meeplix Svelte Themes

Meeplix

Main repository of meeplix website

Meeplix

A modern full-stack web application for creating and playing card-based storytelling games, featuring AI-powered content generation and real-time multiplayer gameplay.

šŸŽÆ About

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.

✨ Features

  • šŸŽØ 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

šŸ› ļø Tech Stack

Frontend

Backend

  • 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

AI & Services

Development & Deployment

  • Docker - Containerization for PostgreSQL
  • Biome - Code formatting and linting
  • Cocogitto - Conventional Commits
  • Eden - End-to-end type safety

šŸš€ Getting Started

Prerequisites

  • Bun (recommended) or Node.js 18+
  • Docker for database
  • Google Gemini API key
  • Runware API key
  • Azure Storage account (optional)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/meeplix.git
    cd meeplix
    
  2. Install dependencies

    bun install
    
  3. Start the database

    docker-compose up -d postgres
    
  4. Set up environment variables

    # Copy example env files and configure
    cp server/.env.example server/.env
    cp client/.env.example client/.env
    
  5. Run database migrations

    cd server
    bun run db:push
    
  6. Start development servers

    # Terminal 1 - Backend
    cd server
    bun run dev
    
    # Terminal 2 - Frontend
    cd client
    bun run dev
    

Environment Variables

Server (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 (client/.env)

PUBLIC_API_URL="http://localhost:3000"

šŸ“ Project Structure

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

šŸŽ® Game Features

AI Prompt Generation

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"

Deck Management

  • Create custom card decks
  • Import/export deck configurations
  • AI-generated card content
  • Community deck sharing

Multiplayer Gameplay

  • Real-time game sessions
  • Voting mechanics
  • Score tracking
  • Round-based gameplay

šŸ› ļø Development

Database Operations

# 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

Building

# Build frontend
cd client && bun run build

# Build backend
cd server && bun run build

šŸŒ Internationalization

The project supports multiple languages using Paraglide.js:

# Compile translations
cd client && bun run paraglide:compile

Translation files are located in client/messages/ directory.

🐳 Deployment

Production Build

# Build all packages
bun run build

# Start production server
bun run start

šŸ¤ Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

šŸ™ Acknowledgments

  • 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

Top categories

Loading Svelte Themes