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:
martin 2025-08-22 19:28:05 +02:00
commit 3ce5a97422
69 changed files with 17771 additions and 1589 deletions

View file

@ -0,0 +1,25 @@
{
"permissions": {
"allow": [
"Bash(mkdir:*)",
"Bash(npm run build:*)",
"Bash(npm view:*)",
"Bash(npm install)",
"Bash(rm:*)",
"Bash(npm run dev:*)",
"Bash(curl:*)",
"Bash(node:*)",
"Bash(taskkill:*)",
"Bash(npx kill-port:*)",
"Bash(mv:*)",
"Bash(move start-dev.js scripts )",
"Bash(move setup.js scripts)",
"Bash(npm run type-check:*)"
],
"deny": [],
"ask": [],
"additionalDirectories": [
"C:\\c\\Users\\marti"
]
}
}