A Powerful Real-time Collaboration Platform
An editor with multi cursor functionality using Nextjs 13, Websockets, Supabase Realtime, Real-time presence, Custom Rich text editor, Update profile settings.
- β¨ Features that Empower Teams
- π οΈ Technology Stack
- π Quick Start Guide
- π― Key Features in Detail
- π« Core Features
- π€ Contributing
- π License
- π Show your support
- Next.js 14 π: Server-side rendered React applications
- Tailwind CSS π : Utility-first styling framework
- Socket.io Client π: Real-time communication
- Quill βοΈ: Rich text editor with cursor support
- Shadcn UI π―: Beautifully designed components library
- React Hook Form π: Form validation and handling
- Next Auth π: Authentication with Google and GitHub providers
- Prisma ORM ποΈ: Type-safe database toolkit
- Supabase β‘: Backend-as-a-service platform
- Socket.io π: WebSocket server implementation
- TypeScript π: Static type checking
- Zod β : Schema validation
- TailwindCSS Animate π«: Animation utilities
- Node.js 16 or higher β‘
- npm or yarn π¦
- Git π
-
Clone the repository
git clone https://github.com/HarshDodiya1/cypress.git cd cypress
-
Install dependencies
npm install # or yarn install
-
Set up environment variables
cp .env.example .env
Required environment variables:
# Database URL # The URL to connect to your database. DATABASE_URL= # Supabase URL # The URL of your Supabase project. NEXT_PUBLIC_SUPABASE_URL= # Supabase Anon Key # The anonymous key for your Supabase project. NEXT_PUBLIC_SUPABASE_ANON_KEY= # The service role key for your Supabase project. SERVICE_ROLE_KEY= # JWT Secret # The secret key used to sign JSON Web Tokens (JWT). This should be a long, random string. # generate directly via terminal by running: openssl rand -base64 32 JWT_SECRET= # Site URL # The URL of your site. NEXT_PUBLIC_SITE_URL= # The secret key used by NextAuth.js for signing and encrypting session tokens. NEXTAUTH_SECRET= # Google Credentials # The client ID and client secret for Google OAuth. GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # Github Credentials # The client ID and client secret for GitHub OAuth. GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET=
-
Run database migrations
npx prisma migrate dev --name init
-
Start the development server
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser
See your teammates' cursors in real-time as they move across the workspace.
- Real-time Cursor Tracking π±οΈ: See collaborators' cursors in real-time
- Live Text Selection β¨: Share and observe text selections instantly
- Workspace Management π: Create and organize shared workspaces
- File Organization π: Intuitive folder structure and management
- Trash & Restore π: Comprehensive file recovery system
- Authentication π: Secure user authentication with NextAuth
- Responsive Design π±: Works seamlessly across devices
We welcome contributions to Cypress! Here's how you can help:
- Fork the repository π΄
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Give a βοΈ if this project helped you!
Built with β€οΈ by Harsh Dodiya