❌

Normal view

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • Unite Pro giveaway!
    I’m excited to offer the next giveaway, 4 licenses ($39.99 value each) for Unite Pro. Unite has long been my favorite way to create Single Site Browsers (SSBs), sandboxing things like Facebook and MindMeister while adding app-like functionality. The latest version, Unite Pro, is out now, and I have free copies! From the developer: We’ve taken everything we’ve learned since 2017 and rethought it for modern macOS. The result is faster, more flexible, and significantly mor
     

Unite Pro giveaway!

I’m excited to offer the next giveaway, 4 licenses ($39.99 value each) for Unite Pro. Unite has long been my favorite way to create Single Site Browsers (SSBs), sandboxing things like Facebook and MindMeister while adding app-like functionality. The latest version, Unite Pro, is out now, and I have free copies!

From the developer:

We’ve taken everything we’ve learned since 2017 and rethought it for modern macOS. The result is faster, more flexible, and significantly more powerful — while staying true to what makes Unite valuable: turning web apps into genuine Mac-native experiences.

Check out the Unite Pro site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, March 13, at 12pm Central. The drawing is for 4 licenses ($39.99 value each) for Unite Pro, one per winner. Note that if you’re reading this via RSS, you’ll need to visit this post on brettterpstra.com to enter!

New rule: All signups must have a first and last name in order to be eligible. Entries with only a first name will be skipped by the giveaway robot. A lot of the vendors in this series require first and last names for generating license codes, and your cooperation is appreciated!

Sorry, this giveaway has ended.

If you have an app you’d love to see featured in this series of giveaways, let me know. Also be sure to sign up for the mailing list or follow me on Mastodon so you can be (among) the first to know about these!

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • Web Excursions for March 11th, 2026
    Web excursions brought to you in partnership with Fabric, the best way to organize your notes, tasks, and projects in one place. Tokie Ok, this is cool. A macOS file manager that turns your folder into a database for better file management, with some very cool integration with your AI agent, built-in Markdown editor, custom fields for file management, and a ton of other capabilities. A proposal for Markdown on ATProto Providing a Lexicon for putting Markdown in the ATmos
     

Web Excursions for March 11th, 2026

Web excursions brought to you in partnership with Fabric, the best way to organize your notes, tasks, and projects in one place.

Tokie
Ok, this is cool. A macOS file manager that turns your folder into a database for better file management, with some very cool integration with your AI agent, built-in Markdown editor, custom fields for file management, and a ton of other capabilities.
A proposal for Markdown on ATProto

Providing a Lexicon for putting Markdown in the ATmosphere.

Fits nicely into my thoughts about a Markdown Web and has a fair amount of thought and feedback already in the spec.
GitHub Actions for WordPress
I know this has a limited audience, but if you develop WordPress plugins and haven’t explored 10up’s GitHub actions, you really should. The deploy one is infinitely useful and means you never have to deal with SVN after intial repo setup.
rhsev/matterbase
Ralf keeps putting out cool stuff: “A database-like TUI for querying frontmatter and YAML in Markdown notes with field filters, full-text search, and table view. For macOS and Linux.”

Let Fabric be your second brain, with an all-in-one AI workspace and smart organizer for all your projects, ideas, notes & links. Check it out today.

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • bt-linkding available on the Chrome and Firefox extension stores
    This is just a quick note to point out that my port of the linkding browser extension for Chrome and Firefox is now available on both of the respective extension stores. Firefox via the Firefox extensions marketplace Chrome via Chrome Web Store Hope you find it useful! Like or share this post on Mastodon, Bluesky, or Twitter. BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out. Find Brett on Mastodon, Bluesky, GitHub, and everywhere
     

bt-linkding available on the Chrome and Firefox extension stores

This is just a quick note to point out that my port of the linkding browser extension for Chrome and Firefox is now available on both of the respective extension stores.

