⚡ Vylop
A high-performance, real-time code collaboration platform built for the modern web. Vylop enables developers to conduct remote technical interviews and pair programming sessions in a fully synchronized environment — code changes, cursor positions, and chat messages are broadcast instantly to all participants via persistent WebSocket connections.
✅ Features
- 🔴 Real-time Collaborative Editing — Multiple users can edit code simultaneously with live cursor tracking and colored presence indicators
- 💬 Integrated Chat — Dedicated sidebar for text communication during coding sessions
- ▶️ Code Execution Engine — Run code in real-time across multiple languages (Java, Python, C++, JavaScript, TypeScript, Go, Rust)
- ☁️ Workspace Persistence — Save and restore your workspace from the cloud at any time
- 🔐 Authentication — Supports both username/password login and Google OAuth2
- 🗂️ Multi-file Support — Create, rename, and delete files within a room
- ⌨️ Vim Mode — Toggle Vim keybindings inside the Monaco editor
- 📥 File Download — Download any file directly from the editor
🏗 Architecture Overview
Vylop uses an event-driven architecture built around persistent Full-Duplex WebSocket communication, moving beyond traditional HTTP request-response cycles.
Backend
- Java & Spring Boot 3 — Core application framework
- STOMP over WebSockets — Manages concurrent user sessions, connection lifecycles, and real-time code broadcasting to all room subscribers
- Spring Security + OAuth2 — Google OAuth2 integration for social login alongside standard username/password authentication
- PostgreSQL — Persistent storage for user profiles, room metadata, and saved workspaces
- Docker — Containerized for consistent local and production environments
Frontend
- React.js + Vite — Fast, reactive UI with near-instant load times
- Monaco Editor — The same engine powering VS Code, providing professional-grade syntax highlighting and editing
- SockJS + STOMP.js — WebSocket client for real-time synchronization
- Tailwind CSS — Utility-first styling
🚀 Getting Started (Local Development)
Prerequisites
- Java 17+
- Node.js 18+
- PostgreSQL
- Docker (optional)
Backend Setup
cd backend
# Configure your database in src/main/resources/application.properties
# Set: spring.datasource.url, spring.datasource.username, spring.datasource.password
mvn spring-boot:run
Frontend Setup
cd frontend
npm install
npm run dev
The frontend runs on http://localhost:5173 and the backend on http://localhost:8080.
🌐 Deployment & Infrastructure
- Cloud Hosting — Deployed on Render using a Blueprint (
render.yaml) to provision the web service and managed PostgreSQL database as a single infrastructure unit - Containerization — Docker ensures 1:1 parity between local and production environments
- Frontend — Built with Vite and served as a static site via Render's CDN
🗺 Roadmap
- [ ] Voice communication during coding sessions
- [ ] Flyway migrations for version-controlled database schema changes
- [ ] AI code suggestions and explanations
- [ ] Room history and playback
- [ ] Custom themes and editor settings persistence
🛠 Tech Stack
| Layer | Technology |
|---|---|
| Backend | Java, Spring Boot, Spring Security, WebSocket/STOMP |
| Frontend | React, Vite, Monaco Editor, Tailwind CSS |
| Database | PostgreSQL |
| Auth | Google OAuth2, Username/Password |
| Deployment | Render, Docker |
Built With
- css
- dockerfile
- html
- java
- javascript
Log in or sign up for Devpost to join the conversation.