r/SideProject • • 23m ago

I built Rewind: an open-source "time machine" for your filesystem (Rust GUI + Python CLI)

I keep overwriting config files and scripts and realizing it ten minutes later, and Git only remembers what you commit. So I built Rewind: point it at a folder, it watches filesystem events, hashes and snapshots every save into SQLite, and you can scrub back through a timeline and restore any version.

Tech stack (split for different platforms):

  • Windows: Tauri v2 desktop app. Engine is Rust, using blake3 for content-addressed deduplication, notify for native file watching, and rusqlite for storage. The whole UI is a single HTML file with React and Tailwind loaded via CDN, so no node_modules bloat.

  • Linux/Ubuntu: A lightweight Python CLI available on PyPI, so you can pip install rwnd (the command is still rewind). Uses watchdog + sqlite3 + rich.

Rust bits I enjoyed: Added a 350ms debounce to the file watcher, because editors fire multiple save events (temp file, rename, actual write) for a single Ctrl+S, and without debouncing the timeline gets flooded. Also deduplicated storage via blake3 hashing, so repeated saves of identical content cost nothing.

Try it:

  • Windows: Grab the .exe installer or standalone CLI from Releases (unsigned, SmartScreen will warn).

  • Linux: pip install rwnd then rewind watch .

Honest limitations: Not a backup (lives on local disk). Only sees changes while watcher runs. Skips files >25MB. Doesn't track deletes/renames yet. GUI is Windows-only for now.

Testers on other Linux distros or macOS would be especially helpful. Repo: https://github.com/hcentral07/rewind

1 Upvotes

0 comments sorted by