Hope you find it useful!

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • The Unite Pro giveaway winners!
    The Unite Pro giveaway has ended, and I have winners to announce! The winners! Congratulations to: Sven Sackers Michael Steadman Jake Bordens David Banham You should have received an email with details, please let me know if you didn’t hear anything! But I didn’t win! If you didn’t win, sorry, but Unite Pro is still worth checking out. Turn your favorite websites into apps with Unite Pro! You might not have won, but you can still save 20% at bzgapps.com/unite
     

The Unite Pro giveaway winners!

The Unite Pro giveaway has ended, and I have winners to announce!

The winners!

Congratulations to:

  • Sven Sackers
  • Michael Steadman
  • Jake Bordens
  • David Banham

You should have received an email with details, please let me know if you didn’t hear anything!

But I didn’t win!

If you didn’t win, sorry, but Unite Pro is still worth checking out. Turn your favorite websites into apps with Unite Pro! You might not have won, but you can still save 20% at bzgapps.com/unite with code Brett.

By the way, Unite Pro is also available on Setapp, along with hundreds of other amazing apps. You should probably get a subscription.

That’s the end of this giveaway series for now!

If you want to suggest an app you’d like to see in this series, let me know on via email or on Mastodon, and join the email list for notifications!

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • A Faster Drag-and-Drop Workflow with Dropzone 5 [Sponsor]
    Thanks to Aptonic and Dropzone for sponsoring BrettTerpstra.com this week! I’ve been a Dropzone fan for as long as I can remember, and yes, I use it every day. It’s a wonderfully extensible tool that’s always available for things like sharing files, processing images, and opening apps. I’ve also gotten really used to using it’s drop drawer as a way to collect files, and even started incorporating the command line tool for all kinds of automation. Dropzone is a m
     

A Faster Drag-and-Drop Workflow with Dropzone 5 [Sponsor]

Thanks to Aptonic and Dropzone for sponsoring BrettTerpstra.com this week! I’ve been a Dropzone fan for as long as I can remember, and yes, I use it every day. It’s a wonderfully extensible tool that’s always available for things like sharing files, processing images, and opening apps. I’ve also gotten really used to using it’s drop drawer as a way to collect files, and even started incorporating the command line tool for all kinds of automation.

Dropzone is a menu bar productivity tool that gives you a faster way to move, copy, and share files, launch apps, and trigger all sorts of time-saving drag-and-drop actions without breaking your flow.

The newly released Dropzone 5 is a substantial update and has been redesigned for macOS Tahoe with a cleaner interface, smoother animations and support for Liquid Glass.

The update also adds several workflow-focused improvements. Multiple grids make it easy to separate actions by project or context, deeper grid customization gives you more control over categories, columns, and layout, and folder-based actions can now display the custom icons and colors you’ve assigned in Finder, which makes it easier to identify your folders in Dropzone at a glance.

If you like to automate from the command line, Dropzone 5 includes a powerful command line tool for Terminal integration too. You can run actions, manage files in Drop Bar, and switch between grids via the command line tool, making Dropzone 5 a better fit for scripted workflows than ever before.

Dropzone 5 is available as a free download from Aptonic, with a Pro upgrade available that adds more advanced features.

For a limited time, the Pro upgrade is available at a 30% discount with the coupon code LAUNCH.

Visit Aptonic’s website to learn more and download Dropzone 5.

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • Doing updates
    Big update for doing: a lot of quality-of-life work since my last post, plus some genuinely useful time-reporting features. If you want the full docs, start with the wiki. Time Budgets You can now set time budgets per tag and see how much you have left as you track work. doing budget dev 100h doing budget meetings 10h doing budget doing budget dev --remove Totals output now shows remaining budget per tag and an overall “total budgets left” footer when budgets are configured. T
     

Doing updates

Big update for doing: a lot of quality-of-life work since my last post, plus some genuinely useful time-reporting features.

If you want the full docs, start with the wiki.

Time Budgets

You can now set time budgets per tag and see how much you have left as you track work.

doing budget dev 100h
doing budget meetings 10h
doing budget
doing budget dev --remove

Totals output now shows remaining budget per tag and an overall “total budgets left” footer when budgets are configured. The byday export also includes budget info in daily and grand totals.

