A collaborative digital canvas for mindfulness and teamwork - Create beautiful art together, one contribution at a time.
Pixel Canvas Collab is a unique digital mindfulness and teamwork tool that enables users to create beautiful artwork collaboratively. The platform emphasizes patience, interpretation, and human creativityβno AI, no shortcuts, just pure handcrafted digital art.
- Text-Based Creation: Projects start with only a text descriptionβno image uploads allowed
- Community Interpretation: Contributors interpret the vision and bring it to life piece by piece
- Real-Time Collaboration: Watch artwork evolve as users worldwide contribute simultaneously
- Mindful Experience: Designed to promote focus, calmness, and collaborative creativity
The platform supports 5 distinct canvas types, each offering a unique creative experience:
- π§΅ Embroidery - Create digital embroidery patterns with thread-like strokes
- π¨ Mosaic - Build intricate mosaics with colorful tiles
- π§ Watercolor - Paint with flowing watercolor effects
- π΅ AudioVisual - Place musical notes that create both visual and audio experiences
- ποΈ Paint - Traditional digital painting with brush strokes
- Email/password authentication
- Google OAuth integration
- Secure session management with JWT tokens
- User profiles with contribution tracking
- Real-Time Updates: Socket.io-powered live canvas updates
- Contributor Profiles: View user stats, streaks, and contribution history
- Project Discovery: Explore ongoing and completed projects
- Canvas Progress Tracking: Visual indicators showing completion percentage
- Conflict Handling: Smart handling of simultaneous contributions
- Create Projects: Start new collaborative canvases with descriptions and canvas types
- Explore Page: Browse active, completed, and archived projects with filters and search
- Admin Controls: Archive or delete projects (admin users only)
- Download Artwork: Export completed canvases as PNG, WAV (for AudioVisual), or JSON
- Zoomable Canvas: Intuitive pan and zoom controls
- Color Picker: Full-featured color selection tools
- Responsive Design: Optimized for desktop and mobile devices
- Dark Mode: Beautiful dark theme with calming blue color palette
- Minimalist UI: Clean interface focusing on the canvas as the primary element
- Next.js 15.3.3 - React framework with App Router
- React 18.3.1 - UI library
- TypeScript 5 - Type safety
- Tailwind CSS - Utility-first styling
- shadcn/ui - Beautiful UI components based on Radix UI
- Lucide React - Icon library
- Socket.io Client - Real-time communication
- Next.js API Routes - Serverless API endpoints
- Socket.io Server - WebSocket server for real-time updates
- MongoDB with Mongoose - Database and ODM
- JWT & bcrypt - Authentication and security
- Zod - Schema validation
- React Hook Form - Form management
- Genkit AI - AI integration capabilities
- ESLint & TypeScript - Code quality
- Turbopack - Fast development builds
- Node.js 20.x or higher
- npm or yarn package manager
- MongoDB database (local or cloud instance like MongoDB Atlas)
-
Clone the repository
git clone https://github.com/mianjunaid1223/Collab-Studio.git cd Collab-Studio -
Install dependencies
npm install
-
Configure environment variables
Create a
.env.localfile in the root directory:# MongoDB Connection MONGODB_URI=mongodb://localhost:27017/pixel-canvas-collab # or for MongoDB Atlas: # MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/pixel-canvas-collab # JWT Secret (generate a secure random string) JWT_SECRET=your-super-secret-jwt-key-change-this # Google OAuth (Optional - for Google sign-in) GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret # App URL (for production) NEXT_PUBLIC_APP_URL=http://localhost:3000 # Genkit AI (Optional - if using AI features) GOOGLE_GENAI_API_KEY=your-genkit-api-key
-
Set up MongoDB
If using a local MongoDB instance:
# Make sure MongoDB is running mongodOr sign up for MongoDB Atlas (free tier available) and use the connection string.
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
# Development with Turbopack (fast refresh)
npm run dev
# Production build
npm run build
npm start
# Type checking
npm run typecheck
# Linting
npm run lint
# AI Development (Genkit)
npm run genkit:dev
npm run genkit:watch- Sign Up: Create an account or sign in with Google
- Explore: Browse existing projects on the Explore page
- Create: Start your own collaborative canvas with a description
- Contribute: Add your interpretation to active projects
- Track: View your profile to see your contributions and streaks
Collab-Studio/
βββ src/
β βββ app/ # Next.js App Router pages
β β βββ (auth)/ # Authentication routes (login, signup)
β β βββ create/ # Project creation page
β β βββ explore/ # Project exploration page
β β βββ profile/ # User profile pages
β β βββ project/ # Individual project pages
β β β βββ [id]/canvas/ # Canvas view and interaction
β β βββ page.tsx # Home page
β βββ components/ # React components
β β βββ canvas/ # Canvas type implementations
β β βββ layout/ # Layout components (header, footer)
β β βββ project/ # Project-related components
β β βββ ui/ # shadcn/ui components
β βββ context/ # React context providers
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions and configurations
β β βββ mongodb.ts # MongoDB connection and models
β β βββ types.ts # TypeScript type definitions
β β βββ data.ts # Data fetching functions
β βββ pages/ # Pages Router (for Socket.io API)
β β βββ api/socket.ts # Socket.io server endpoint
β βββ ai/ # AI integration (Genkit)
βββ docs/ # Documentation
β βββ blueprint.md # Project blueprint and design guidelines
βββ public/ # Static assets
βββ .gitignore # Git ignore rules
βββ next.config.ts # Next.js configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Project dependencies
Create digital embroidery patterns with smooth, thread-like strokes. Each contribution adds delicate lines that build up into intricate designs reminiscent of traditional needlework.
Build colorful mosaics tile by tile. Contributors place individual colored tiles on a grid to create pixel-perfect artwork, similar to classical mosaic art.
Paint with flowing watercolor effects. Contributions blend and flow naturally, creating soft, artistic compositions with transparent color overlays.
A unique canvas type that combines visual and audio elements. Place musical notes on a grid that creates both a visual pattern and an audible musical sequence. Completed projects can be exported as audio files (WAV format).
Traditional digital painting experience. Contributors use brush strokes to paint directly on the canvas, with smooth blending and layering capabilities.
The application uses Socket.io for real-time collaboration:
- Live Canvas Updates: See contributions appear instantly as others add them
- Connection Status: Visual indicators show real-time connection status
- Conflict Resolution: Automatic handling of simultaneous contributions
- Room-Based Communication: Each project has its own Socket.io room for efficient updates
The Socket.io server is configured with:
- WebSocket and polling fallback
- CORS support for development and production
- Automatic reconnection handling
- Project-specific rooms for isolated updates
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the existing code style
- Add comments for complex logic
- Test your changes thoroughly
- Commit your changes
git commit -m "Add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Use TypeScript for type safety
- Follow the existing component structure
- Keep components focused and reusable
- Write meaningful commit messages
- Test on both desktop and mobile viewports
- Ensure dark mode compatibility
The application follows a calm, minimalist design philosophy:
- Primary Color: Soft muted blue (#64B5F6) for calmness and focus
- Background: Light desaturated blue (#E3F2FD) for a gentle backdrop
- Accent Color: Brighter analogous blue (#42A5F5) for interactive elements
- Typography:
- Headlines: Poppins (sans-serif) for modern, clean look
- Body: PT Sans (sans-serif) for readability
- Icons: Minimalist outlined style (Lucide React)
- Animations: Subtle, non-disruptive feedback
- Authentication: Secure JWT-based session management
- Password Hashing: bcrypt with salt rounds
- Environment Variables: Sensitive data stored in
.env.local - CORS Configuration: Properly configured for production
- Input Validation: Zod schemas for all form inputs
# Check if MONGODB_URI is set correctly
echo $MONGODB_URI
# For local MongoDB, ensure it's running
mongod --version- Check browser console for connection errors
- Verify NEXT_PUBLIC_APP_URL is set correctly
- Ensure port 3000 is not blocked by firewall
# Clear Next.js cache
rm -rf .next
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install
# Type check
npm run typecheckThis project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React framework
- shadcn/ui - Beautiful UI components
- Socket.io - Real-time communication
- MongoDB - Database
- Vercel - Deployment platform
- GitHub Issues: For bug reports and feature requests
- Project Repository: mianjunaid1223/Collab-Studio
Made with β€οΈ for collaborative creativity and digital mindfulness.