Ver.ol is a MERN stack based Version Control System with a lightweight, in browser codespace like environment, inspired by GitHub Codespaces.
Users can create, view, update, and delete repositories, and manage files and folders entirely within the browser.
Ver.ol explores how core version-control concepts can be modeled using a snapshot-based commit model, where each commit stores a snapshot of the entire repository at the time of committing.
Note
The “codespace” focuses on filesystem manipulation, commit snapshots, and terminal-driven workflows.
It does not provide real code execution or true terminal behavior since our terminal is a React-based command interface.
Implementation details are documented in the /docs directory.
- React
- React Router
- Zustand
- Tailwind CSS
- Node.js
- Express.js
- Mongoose (MongoDB ODM)
- MongoDB
- TypeScript
- Vite
- pnpm
VerolDemo.mp4
- JWT-based authentication
- Repository CRUD operations
- Lazy-loaded virtual filesystem for efficient navigation
- Terminal-driven interaction model
-
Viewing Mode
- Read-only access to repositories
-
Staging Mode
- Modify files
- Stage changes
- Commit snapshots
- Standard:
cd,ls,mv,pwd,echo,whoami,help - Custom:
mode,rename,del,create,commit
- Commit history per repository
- Ability to view repository structure at the time of any commit
-
Node.js
-
pnpm
npm install -g pnpm -
MongoDB (local or remote)
git clone https://github.com/SysRet8-BMS/Ver.ol.git
cd ver.ol
pnpm installCreate .env files in both frontend/ and backend/ directories. Reference the respective .env.example files as needed
To generate JWT secret key, use a trusted online key generator, or run
node -e "console.log(require('crypto').randomBytes(32).toString('hex'));"
pnpm -r run dev
Visit http://localhost:5173/