More Flexible Totals Grouping

Totals can now be grouped by tags or sections, and you can repeat grouping flags to control output order.

doing show --totals --by section --by tags
doing show --totals --by tags --by section

There are also aliases for section grouping (project, p), so this works too:

doing show --totals --by project

New Totals Formats, Including Averages

You can now pick the totals time format directly from the command line with --totals_format.

doing show --totals --totals_format hmclock
doing show --totals --totals_format natural

There is also a new averages mode that appends hours/minutes and average hours per day to the total line.

doing show --totals --totals_format averages

That gives you output in the spirit of:

Total tracked: 26:03 (26h 3 min, 8.12h/day)

You can set a default with the totals_format config key and still override it per command when needed.

Better Export Consistency

Totals grouping now carries through exports more consistently, including HTML, Markdown, JSON, Day One, template, and wiki outputs. JSON totals also gained budget-related fields (budget, remaining, remaining_formatted) for each tag, which makes downstream automation easier.

For details on output and display options, see wiki pages like Displaying Entries, Time Tracking, and Configuration.

Other Stuff

  • Ruby 4 compatibility improved by falling back to reline when readline is unavailable.
  • Dashed aliases now work for underscore flags and subcommands (--only-timed, --tag-sort, doing tag-dir, etc.).
  • Interactive finish handling was fixed for section filters that can resolve to multiple values.
  • Time range parsing and normalization got several fixes (done --from, noon/12pm edge cases, and reset formatting issues).
  • Non-interactive runs no longer reopen /dev/tty for defaults.
  • Human totals box formatting and table alignment were cleaned up.
  • A few config and test harness rough edges were fixed.

As usual, if you run into anything odd, open an issue or PR. This was a nice round of polish plus some features that should make time reporting much more useful day to day.

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • Better Keyboard Shortcut Formatting for Writers
    If you write documentation, tutorials, or notes that include keyboard shortcuts, you know how annoying consistency can be. Sometimes you want plain text like Shift-Command-K, sometimes you want nice symbolic output like ⇧⌘K, and sometimes you want HTML keycaps. This project started as a Jekyll plugin, then became a WordPress plugin, and now I’m offering it as a CLI and Automator Actions you can use anywhere.
     

Better Keyboard Shortcut Formatting for Writers

If you write documentation, tutorials, or notes that include keyboard shortcuts, you know how annoying consistency can be. Sometimes you want plain text like Shift-Command-K, sometimes you want nice symbolic output like ⇧⌘K, and sometimes you want HTML keycaps.

This project started as a Jekyll plugin, then became a WordPress plugin, and now I’m offering it as a CLI and Automator Actions you can use anywhere.

What the scripts do

The project ships two Ruby scripts that parse keyboard shortcut text and normalize it into consistent output, following Apple’s guidelines by default:

  • kbd.rb outputs HTML keycap markup.
  • kbd-text.rb outputs plain text shortcuts.

Both scripts accept flexible input formats, including:

  • Keybinding Symbol style: "$@k"
  • Text style: "shift cmd k"
  • Hyphenated style: "Shift-Command-k"
  • Multiple combos separated by " / "

For keybinding style:

Modifier Symbol Shortcut
Shift $
Option ~
Command @
Control ^

In practice, this means you can type shortcuts however you naturally type them, and the tool will clean and format them for you.

Download and install as Quick Actions

Grab the latest release from:

Then install:

  1. Download KBD Automator Actions.zip.
  2. Unzip it.
  3. Double-click each .workflow file.
  4. Confirm installation when macOS prompts.

After that, the actions show up as Services/Quick Actions for text handling.

Add keyboard shortcuts for the Services

Once installed, assign your own hotkeys:

  1. Open System Settings.
  2. Go to Keyboard.
  3. Click Keyboard Shortcuts.
  4. Select Services on the left.
  5. Find Text -> KBD *.
  6. Click the shortcut field on the right.
  7. Press the shortcut you want.

That is it. You now have a fast shortcut-to-formatted-shortcut pipeline available from anywhere.

Configuration

