A lightweight, fast, and easily deployable pixel art collaborative canvas inspired by Reddit's r/Place. Create pixel art together in real-time!
- Real-time Collaboration: Multiple users can place pixels simultaneously
- Lightweight Architecture: Built for performance and easy deployment
- Rate Limiting: Prevents spam and ensures fair participation
- Admin Controls: Manage canvas size, reset areas, and moderate content
- Responsive Design: Works seamlessly on desktop and mobile devices
- React Router 7 - Modern React framework with file-based routing
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- TypeScript - Type-safe JavaScript development
- Rust - Systems programming language for maximum performance
- Axum - Modern async web framework for Rust
- Tokio - Asynchronous runtime for Rust
- Node.js (v18 or higher)
- Rust (latest stable version)
- Docker and Docker Compose (for containerized deployment)
# Build and deploy with Docker
docker-compose up -d# Use the provided build script
chmod +x build.sh
./build.shCreate a configuration file in backend/config/ to customize:
- Canvas dimensions
- Rate limiting settings
- Authentication settings
- File storage paths
- Visit the canvas - Navigate to the application URL
- Choose a color - Select from the color palette
- Place pixels - Click on the canvas to place your pixel
- Wait for cooldown - Each placement has a cooldown period
- Collaborate - Work with others to create amazing pixel art!
The project includes a docker-compose.yml file for easy deployment. You may need to modify it according to your specific requirements:
# Example modifications you might need:
# - Change port mappings
# - Add environment variables
# - Configure volumes for data persistence
# - Set up reverse proxy settingsThis project is licensed under the MIT License - see the LICENSE file for details.
Happy pixel painting! 🎨