Version Control for Writers
I recently shared my setup for publishing content to my site. The combination of IFTTT, Hazel, and Ulysses has worked well for me. Not long after perfecting this setup, I took a position with the team at Wildbit.
Now I spend my days helping developers use Beanstalk and a robust development workflow. While I was getting acclimated to the nuances of this great tool, I realized this was an area where learning would best happen by doing. Not being a full time developer and never having jumped into Git or version control in general, my knowledge in this area was surface at best.
Once I saw what was possible with Git & Beanstalk, especially regarding deployments, I realized version control could help my writing process.
Updating the Process
My process is still quite similar to the previous iteration. The only change is that the directory where my entire site structure is stored locally now also includes a Git repository. When I’m finished writing a post in Ulysses, I use its great export functions to get a new file into the correct folder location.
The last step is the only addition to the actual workflow. I open Tower, review the changes to the local Git repo, then commit and push to the remote repo hosted on Beanstalk. My repo on Beanstalk is configured to deploy automatically to my Media Temple server.
So the process of completing a commit and a push in Tower is like pushing Send to Blog in Mars Edit. At Wildbit, we do a similar process for a lot of our different written content types.
Not Just Writing
Since I run a personal site, version control helps in other ways. Not only does the site include blog or journal type content; there are various other pages mixed. As well, there are the HTML, CSS, & JS files to deal with. I choose to run a site I designed and developed over a blogging platform like Tumblr or Medium because I care about the entire experience.
And developing and maintaining a site of this nature takes time and attention. Keeping everything stored in a hosted version control sustem ensures I’m protected against data loss and my own mistakes.
Maybe next year I want to add a new section to the site, or tweak one portion of the design. I can simply create a new branch and start designing & developing the changes. The site that readers see is not affected at all as I work on the new thing. When I’m ready to put the change live, a simple merge to the master branch, along with a deployment (manual or automatic), and it’s up and running.
If there are issues, I simply rollback to the previous version.
I hear what you're thinking: overkill!
A full version control setup does sound a little daunting at first, and more than many writers might need. But after the initial setup, my writing process is exactly the same apart from the last step of committing and merging.
I’ve lost a couple years of writing in an old SQL database at some point. I also have no backups of many of the previous designs of my site. A full back up of my content and design gives me more peace of mind of the future versions of my site. I can move forward with changes without fear of losing track of where it all came from.
Version control … it’s not only for developers!
Give it a try. Beanstalk has a free plan allowing for 1 user, 1 repo, and the ability to create a deployment Environment with 1 server. Free peace of mind!&