The scripts read config from:

  • ~/.config/kbd/config.yaml

You do not need to create this manually. The first time either script runs, it writes this file with default values.

Available keys under kbd::

  • use_modifier_symbols (default: true)
    • true: prefer symbols like , ,
    • false: use words like Command, Option, Shift
  • use_key_symbols (default: true)
    • true: use symbolic key names where possible
    • false: use text key names
  • use_plus_sign (default: false)
    • false: combine modifier symbols with no separator (⇧⌘K)
    • true: join with + (⇧+⌘+K)

Build and release it yourself

If you want to generate or ship your own builds, the repo includes Rake tasks for:

  • building self-contained scripts
  • generating signed Automator workflows
  • packaging release zip files
  • bumping versions and publishing GitHub releases

Project link:

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • Apex 0.1.100 - image rendering in terminal
    Apex can render Markdown to the terminal (-t terminal or -t terminal256) with ANSI colors and themes. As of 0.1.100, it can also draw images inline when stdout is a real TTY: your ![alt](path-or-url) images show up as actual graphics instead of only link-style text. What actually draws the image Apex does not embed a rasterizer. It looks for an external viewer on your PATH, in this order: imgcat (iTerm2-style inline images) chafa viu catimg The first one that exists wins. If none
     

Apex 0.1.100 - image rendering in terminal

Apex can render Markdown to the terminal (-t terminal or -t terminal256) with ANSI colors and themes. As of 0.1.100, it can also draw images inline when stdout is a real TTY: your ![alt](path-or-url) images show up as actual graphics instead of only link-style text.

What actually draws the image

Apex does not embed a rasterizer. It looks for an external viewer on your PATH, in this order:

  1. imgcat (iTerm2-style inline images)
  2. chafa
  3. viu
  4. catimg

The first one that exists wins. If none are found, or something fails, or you are piping output (not a TTY), you get the same link-style fallback as a normal terminal link: styled alt text plus the URL in parentheses.

Remote http:// and https:// images are downloaded with curl (temp file under TMPDIR or /tmp, then deleted). There is a size cap and timeout so runaway downloads do not blow up your session.

Flags and metadata

  • --no-terminal-images turns inline rendering off entirely (always link-style).
  • --terminal-image-width N sets the maximum width in character cells (default 50). This is separate from --width, which wraps prose.

You can also set terminal.inline_images / terminal_inline_images and terminal.image_width / terminal_image_width in metadata or config.

Installing the viewers (macOS)

iTerm2 ships imgcat on your PATH when you use its utilities, so you may already have the first choice. The others are a quick Homebrew install:

# Optional: pick one or more (Apex uses the first available on PATH)
brew install chafa viu catimg

On Linux, use your distro packages or the projects’ install notes; the same binary names apply.

Other stuff

Since 0.1.95, this line of releases also landed a bunch of other work. Highlights:

  • CSV/TSV includes with custom delimiters ({delimiter=X} or {;}) across iA Writer, Marked, and MultiMarkdown include styles.
  • Metadata handling improved: mode-aware extraction, better MultiMarkdown / Unified / Kramdown behavior, and standalone HTML now emits generic metadata as proper <meta name="..."> tags.
  • MultiMarkdown includes and transclusions accept embedded delimiter overrides without breaking on braces in paths.
  • Swift tooling: ApexC exposes the C API for SwiftPM, collision fixes for apex_* symbols, and NSString.defaultApexOptions() for plugins that need low-level options.
  • HTML output shape: --to xhtml serializes void elements in XML style (<br />, self-closing meta/link, and so on). --to strict-xhtml goes further for full documents: with --standalone it adds polyglot XHTML scaffolding (XML declaration, XHTML namespace, application/xhtml+xml metadata). Use one or the other; they target different strictness levels.
  • Homebrew formula updates for recent releases.

