Share Text in Real-Time. Collaborate Instantly.
TexLoop is a modern, real-time text sharing and collaboration platform designed for speed and privacy. Create temporary rooms, share code or text, and chat with others instantly—no signup required.
Built with Next.js 16, Socket.IO, and MongoDB.
- ⚡ Real-Time Synchronization: Type and see changes instantly across all devices using Y.js CRDT technology.
- 🔒 Secure & Private: Create password-protected rooms for sensitive content.
- 💬 Live Chat: Built-in real-time chat to discuss while you collaborate.
- ⏱️ Ephemeral Rooms: Set auto-destruction timers. Rooms clean up after themselves.
- 📱 Fully Responsive: Seamless experience on desktop, tablet, and mobile devices.
- 🚫 No Registration: Jump straight into a room without creating an account.
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS & Shadcn/UI
- Real-time: Socket.IO & Y.js
- Database: MongoDB (with Mongoose)
- Icons: Lucide React
Follow these steps to set up the project locally.
- Node.js 18+
- MongoDB instance (Local or Atlas)
-
Clone the repository
git clone https://github.com/akashwrites1120/texloop.git cd texloop -
Install dependencies
npm install
-
Set up Environment Variables Create a
.env.localfile in the root directory and add the following:MONGODB_URI=your_mongodb_connection_string NEXT_PUBLIC_SITE_URL=http://localhost:3000 NEXT_PUBLIC_SOCKET_URL=http://localhost:3000 ENCRYPTION_KEY=your_32_character_encryption_key_here CRON_SECRET=your_32_character_cron_secret_here
-
Run the Development Server Since this project uses a custom server for Socket.IO, use the following command:
npm run dev
-
Open the App Visit
http://localhost:3000in your browser.
texloop/
├── app/ # Next.js App Router pages & API routes
├── components/ # React components
│ ├── room/ # Room-specific components (Editor, Chat)
│ ├── shared/ # Shared components (Navbar, Footer)
│ └── ui/ # Reusable UI components (Shadcn)
├── hooks/ # Custom React hooks (useSocket, useRoom)
├── lib/ # Utility functions & configs
├── models/ # Mongoose database models
├── server.ts # Custom Node.js server for Socket.IO
└── types/ # TypeScript type definitions
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- 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.