Skip to content

bolaabanjo/gitstack

Repository files navigation

Project Banner

Gitstack

Version everything.

Gitstack is an open-source system that redefines version control. Traditional Git has been the backbone of modern software development for decades, but it is built almost exclusively around text-based source code: commits, diffs, and branches. What about everything else — dependencies, environments, models, datasets, and the hidden glue that makes a project actually run?

That’s where Gitstack comes in.

Gitstack extends the philosophy of Git beyond code. It snapshots and restores entire project states — files, dependencies, environments, and time itself — ensuring reproducibility and reliability for developers, researchers, and teams everywhere.

Think of it as:

  • Git for time
  • Git for dependencies
  • Git for states
  • Git for everything

Why Gitstack?

Every developer has experienced this nightmare:

“It worked on my machine yesterday. Today, it doesn’t.”

Traditional Git saves lines of code but not the full environment needed to reproduce results. It doesn’t capture the evolving mess of dependencies, dataset versions, or system configs.

Gitstack exists to solve this gap:

  • For developers → prevent broken builds and roll back instantly.
  • For researchers → reproduce AI experiments and datasets exactly.
  • For teams → share environments seamlessly, not just repositories.
  • For indie hackers → save time by snapshotting entire project states instead of debugging broken setups.

Version control shouldn’t stop at code. Gitstack moves the concept forward: version everything.


Core Features

Gitstack introduces an intuitive CLI that integrates into any project:

  • gitstack snap → Snapshot your project. Captures file structure, metadata, and environment details. Future versions will include Python dependencies, .env configs, Docker states, and even datasets.

  • gitstack restore → Instantly roll back to your last snapshot. Fix broken dependencies, recover missing files, or undo destructive changes with one command.

  • gitstack time → Prints the current time. A simple command that represents Gitstack’s philosophy: every snapshot is grounded in a moment in time.

  • gitstack date → Prints today’s date. Every snapshot becomes anchored to a timeline.

  • gitstack deploy → (In development) Deploy snapshots directly into isolated containers or the cloud. Think Vercel-style deployment, but triggered from your CLI.

The design principle is simple: Your project is more than code. Gitstack makes it reproducible, restorable, and shareable.


How It Works

When you run gitstack snap, a hidden .gitstack/ directory is created in your project root. Inside it:

  • JSON metadata describing files, timestamps, and snapshot IDs.
  • (Planned) Environment descriptors (pip freeze, .env contents, container IDs).
  • (Planned) File hashes for integrity checking.

When you run gitstack restore, Gitstack reconstructs your last working state. This is the starting point for much deeper functionality:

  • Rebuild Python environments automatically.
  • Restore datasets and AI checkpoints.
  • Launch Docker containers tied to specific snapshots.
  • Push or pull snapshots from Gitstack Cloud.

This foundation makes Gitstack more than a CLI — it’s a state management platform.


Installation

Gitstack is available via PyPI.

Install globally with:

pip install gitstack

Verify installation:

gitstack time
# Output: 08:48:15.743508

gitstack date
# Output: 2025-09-10

Snapshot your first project:

cd my_project
gitstack snap

Usage Example

# Take a snapshot
gitstack snap

# Break something (oops!)

# Restore to last snapshot
gitstack restore

Future workflows will include:

# Deploy snapshot to a container
gitstack deploy

The Gitstack Dashboard (Coming Soon)

Alongside the CLI, Gitstack will include a visual dashboard at gitstack.com.

The dashboard will allow you to:

  • Browse snapshots visually in a timeline view.
  • Compare states side-by-side.
  • Share environments with collaborators.
  • Push or pull to the cloud for distributed teamwork.
  • Gain analytics into project evolution (lines of code, dataset growth, dependency shifts).

Roadmap & Future Features

Gitstack’s vision extends far beyond snapshots. Upcoming features include:

  1. AI-Augmented Snapshots

    • Automatic plain-English summaries of what changed.
    • Example:
      $ gitstack snap
      Snapshot taken!
      AI Summary: Added signup API, updated login, refactored styles.
  2. Universal Version Control

    • Version everything: datasets, ML models, documents, configs.
  3. Time Travel Debugging

    • Roll back projects by time:
      gitstack rewind 2h
  4. Zero-Setup Cloud Deploy

    • Deploy snapshots directly from CLI to containerized sandboxes.
  5. AI-Powered Conflict Resolution

    • AI suggests fixes for merge conflicts.
  6. Snapshot Analytics

    • Dashboards showing metrics, growth, and risk hotspots.
  7. Offline-First with Smart Sync

    • Works without internet, syncs automatically when online.
  8. Knowledge Graph Layer

    • Ask Gitstack:
      gitstack ask "Where do we handle login?"
    • Get an instant answer.
  9. Security by Default

    • Every snapshot cryptographically signed.
  10. Cross-IDE Integrations

    • Plug Gitstack into VS Code, JetBrains, or CLI assistants.

Contributing

Gitstack is open source, and we welcome contributions from developers, researchers, and creators worldwide.

Steps to contribute:

  1. Fork this repository.
  2. Create a feature branch.
  3. Write tests where applicable.
  4. Open a pull request with a clear description.

All contributions are reviewed to maintain project integrity.


Author

Gitstack was created by Bola Banjo.

  • X (Twitter): @bolaabanjo
  • Open to collaborations, partnerships, and community contributions.

License

Gitstack is released under the MIT License.

  • Free & Open Source → The CLI will always remain open.
  • Commercial Extensions → Hosted services, premium analytics, or enterprise features may be introduced under commercial licenses via gitstack.com.

This dual model ensures Gitstack stays accessible to the developer community while scaling sustainably.


Closing Vision

Git revolutionized software development by versioning code. Gitstack’s ambition is to do the same — but for everything: states, dependencies, datasets, configs, and time.

By making environments reproducible, shareable, and intelligent, Gitstack unlocks a new layer of productivity for developers, researchers, and teams.

Gitstack is more than a tool. It’s the future of version control.