Assumed Audience: people interested in productivity and work flow and app choice.
A friend was asking me the other day what my workflow looks like, and while I don’t generally spend a lot of time writing about my working setup, I figured I’d throw up a quick post representing my current list so that if people ask I can point them here.
Two important notes on this, though: First, this is just what I use. I make no particular claim that it’s the best. There are lots of things here that are very specific to me and the way I work, and even to my specific mental quirks. Second, it’s far more important to care about the work you do than about the tools you use to get it done. The tools matter: some people say they don’t and I don’t think that’s right at all. But they don’t matter as much as they might feel like they do, and tool fetishism is real. I think the happy point is finding tools which are good enough and fit comfortably enough into your workflow that they don’t distract you, and then get back to the work you do!
For software development, I currently use:
VS Code as my primary text editor; I also occasionally use Sublime Text or Vim for specific tasks where it makes sense. Code is incredibly fast, impressively low in memory usage given it’s an Electron app, and remarkably customizable. My only outstanding complaint is that there’s no way to actually make it look like a native macOS app. Happily, I can make it behave like a native macOS app in all the ways that matter to me. Its support for both TypeScript and Rust—the two languages I spend the most time with right now—is great. You’re welcome to see my full configuration; I keep it updated at that location via the Settings Sync plugin.
macOS’ built-in Terminal app, just using its tabs for individual tasks. I have spent a lot of time with alternatives, including iTerm 2 and kitty, and I’m comfortable in tmux – but at the end of the day I just like the way Terminal feels the best. It’s fast, light, and built-in macOS things all just work correctly out of the box.
Fork for a git GUI. I’ve also used Tower in the past, but I’ve found Fork to be lighter, faster, and a better fit for the way I think and how I expect things to behave (e.g. for interactive rebasing). I do a ton of work in git on the command line as well.
Dash for offline documentation access. There are other options out there, including some which are free, but Dash remains the best in my experience, and if nothing else it’s deeply integrated into my workflow and muscle memory.
That’s basically the whole list at the moment. I keep my software development workflow fairly light.
Research and writing
For research and writing, I use:
iA Writer for all my blogging and longer-form writing. This is a recent change; I had been a heavy user of Ulysses for the last few years. However, while Ulysses was the best option I had found for how I work, it’s never been quite right for me. For one, I’ve always found Ulysses’ “feel” to be a bit heavy: it’s just noticeably slower for me than most of the other writing apps, and I’m hypersensitive to input latency. I’ve also always disliked one of the things that makes many people love it: the way it abstracts Markdown into its “smart text objects.” iA Writer gives me the ability to manage a library in much the same way that Ulysses did, but in a way that feels more truly native on both macOS and iOS; it just uses normal Markdown (no fancy text objects); and it’s fast.1 That combo makes it a better fit for me.
Bear for my note-taking. I’ve talked about this a fair bit here before, so I won’t belabor the details. It’s an excellent, lightweight note-taking app. The main way it falls down for me is that it does not really handle nested block content in Markdown documents (e.g. it won’t correctly display a block quote inside another block quote, or a code sample inside a list, etc.). I’d also love it if it stored its library in a way that made it easier for me to interact with from other apps, i.e. as plain text on the local drive. (You can export content from it easily enough, which is great, but it’s not quite as seamless as I’d like.) Those nits are just that, though: nits. I’m very happy with Bear for my note-taking at this point.
Unread on iOS for reading RSS, with Feedbin as my long-preferred RSS feed service backing it. (I’m a fan of paying for these kinds of services, so I’m happy to lay out the $5/month for Feedbin. Free alternatives exist, but I don’t love ad-driven models and avoid them where I can.)
You’ll note that there are no apps for reading longer material on that list. I could mention Apple Books as the place I read most ebooks I read, but that’s more a function of the alternatives not being meaningfully better in the ways I care about.
For “productivity” concerns, I use:
Tadam for a Pomodoro timer—because it’s precisely as annoyingly obtrusive as I need it to be, which is very!—and Bear for tracking what I do each Pomodoro cycle, each day, each week, each month, and each year. That habit remains very helpful for me.
Things for a to-do app. Things hits the sweet spot for me in terms of its ability to manage everything from simple tasks and recurring to-do items around the house up to complex multi-month-long projects. I particularly like its distinction between when I want to be reminded about something and when that task is due. I’ve used OmniFocus in the past, but it never quite fit me; Things does. They’re very comparable in terms of features; it’s just that the way Things approaches those features works better for me.
Spark as my email client, mostly for its snooze feature, which I use when I know I need to see an email as an email sometime later, and its ability to integrate nicely with other apps. I have it connect to Things, and emails that require an action get put there instead of snoozed. The combination lets me keep my inbox at Zero by the end of every day. And its lovely “Inbox Zero” images are a really nice touch:
For podcast production, I use:
Logic Pro X for the actual editing work most of the time, occasionally using Ferrite. Logic is overkill for what I do, but I’m fast with it at this point, so I can’t see moving anytime soon, and there’s nothing else out there that I think is substantially better (though there are other apps that are comparably good).
Forecast for encoding and including chapter breaks.
Feeder for generating the RSS feeds, since all my podcasts are currently built in ways that don’t support RSS feed generation: Pelican for Winning Slowly and Mass Affection,2 and rustdoc for New Rustacean. (If I ever manage to finish building my own site generator, it’ll have out-of-the-box support for custom RSS feed templates, so that I can have this stuff generated automatically for me!)
Transmit for actually uploading the audio files.