A modern, real-time collaborative platform built with cutting-edge technologies for seamless team collaboration.
- β¨ Features
- πΌοΈ Screenshots
- π οΈ Tech Stack
- π Getting Started
- π¦ Installation
- π§ Configuration
- ποΈ Project Structure
- π Recent Updates
- π CI/CD Pipeline
- π€ Contributing
- π Documentation
- π License
- Real-time Collaboration: Multiple users can edit documents simultaneously with live cursors and presence tracking
- Enhanced Collaborator System: Complete visibility of all workspace members with online status indicators
- Workspace Management: Create and organize workspaces with folders and files
- Authentication: Secure user authentication with Supabase Auth
- File Management: Create, edit, and organize files and folders with proper access control
- Banner Upload: Add custom banners to workspaces, folders, and files with inheritance
- Emoji Picker: Customize icons for workspaces, folders, and files
- Subscription Management: Premium features with Stripe integration
- Dark Mode Support: Full dark mode support for all components including Quill editor
- Responsive Design: Works seamlessly on desktop and mobile devices
- Inline Editing: Rename workspaces, folders, and files directly in the interface
- Real-time Updates: Changes appear instantly for all collaborators
- Profile Management: Upload and manage profile pictures
- Breadcrumb Navigation: Instant visibility of workspace/folder/file names
- Connection Status: Real-time connection indicators for better user feedback
- TypeScript: Full TypeScript support for type safety
- PostgREST API: Efficient database queries with Supabase PostgREST
- ESLint: Code quality and consistency
- Unit Testing: Comprehensive test suite with 28 tests covering main components
- CodeRabbit AI: Automated code reviews and quality assurance
- Snyk Security: Continuous vulnerability monitoring and alerts
- Performance Optimized: Reduced re-rendering and optimized real-time connections
- CI/CD Pipeline: Automated testing, building, and deployment
- Comprehensive Documentation: Detailed setup and troubleshooting guides
- Next.js 15 - React framework with App Router
- TypeScript - Type safety and better DX
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Beautiful UI components
- Quill Editor - Rich text editor with real-time collaboration
- Lucide React - Beautiful icons
- Supabase - Backend as a service
- PostgreSQL database
- Real-time subscriptions
- Authentication
- Storage
- PostgREST - RESTful API for PostgreSQL (via Supabase)
- Supabase Realtime - Real-time subscriptions
- Quill Cursors - Collaborative cursors
- WebSocket - Real-time communication
- pnpm - Fast, disk space efficient package manager
- ESLint - Code linting
- GitHub Actions - CI/CD pipeline
- Vercel - Deployment platform
- Node.js 18+ or modern package manager
- Supabase account
- Stripe account (for payments)
- Clone the repository
git clone https://github.com/frckbrice/collaborative-platform.git
cd collaborative-platform- Install dependencies
pnpm install- Set up environment variables
cp env.example .env.local-
Configure your environment variables in
.env.local -
Start the development server
pnpm dev- Open http://localhost:3000 in your browser
Create a .env.local file with the following variables:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Database
NEXT_PUBLIC_DATABASE_URL=postgres://postgres:postgres@localhost:54322/postgres
# Stripe Configuration (for payments)
STRIPE_SECRET_KEY=your_stripe_secret_key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
# JWT Secret (must match the one in docker-compose.yml)
JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long-
Set up your Supabase project
-
Run the database migrations:
supabase db reset- Set up storage buckets and policies as described in the setup documentation
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Run linting
pnpm lint
# Run tests
pnpm test
# Build for production
pnpm build- Create a new Supabase project
- Enable the following services:
- Authentication
- Database
- Storage
- Realtime
- Configure authentication providers
- Set up storage buckets for file uploads
- Create a Stripe account
- Get your API keys from the dashboard
- Configure webhooks for payment events
- Set up subscription products
For local development with Supabase:
# Install Supabase CLI
npm install -g supabase
# Start local Supabase
supabase start
# Reset database
supabase db resetsrc/
βββ app/ # Next.js 15 app router
β βββ (auth)/ # Authentication pages
β βββ (main)/ # Main application pages
β βββ (site)/ # Landing page
β βββ api/ # API routes
βββ components/ # React components
β βββ features/ # Feature-specific components
β β βββ auth/ # Authentication components
β β βββ main/ # Main app components
β β βββ settings/ # Settings components
β βββ global-components/ # Shared components
β βββ ui/ # UI components (shadcn/ui)
βββ lib/ # Utilities and configurations
β βββ providers/ # React context providers
β βββ supabase/ # Supabase configuration
β βββ stripe/ # Stripe configuration
βββ utils/ # Helper functions
- Migrated from Drizzle ORM to PostgREST: Improved performance and simplified database interactions
- Enhanced Query Optimization: More efficient data fetching with PostgREST's built-in filtering and pagination
- Type Safety: Maintained full TypeScript support throughout the migration
- Complete Collaborator Visibility: All workspace members (owners and invitees) can now see the full collaborator list
- Online Status Indicators: Real-time green dots show who's currently active
- Avatar Fallbacks: Proper avatar fallbacks for all collaborators
- Enhanced Tooltips: Detailed collaborator information with online status
- Breadcrumb Navigation: Instant visibility of workspace/folder/file names
- Banner Inheritance: Folders and files inherit workspace banners when not set
- Connection Status: Real-time connection indicators
- Responsive Collaborator List: Better mobile experience for collaboration features
- Reduced Re-rendering: Optimized React hooks and memoization
- Stable Realtime Connections: Improved WebSocket connection management
- Memory Leak Prevention: Proper cleanup of realtime subscriptions
- Concurrent Connection Limits: Reduced Supabase realtime connection usage
- Linting Improvements: Fixed all ESLint warnings and errors
- Build Optimization: Resolved TypeScript compilation issues
- Code Organization: Better separation of concerns and cleaner architecture
- Error Handling: Enhanced error boundaries and user feedback
- Redirect Loop Fix: Resolved dashboard navigation issues
- Stripe Integration: Fixed deprecated payment session properties
- Authentication Flow: Improved server-side authentication handling
- File Management: Better error handling for file operations
The project includes comprehensive automated workflows for quality assurance and deployment:
- CodeRabbit AI: Automated code reviews with AI-powered analysis
- Security vulnerability detection
- Performance optimization suggestions
- Best practices enforcement
- TypeScript and React-specific recommendations
- Snyk Security: Continuous security monitoring for vulnerabilities
- Dependency vulnerability scanning
- Real-time security alerts
- Automated security updates
- Linting and Type Checking: Ensures code quality with ESLint and TypeScript
- Unit Testing: Comprehensive test suite with Vitest (28 tests covering main components)
- Building: Production build validation
- Security Scanning: Automated vulnerability checks
- Build Artifacts: Uploads build files for deployment
- Automatic Deployment: Deploys to Vercel on push
- Environment Management: Separate staging and production environments
- Branch-based Deployment:
mainbranch β Productiondevelopbranch β Preview
- Configuration:
.coderabbit.yaml- AI-powered code review settings - Ignore Patterns:
.coderabbit.ignore- Files excluded from review - CI Integration: Integrated into existing CI workflow (
.github/workflows/ci.yml) - Automated PR Reviews: AI-powered code analysis on pull requests
- Quality Gates: Ensures code meets quality standards before merge
- Integration: Seamless GitHub integration with status checks
We welcome contributions! This project is free for collaboration.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Add tests if applicable
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Submit a pull request
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Ensure all CI checks pass
- Use TypeScript for all new code
- Follow the project's commit message conventions
- Be respectful and inclusive
- Help others learn and grow
- Provide constructive feedback
- Follow the project's coding standards
- Troubleshooting Guide - Common issues and solutions
- Environment Setup - Environment variables reference
- Database Schema - Database migrations and schema
- API Documentation - API endpoints documentation
- Supabase CLI Issues: Configuration and setup problems
- Docker Container Problems: Container conflicts and port issues
- Email Configuration: Mailpit setup and SMTP configuration
- Realtime Collaboration: Connection and presence tracking issues
- Authentication Issues: User management and JWT problems
- File Upload Problems: Profile pictures and storage issues
- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on push to
mainbranch
# Build the application
pnpm build
# Start the production server
pnpm startMake sure to set all required environment variables in your deployment platform:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYSTRIPE_SECRET_KEYNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYSTRIPE_WEBHOOK_SECRETJWT_SECRET
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - React framework
- Supabase - Backend as a service
- Quill Editor - Rich text editor
- shadcn/ui - UI components
- Stripe - Payment processing
- Tailwind CSS - CSS framework
- PostgREST - RESTful API for PostgreSQL















