DEV Community

Cover image for Introducing Prometheus: A Version Control System I Built from Scratch (No Git Involved)
Esvin Joshua
Esvin Joshua

Posted on

Introducing Prometheus: A Version Control System I Built from Scratch (No Git Involved)

TL;DR

Prometheus is a version control system I developed from scratch, built on Firebase and Appwrite, designed to simplify the version control process without relying on Git. It’s lightweight, real-time, and optimized for web-based workflows, with a custom-built IDE to support it.


Why I Built This

While Git is the industry standard for version control, I ran into challenges when trying to integrate it into my projects. Specifically, GitHub's rate limits and the complexities of managing API integrations were a concern. I wanted to avoid hitting those limits and create something more seamless and lightweight for web-based workflows.

That’s when I decided to build Prometheus — a custom version control system designed to handle these issues without relying on Git. The goal was to create a VCS that was easy to integrate, real-time, and better suited for my app's needs.


Tech Stack

  • Frontend: Flutter (custom-built IDE)
  • Backend: Firebase (Firestore, Authentication), Appwrite (cloud functions)
  • Storage: Firestore for snapshot management
  • Auth: Firebase Auth, with optional GitHub OAuth for integration
  • IDE: A custom IDE built with Flutter, tailored for seamless version control integration

How It Works

  • Savepoints: Every change in your project is automatically versioned as a "savepoint," allowing you to easily roll back to previous versions.
  • Branching: Currently, Prometheus uses a linear timeline for version tracking. Full branching support is planned for future releases.
  • Diff Engine: A custom diff engine compares file versions line-by-line, providing clear and understandable diffs.
  • History UI: The timeline view lets you track changes over time, preview file versions, and see commit metadata.

Challenges Faced

  • Firebase Quotas: Managing read and write operations efficiently in Firestore was a challenge, especially with frequent updates. I had to optimize the diffing process and the database writes to avoid hitting Firebase’s limits.
  • Flutter Async Operations: Syncing real-time changes in the Flutter-based IDE required custom handling of async operations to avoid performance bottlenecks.
  • Diff Algorithm: Writing an efficient diffing algorithm that handles large files without performance issues required several iterations.

What’s Next

  • CLI Support: I’m planning to add a command-line interface for Prometheus, providing more control over versioning.
  • Collaboration Features: Multi-user collaboration, similar to VS Code’s Live Share, is on the roadmap.
  • Branching: Full support for branching, merge conflict resolution, and more advanced features will be coming soon.

Conclusion

Prometheus is still evolving, but it’s already a working, cloud-native version control system designed to streamline workflows. Its focus on simplicity, real-time collaboration, and avoiding Git’s complexities makes it a unique solution for developers working in web-based environments.

Feel free to leave a comment if you have suggestions or would like to discuss collaboration opportunities.


Prometheus: Igniting Creation, Tracking Evolution.


The cover image was created using Generative AI. I do not own the rights to the image, neither does anyone, to the best of my knowledge.

Top comments (0)