A modern, open-source online IDE with real-time collaboration, instant code execution, and zero setup required.
OpenPad is a full-featured cloud IDE packed into your browser. Write, run, share, and collaborate on code without installing anything. Built with modern technologies including Spring Boot, React, and Monaco Editor.
OpenPad is an open-source alternative to CodePad, offering similar functionality for writing, running, and collaborating on code online, but with complete transparency and community-driven development. Unlike proprietary solutions, OpenPad gives you full control over your data and the ability to self-host.
- Multi-language support: Java, Python, C++, PHP, and HTML/CSS/JavaScript
- Instant execution: Run code directly in the browser with cloud-powered execution
- Real-time output: See results instantly as your code runs
- Live cursors: See where your collaborators are editing in real-time
- Presence indicators: Know who's online and actively editing
- CRDT-powered sync: Conflict-free editing with automatic synchronization
- Built-in live chat: Discuss code changes without leaving the editor
- Monaco Editor: VS Code-quality editing experience
- Syntax highlighting: Full support for all supported languages
- Autocomplete: Intelligent code completion
- Bracket colorization: Easy code navigation
- Minimap: Quick code overview
- Code snapshots: Save and restore code at any point
- Visual diff viewer: Compare changes between snapshots
- Multi-file projects: Build full projects with multiple files
- Markdown preview: Write documentation with live-rendered preview
- Unique URLs: Every pad gets a shareable link
- Embed support: Embed your code anywhere with an iframe
- Visibility controls: Public, unlisted, or private pads
- Discovery page: Browse featured, recent, and popular pads
- Zero setup: No downloads or installations required
- Anonymous usage: Start coding without creating an account
- Customizable settings: Theme, font size, tab size, word wrap, and more
- Responsive design: Works on desktop and tablet devices
- Java 21+
- Spring Boot 4.x
- Spring Security with JWT authentication
- Spring Data JPA for data persistence
- WebSocket for real-time communication
- Docker support for code execution
- React 19 with TypeScript
- Vite for fast development and builds
- TanStack Query for server state management
- Tailwind CSS for styling
- Monaco Editor for code editing
- Yjs for real-time collaboration (CRDT)
- Java 21 or higher
- Node.js 18 or higher
- npm or yarn
# Clone the repository
git clone https://github.com/halilugur/openpad.git
cd openpad
# Build the project
./mvnw clean install
# Run the application
./mvnw spring-boot:run# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm run devThe application will be available at http://localhost:5173
openpad/
├── src/ # Backend source code
│ └── main/
│ ├── java/ # Java source files
│ └── resources/ # Application properties and static resources
├── frontend/ # Frontend React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── contexts/ # React contexts
│ │ ├── hooks/ # Custom hooks
│ │ ├── lib/ # Utilities and API clients
│ │ └── types/ # TypeScript type definitions
│ └── public/ # Static assets
├── docs/ # Documentation and screenshots
└── pom.xml # Maven configuration
POST /api/auth/register- Register a new userPOST /api/auth/login- Login and receive JWT tokenGET /api/auth/me- Get current user information
GET /api/pads- List user's padsPOST /api/pads- Create a new padGET /api/pads/{slug}- Get pad by slugPUT /api/pads/{id}- Update padDELETE /api/pads/{id}- Delete padPOST /api/pads/{id}/execute- Execute pad code
GET /api/discovery/featured- Get featured padsGET /api/discovery/recent- Get recent padsGET /api/discovery/popular- Get popular padsGET /api/discovery/search- Search pads
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Keep PRs focused and atomic
- AI-powered code suggestions
- Additional language support (Go, Rust, Ruby)
- Code templates and snippets library
- Team workspaces
- Integrated terminal
- Git integration
- Mobile app
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- Monaco Editor - The code editor that powers VS Code
- Yjs - CRDT framework for real-time collaboration
- Spring Boot - Backend framework
- React - Frontend framework
- Tailwind CSS - Utility-first CSS framework
Built with care by halilugur and AgentAI team.