If you want the full blow-by-blow, see the project changelog on GitHub.

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • My ultimate keyboard-driven Mac utility list
    The keyboard is the most powerful tool we have when using our Macs, which is why I’ve curated what might seem like an overwhelming combination of keyboard utilities that I use daily. Each of these tools enhances my productivity in unique ways, so whether you’re looking to streamline your workflow or just want to explore some interesting keyboard hacks, I hope the following links and descriptions can help you find something valuable. Keyboard Navigation When it comes to navigati
     

My ultimate keyboard-driven Mac utility list

The keyboard is the most powerful tool we have when using our Macs, which is why I’ve curated what might seem like an overwhelming combination of keyboard utilities that I use daily.

Each of these tools enhances my productivity in unique ways, so whether you’re looking to streamline your workflow or just want to explore some interesting keyboard hacks, I hope the following links and descriptions can help you find something valuable.

Keyboard Navigation

When it comes to navigating my system with speed and precision, a few key utilities stand out. I use Superkey to enhance my existing keyboard shortcuts, making application navigation smoother and more efficient. It searches text on the screen and simulates a mouse click anywhere there’s matching text. It allows me to access features and functions without ever taking my fingers off the keyboard. For those looking for a similar solution, Wooshy offers a compelling alternative, providing seamless keyboard control for navigating all UI elements in an app.

Another indispensable tool in my toolkit is KindaVim, which brings Vim-like key bindings to any application, allowing me to navigate text with great efficiency. It’s perfect for those who appreciate the keyboard-centric ease of Vim.

KindaVim isn’t perfect, but it’s constantly improving. But as an example, if I use V and h/j/k/l in MultiMarkdown Composer to make a selection, when I hit X to kill the selection, the cursor jumps up a few paragraphs. It’s a bit jarring, but for basic Vim navigation like h/j/k/l/u/d/a/i, etc., it’s perfect, and enhances every app I write in.

There are always keyboard shortcuts for common menu items in any Mac app. I frequently access menu bars with ++? and use the help field to find menu items, and try to memorize ones that have the keyboard shortcut indicated on them. I have an as-of-yet-unpublished script based on NiftyMenu that scans any app for every available shortcut and generates Dash cheatsheets or Cheaters pages for it.

Speaking of menu item keyboard shortcuts, Paletro is amazing. It gives me a ++P shortcut in any app, with fuzzy type-ahead searching for any menu item. I use it daily.

Lastly, Scrolla is a game-changer for scrolling through documents and long text, enabling me to keep my hands on the keyboard whenever I need to go through lengthy content.

Keyboard Modifications

For deeper customization, I rely on a mix of tools that modify key functions and introduce new shortcuts.

BetterTouchTool is a powerhouse for managing trackpad gestures and keyboard shortcuts, letting me create personalized commands that fit my workflow perfectly.

Karabiner-Elements takes it a step further with its ability to remap keys at the system level, modifying their behavior. I’ve set up my Hyper key using this tool, which unlocks numerous possibilities for shortcuts and personalizations (check out my Karabiner mods for some advanced tweaks).

Additionally, my DefaultKeyBindings.dict file is essential for crafting custom keyboard shortcuts tailored to my preferences. MacOS’s built-in key mapping features allow for sophisticated combinations that further enhance my efficiency. Coupled with Keyboard Maestro, which automates repetitive tasks and creates amazing automations, I’m able to truly streamline my text editing.

Launchers

When it comes to launching apps and managing my clipboard, LaunchBar reigns supreme in my daily workflow. I’ve experimented with every launcher out there, but nothing has stuck quite like LaunchBar. Its intuitive interface complements my muscle memory, allowing me to access apps, files, and even perform quick calculations without losing focus.

With LaunchBar, I can access my entire clipboard history across reboots, copying things back into the pasteboard or pasting them directly. And I can double-tap the option key to “Instant Send” any selected file to LaunchBar, then hit tab to open it in an app or perform a custom action on it. Combined with KindaVim’s ability to navigate Finder with ease and SuperKey’s ability to select any file I can see on my screen, it’s crazy how useful LaunchBar is.

Though LeaderKey might seem redundant alongside LaunchBar, it offers the benefit of static, single-key sequences for launching frequently used applications and URLs. This has also become a part of my muscle memory, enabling quick access without sifting through multiple options. Combining these tools gives me a powerful launching and navigating experience.

