Unleash your creativity in a game of sketches and smarts!
A real-time multiplayer drawing and guessing game where users can create or join rooms, draw prompts, and guess others' drawings. Built with Prisma, Node.js, and WebSockets for live interaction.
๐ Play Scriblo Now : https://scriblo.ayushman.blog
- ๐ฎ Real-time Multiplayer - Play with friends in custom rooms
- ๐ผ๏ธ Interactive Drawing Canvas - Smooth drawing experience with various tools
- ๐ฌ Live Chat - Communicate with other players during the game
- ๐ฏ Word Guessing - Dynamic word selection and scoring system
- ๐ Dark/Light Mode - Toggle between themes for comfortable playing
- ๐ฑ Responsive Design - Play on desktop, tablet, or mobile devices
- โก Fast & Smooth - Built with performance in mind using modern tech stack
- Next.js 15 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS - Styling
- Shadcn UI - UI components
- WebSocket - Real-time communication for live gameplay
- Redis - Session Management
- Custom HTTP API - (Prepared for v2 - not currently active)
Before you begin, ensure you have the following installed:
- Node.js (version 18 or higher)
- pnpm (recommended) or npm
- Git
git clone https://github.com/ayushman31/scriblo.git
cd scriblo# Using pnpm (recommended)
pnpm install
# Or using npm
npm install# Start all apps in development mode
pnpm dev
# Or start individual apps
pnpm dev --filter=web # Landing page (http://localhost:3000)
pnpm dev --filter=game # Game app (http://localhost:3001)
pnpm dev --filter=ws # WebSocket server
pnpm dev --filter=http # HTTP API server (v2 - not currently used)- Landing Page: http://localhost:3000
- Game Interface: http://localhost:3001
scriblo/
โโโ apps/
โ โโโ web/ # Landing page (Next.js)
โ โโโ game/ # Game interface (Next.js)
โ โโโ ws/ # WebSocket server
โ โโโ http/ # HTTP API server (v2 - prepared for future)
โโโ packages/
โ โโโ ui/ # Shared UI components
โ โโโ common/ # Shared utilities
โ โโโ db/ # Database utilities (v2 - prepared for future)
โ โโโ backend-common/ # Shared backend code
โโโ docs/ # Documentation and assets
- Create or Join a Room - Start a new game or join an existing room with a code
- Take Turns Drawing - When it's your turn, draw the given word
- Guess the Drawing - Try to guess what other players are drawing
- Chat & Have Fun - Use the chat to communicate and celebrate good guesses!
# Development
pnpm dev # Start all apps in development mode
pnpm dev --filter=web # Start specific app
# Building
pnpm build # Build all apps for production
pnpm build --filter=game # Build specific app
# Code Quality
pnpm lint # Run ESLint on all packages
pnpm format # Format code with Prettier
pnpm check-types # Run TypeScript type checking
# Testing
pnpm test # Run tests (when implemented)Here's how you can help make Scriblo even better:
Found a bug? Please create an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
Have an idea? We'd love to hear it! Create an issue with:
- Description of the feature
- Why it would be useful
- Any examples or mockups
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Write clear commit messages
- Add tests for new features (when testing is set up)
- Update documentation as needed
- Mobile canvas drawing needs optimization
- Add player avatars
- Implement scoring system
- Add sound effects
- HTTP API Integration - Enhanced backend with REST endpoints
- Database Integration - Persistent data storage for users and games
- User Authentication - Save progress and stats
- Game Statistics - Track wins, drawings, and more
- Custom Word Lists - Upload your own words
- Private Rooms - Password-protected games
- Spectator Mode - Watch games without playing
- Mobile App - Native iOS and Android apps
- GitHub Issues: Report bugs or request features
- X: https://x.com/ayushman00singh
