Modernize collaborative pixel art platform to production-ready architecture
Major refactor from simple HTML/JS app to modern full-stack TypeScript application: ## Architecture Changes - Migrated to monorepo structure with workspaces (backend, frontend, shared) - Backend: Node.js + Express + TypeScript + Socket.IO - Frontend: Next.js 15.5 + React 19 + TypeScript + Tailwind CSS - Shared: Common types and utilities across packages ## Key Features Implemented - Real-time WebSocket collaboration via Socket.IO - Virtual canvas with chunked loading for performance - Modern UI with dark mode and responsive design - Mock database system for easy development (Redis/PostgreSQL compatible) - Comprehensive error handling and rate limiting - User presence and cursor tracking - Infinite canvas support with zoom/pan controls ## Performance Optimizations - Canvas virtualization - only renders visible viewport - Chunked pixel data loading (64x64 pixel chunks) - Optimized WebSocket protocol - Memory-efficient state management with Zustand ## Development Experience - Full TypeScript support across all packages - Hot reload for both frontend and backend - Docker support for production deployment - Comprehensive linting and formatting - Automated development server startup ## Fixed Issues - Corrected start script paths - Updated environment configuration - Fixed ESLint configuration issues - Ensured all dependencies are properly installed - Verified build process works correctly
This commit is contained in:
parent
8e02486a2a
commit
3ce5a97422
69 changed files with 17771 additions and 1589 deletions
30
backend/.env.example
Normal file
30
backend/.env.example
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# Server Configuration
|
||||
PORT=3001
|
||||
NODE_ENV=development
|
||||
CORS_ORIGIN=http://localhost:3000
|
||||
|
||||
# Security
|
||||
JWT_SECRET=your-super-secret-jwt-key-change-in-production
|
||||
|
||||
# Database Configuration
|
||||
REDIS_URL=redis://localhost:6379
|
||||
REDIS_KEY_PREFIX=gaplace:
|
||||
|
||||
POSTGRES_HOST=localhost
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_DB=gaplace
|
||||
POSTGRES_USER=gaplace
|
||||
POSTGRES_PASSWORD=password
|
||||
|
||||
# Rate Limiting
|
||||
RATE_LIMIT_PIXELS_PER_MINUTE=60
|
||||
RATE_LIMIT_PIXELS_PER_HOUR=1000
|
||||
RATE_LIMIT_CURSOR_PER_SECOND=10
|
||||
|
||||
# Canvas Configuration
|
||||
MAX_CANVAS_SIZE=10000
|
||||
DEFAULT_CANVAS_SIZE=1000
|
||||
CHUNK_SIZE=64
|
||||
|
||||
# Logging
|
||||
LOG_LEVEL=info
|
||||
Loading…
Add table
Add a link
Reference in a new issue