How Brett Terpstra Uses Tower for Next-Level Productivity
June 2024 by Bruno Brito

How Brett Terpstra Uses Tower for Next-Level Productivity

Table of Contents

In the second episode of Tower's Customer Stories, we had the pleasure of chatting with Brett Terpstra. Brett is a Principal Software Developer at Oracle and is known for his prolific blogging at BrettTerpstra.com, as well as being the developer behind Mac applications such as Marked 2.

Brett has been using Tower since its inception, so he had a lot to say about our Git client! In this interview, we cover:

  • How his passion for programming started
  • His first contact with version control systems
  • Why he started using Tower and favorite features
  • How his team at Oracle adopted Tower successfully (even without prior experience with Git)

Let's get right to it!

Who is Brett Terpstra?

Brett is the creator of Mac applications such as Marked 2, nvUltra, and Bunch. He has been blogging for over 20 years and is one of the hosts of the Overtired podcast. He is also a Principal Software Developer at Oracle.

Brett is a developer, writer, and podcaster. He started way back in 1984, when he was six years old. He first learned to program on an IBM PC Jr. — he has fond memories of BASIC, LOGO, and Jumpman!

Growing up, he was ahead of his time. In high school, he was already running a BBS. By the time he graduated, in 1996, he was already creating and publishing websites!

He started blogging for Circle Six Design (an ad agency he co-ran), and then switched to BrettTerpstra.com, a website that has been active for over a decade. “It’s continued to be a place where I share my projects and personal obsessions,” he points out.

Later on, he developed an interest for Mac projects. As a prolific writer, it's no surprise that one of his applications is a Markdown viewer – the popular Marked 2 application, which he initially wrote on a Macbook Air on a long drive to Colorado.

With Marked, Brett was scratching his own itch. “I had to be able to view my Markdown as HTML while I was writing it. At that time, only a few apps had built-in Markdown previews, and my preferred editor (TextMate) didn’t have any kind of live preview. Marked solved that for me by watching a Markdown file for changes and updating a preview whenever a file was modified. I decided to release it as my first commercial project.”

While the application is still going strong over a decade later, Brett hinted that it's time to launch his next project: nvUltra (currently in "beta"). He hopes to release it later this year.

Let's rewind a bit and find out how Brett first got involved with version control systems and how Tower became a part of his life!

The Early Days

Before Git was around, Brett was using Subversion to version control his code as he developed WordPress plugins. “Back then, Subversion was the only option for contributing code to the project. I loved the idea of version control enough to start incorporating it into my personal projects and the code that my agency was producing at the time.”

That was in the early 2000s; when Brett discovered Git a few years later, he switched over with little hesitation. "It made everything so much easier and more powerful," he noted.

At the time, there were some Java-based Git GUIs, but most of the work was done over the command line. However, for Brett, there was hardly any doubt that a Git client would make his life a lot easier: “It’s so easy to view history graphs and deal with multiple branches in a GUI. Things like regular commits and quick log viewing I still do from the command line, but so much of Git is easier in a GUI.”

Brett has been using Tower since it was first released. He decided to give it a try when he discovered that it was a fully native Mac application. “Over time, Tower has taken everything to the next level for me, but the main reason I initially chose it was because it was a fully native Mac app. It looked great, and behaved perfectly with the rest of my system.”

Favorite Tower Features

Being a fully native application was the welcome card, but there were many other features that kept Brett around for such a long time. “I guess it’s hard to narrow my love for Tower down to one feature,” he jokingly admits.

Brett is a fan of Tower's integrated diffs and conflict resolution. He emphasizes that this can be particularly important when a feature branch languishes for so long that it can no longer be easily merged. “Viewing logs and individual file history with a great diff view makes it easy to figure out what to save and, in some cases, discover where things went wrong.”

Tower – Diff viewer
Tower — Diff viewer


For complex merge fixes, he uses Tower in combination with Kaleidoscope, a tool that integrates seamlessly with Tower.

He also eagerly mentioned Tower's undo capabilities. “I adore the ⌘ + Z functionality, that’s just brilliant. Undoing anything other than the last commit on the command line is a tedious process, and Tower makes it simple.”

Undoing anything other than the last commit on the command line is a tedious process, and Tower makes it simple.

The ability to drag and drop commits together to squash and fixup is something that Brett also uses often — “It's exactly the kind of nicety that sets Tower apart,” he adds.

Tower — Squashing Commits with Drag and Drop


He also had some praise for Quick Actions, Tower's version of the Command Palette. “I love all things keyboard and the more I can do without touching my mouse, the better.” We're sure many developers agree with that statement, Brett!

Tower — Quick Actions


Finally, we went over Brett's preferred workflow for his personal projects. He's a fan of Git-Flow, which Tower supports. “Tower makes maintenance easy. I can see an overview of all my branches in the sidebar and can easily compare and merge branches without any fuss of switching between them on the command line.”

Tower – Git-Flow support
Tower — Git-Flow support

Tower at Oracle

At Oracle, Brett dedicates most of his time to writing and other content creation tasks. He also oversees the Developer Relations branch of the GitHub organization, where he manages more than 100 active repositories and develops automation for batch changes, as well as repository creation and updates.

He recalls a project where his team was tasked with converting hundreds of existing articles to Markdown and importing them into a Jekyll-based publishing platform.

For content editing, reviewing, and progress tracking, Brett's team relied on GitHub Issues and Pull Requests. However, none of them were familiar with Git before, which is where Tower stepped in.

“Learning to use it through Tower was far preferable than trying to teach it to them on the command line. A few screen sharing sessions and they were off and running, using Git like pros.”

A few screen sharing sessions and they were off and running, using Git like pros.

Brett proceeded to highlight how Tower shines with their branching setup. They adopted a simple develop/feature workflow, using Pull Requests to merge changes from feature branches into the develop branch or to integrate contributions by merging forks from individuals without repository access.

“Rather than having to push to a branch and open GitHub to create a PR, Tower makes the Pull Request process just part of the regular workflow. Then the reviewer can work with the PR locally as well, avoiding most of the reasons you’d need to open the repo on GitHub,” he explained.

Tower — Managing Pull Requests


Brett couldn't be happier with Tower's role in this project, summing it up with the following: “Tower made it possible to use Git with my team, especially considering none of them were fluent on the command line. I don’t think we could have pulled it off without it.”

Tower made it possible to use Git with my team, especially considering none of them were fluent on the command line. I don’t think we could have pulled it off without it.

We would like to sincerely thank Brett for his outstanding availability and help in putting together this article!

Not a Tower user yet? Download our 30-day free trial and experience a better way to work with Git!


Try Tower Now

Your Download is in Progress…

Giveaways. Cheat Sheets. eBooks. Discounts. And great content from our blog!