Text Expansion

In the realm of text expansion, I’ve been a longtime user of TextExpander, with its snippet search capabilities and reminders making it an indispensable part of my writing process. I’ve also started using TextBlaze, but I’ve found myself confusingly using both tools at once. TextExpander’s ability to run shell scripts gives it an edge that can’t be ignored, and its expansion after whitespace is something that TextBlaze doesn’t quite match.

My current favorite text expansion tool, however, is Cotypist. This innovative tool offers automatic text completion as I type in any application. It predicts my inputs with uncanny accuracy, making it my go-to for prose writing. I don’t have to create a ton of snippets, it just figures out what I’m typing and fills in the blanks. It works great in apps like Cursor, too, completing instructions and prompts accurately.

Window Management

For window management, Moom is my weapon of choice. It allows me to move and resize windows with ease, using keyboard shortcuts that fit seamlessly into my workflow. The grid mode, in particular, lets me draw sizes and positions for windows on the fly, making multitasking a breeze and alleviating the need to have a thousand shortcuts for different positioning.

Web Browsing

In my browsing experience, Vimium has become indispensable. It enhances productivity in my favorite browsers by adding Vim-style navigation to web pages. If I type F, it tags every visible link with key sequences, enabling navigation that feels quick and fluid.

Coupled with my preferred search engine, Kagi, which provides the ability to navigate search results entirely with the keyboard, my online experience is streamlined. While DuckDuckGo offers similar shortcuts, Kagi’s advanced AI slop filtering adds to its appeal, making it a superior choice for my digital searches.

I hope you’ve found something new in all of this. I’d love to hear about your own favorite keyboard tools and shortcuts: please share them over at the forum and let’s master the keyboard!

Here’s a combined list of every app mentioned in this post:

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

  • βœ‡BrettTerpstra.com - The Mad Science of Brett Terpstra
  • Web Excursions for March 31st, 2026
    Web excursions brought to you in partnership with Setapp. Get access to hundreds of Mac and iOS apps for one low monthly subscription fee. The worst decline of democracy ever recorded could have been far worse. The institutions that were supposed to be the brakes either surrendered or stumbled over each other. The people put themselves in the gears. I don’t make this blog very political, which is odd given how political I am in my personal life. But this
     

Web Excursions for March 31st, 2026

Web excursions brought to you in partnership with Setapp. Get access to hundreds of Mac and iOS apps for one low monthly subscription fee.

The worst decline of democracy ever recorded could have been far worse.

The institutions that were supposed to be the brakes either surrendered or stumbled over each other. The people put themselves in the gears.

I don’t make this blog very political, which is odd given how political I am in my personal life. But this shouldn’t be a partisan post. This is about all of us.

Open Source Gave Me Everything Until I Had Nothing Left to Give - Kenneth Reitz
Not a perfect parallel to my own experience (I’ve never had a top open source project or gotten into keynoting) but this rings very familiar to me. My acclaimed “productivity” has been the result of some very trying bipolar episodes that plagued me for years, leading to burnout.
doing in Rust
A full port of my Ruby project, Doing, to Rust. Coming along nicely.

A command line tool for remembering what you were doing and tracking what you’ve done — stored as plain text, versioned with your project.

Steno — Your keyboard slows you down.

Steno is a native macOS voice-to-text app. Hold a key, speak, release — text appears instantly in any app. Sub-second transcription, voice commands, text snippets, and dictation history. Built with Swift for speed and accuracy.

Impressive AI-driven dictation with great privacy features and local-only mode (Apple Intelligence).

Automating iOS Shortcuts - The Cron Job Way

Today’s unnecessary and over-engineered thing is automating iOS (and macOS) Shortcuts using the same syntax that’s used to schedule cron jobs.

Check out Setapp today and get access to the best Mac and iOS apps out there.

Like or share this post on Mastodon, Bluesky, or Twitter.


BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out.

Find Brett on Mastodon, Bluesky, GitHub, and everywhere else.

❌