srcsnap -- screenshot-driven version tracking

(beta version, looking for testers & feedback)

download v0.0.2

do you work with graphics? do you often find that an earlier version of your sketch looked more appealing? but then there's no way to go back because you made too many changes since? you didn't think you need a version control but now regret it? do you like taking screenshots?

then maybe srcsnap is a tool for you.

every time you take a screenshot of your project, srcsnap takes a snapshot of all your code too, and associate it with the screenshot. it organizes your screenshots in a nice list in the menubar: your code can "time travel" back to the very moment when you took each of the screenshots.

internally srcsnap keeps a git repo and leverages the power of git to manage the versions. but you don't need to worry about it. you just take screenshots and click on them.

srcsnap needs testers

srcsnap is in an early stage of development. but we do have a working prototype! the UI is a bit bare but we'd like to collect feedback and see if people are finding it useful. We'd love to hear any complaints!

download and install

find a version of the app to download below:

the app is currently built with electron (due to ease of fast prototyping, but we might later switch to native for compactness and performance)

we've only built and tested on M1 macs. if you're on windows or linux, and feel adventurous, you can find the source code in srcsnap.app/Contents/Resources/app in the downloaded file (but expect most things to break)

is damaged and can't be opened, you should move it to trash

don't move it to trash, your mac is lying to you. instead try this in the terminal:

      xattr -cr /path/to/srcsnap.app
      
more detailed instructions here

how to use

upon starting the app, you'll see a new icon in the menubar. click on it.

the first input field lets you pick the directory where your screenshots are located. it defaults to ~/Desktop, where mac screenshots usually are. you can click 'choose' to open the file dialog and choose another folder -- as long as the screenshots are named in the following format: `Screen Shot * at *.png`

then click 'track project'. it lets you choose your project folder. now, all the screenshots you take will be associated with this project. your project folder does NOT need to be a git repo, though it could be.

this takes you to the next screen. to stop associating future screenshots with this project, simply click the '<' (back) button

try editing your code and take some screenshots!

note that srcsnap does not mess with your project folder directly - it keeps its own copy of the project and copy updates over when you ask it to. this gives you the peace of mind that even if srcsnap screws up you won't lose your project. (plus srcsnap's git won't conflict with your project's original git if it has one). however, that said, we recommand that you still back up your project, or try not to use srcsnap on extremely important projects, for the time being, since srcsnap is still in development stage.

after you've made edits to your project and taken screenshots, you can see the screenshots listed in the app. hover over a screenshot, and buttons will appear. click 'image' to open the full image. click 'code' to view the code at the moment when you took the screenshot. click the wastebascket to delete the screenshot. you can also hover over the 'image' button to see a larger preview of the image within the app.

note that your original project will NOT change as you click 'code' button on different screenshots -- again, srcsnap keeps its own copies, and just lets you 'peek' into its copies instead of directly messing with your originals.

click '<' (back) button to stop tracking this project; to fully quit the app, then click 'X' (close) button.

known issues