Welcome to the lab.

Flexibits Premium giveaway!

I’m excited to offer the next giveaway, 10 1-year subscriptions ($57 value each) for Flexibits Premium from Flexibits. Flexibits makes some incredibly useful apps. Fantastical is an awesome Calendar replacement, Scheduling makes organizing calls and meetings a breeze, and Cardhop is the perfect way to manage and access your contacts. The Flexibits Premium subscription gets you access to all three, on all your devices.

From the developer:

A single subscription unlocks all premium features in Fantastical and Cardhop across all your devices. Your calendars, tasks, and contacts will be more powerful, more productive, and more fun.

Check out the Flexibits site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, March 22, at 12pm Central. The drawing is for 10 1-year subscriptions ($57 value each) for Flexibits Premium, 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!

Giveaway ends in...

One entry per person, a full name and valid email required to win. Giveaway ends on 03/22/24 at 12:00 PM. I will never sell or misuse your email address.

Stay tuned for more giveaways every week through September, 2024 (and maybe beyond).

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!

Build a custom URL shortener

I wanted short urls for Dimspirations, and I wanted a custom domain name (dim.moi), but didn’t want to pay the somewhat exorbitant prices to do so with something like Bit.ly. So I set out to build my own URL shortener.

PHP/mySQL seemed like the path of least resistance on my current server setup, so I went looking for existing tools that met my needs without too much complication. I found Shorty by Mike Cao, a decade-old project that still worked just fine. I forked it and built a tool called Shortly on top of it. It uses all of the base code of Shorty with my own additions, so full credit for this goes to Mike, but it has enough changes specific to my needs that I’m not pushing my fork upstream.

Shortly is a basic URL shortener. You just have to register your short domain, set up basic PHP/mySQL hosting for it, and then install the files. So the total cost is one domain registration, plus whatever hosting you use for it. It requires very few resources, so a simple $5 shared hosting plan will work fine. I have multiple servers where adding new domains doesn’t cost me anything, so I went with a Dreamhost server for this and built it for just the cost of a .moi TLD ($30/yr, if I recall correctly).

The install instructions are detailed in the README and on the project page. It’s pretty simple, just creating a mySQL database and importing an SQL file to set up the simple database. In about 15 minutes you can have a custom URL shortener that outputs urls like dim.moi/eQ and passes them through to the full url on the target site. All of my Dimspirations now have short urls, and I can generate new ones with a simple curl call from my build system.

Here’s what I added to the script:

  • Allow limiting shortening to one domain
  • Allow forwarding of paths containing hyphens or which are not found in the database to be forwarded to a root url
  • Allow appending query strings to urls before shortening or forwarding
  • Accept format=qr and size=XXX to create QR codes for shortened urls
  • Add longURL keys to JSON and XML output
  • Default to plain text output format, perfect for curl calls

All of these settings are detailed in the README and commented in the config file.

For my particular needs, my shortener will only shorten URLs from dimspire.me, will forward unknown urls like dim.moi/ether-bunny to https://dimspire.me/dimspiration/ether-bunny/, and will append some UTM parameters to any url it shortens so I can track usage.

Part of the impetus for this was I wanted to include UTM parameters in the links I offered for sharing, but didn’t want to make ungainly URLs. With Shortly, I can add any query parameters I like to a url and end up with a simple https://dim.moi/fR url to share. And I can shorten https://dimspire.me/dimspiration/optimal-anxiety-level/ to https://dim.moi/optimal-anxiety-level/ without even using the API (as the unrecognized slug automatically gets forwarded to the base url dimspire.me/dimspiration/SLUG).

Hopefully this inspires some fun projects of your own, and revives a great little project that Mike Cao started. It’s such a simple concept that I’m sure there are dozens, if not hundreds, of permutations of it. This is just the one I found the easiest to hack away at and get running with minimal fuss. Check out the project page or the GitHub repo to get started.

As an aside that’s not worth it’s own post, I also set up a CloudFront instance that forwards from.ttscoff.me/(filename) from an S3 bucket, and added a Dropzone destination so I can just drag any file to Dropzone and get back a from.ttscoff.me URL with which I can share any file. It lacks all of the niceties of other file-sharing tools, but I’m running it for less than a dollar a month. Subdomain was free, and it doesn’t use enough bandwidth to really register as an expense in my Amazon plan. If you want any details on how to do this, just let me know.

The Bike giveaway winners!

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

The winners!

Congratulations to:

  • Christoph Schneider
  • Albert Willis
  • Nicholas Foley

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 Bike is still worth checking out. You can still save 20% with the coupon code BRETT at checkout. Get the simple yet powerful outliner today!

Next up is Flexibits Premium. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

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

Bike giveaway!

I’m excited to offer the next giveaway, 3 licenses ($29.99 value each) for Bike. Bike is a deceptively simple outliner. It uses plain text files (HTML, but also supports OPML and text) to store structured data that maintain simplicity while offering a ton of functionality. Add row types like headings, ordered lists, task lists, and more. Create deep-links into your outline (works great with Hookmark).

From the developer:

Bike’s nimble. Use it as the main app for a big project or as a supporting app for notes and ideas. Standard file formats, shortcuts support, and scripting allow Bike to integrate with your existing workflows.

Check out the Bike site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, March 15, at 12pm Central. The drawing is for 3 licenses ($29.99 value each) for Bike, 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.

Stay tuned for more giveaways every week through September, 2024 (and maybe beyond).

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!

The Things for Mac and iOS giveaway winners!

The Things for Mac and iOS giveaway has ended, and I have winners to announce!

The winners!

Congratulations to:

  • Ada Panzier
  • Aaron Ferkenstad
  • Bart van der Pot
  • Daniel Doron
  • Nathan D Myers

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 Things for Mac and iOS is still worth checking out. Things will help you get organized, and get your stuff done.

Next up is Bike. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

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

Things for Mac and iOS giveaway!

I’m excited to offer the next giveaway, 5 (sets of) licenses for Mac, iPhone, and iPad ($80 combined values) for Things. Things is a task management solution that I love for its elegance. Display your todos alongside calendar events, see exactly what you have to do today, see upcoming tasks, and break large projects down into manageable pieces.

From the developer:

Things makes it easy. Within the hour, you’ll have everything off your mind and neatly organized – from routine tasks to your biggest life goals – and you can start focusing on what matters today.

Check out the Things site for more info.

Sign up below to enter. Winners will be randomly drawn on Friday, March 08, at 12pm Central. The drawing is for 5 licenses for Mac and iOS ($80 value each). for Things for Mac and iOS, 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.

Stay tuned for more giveaways every week through September, 2024 (and maybe beyond).

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!

Dimspirations Merch!

I’ve created the initial round of merchandise for the Dimspirations Store. I know my sense of humor isn’t for everyone, which is why this whole project is on a different site.

I’ve started with some of my personal favorites as tees, mugs, and a 2024 calendar. The collection will grow over time (it’s print-on-demand, no cost to me to expand the selection). I’ll also adjust pricing based on feedback. I think the prices are pretty competitive based on what I’ve spent on merch myself.

I’m using Sellfy for the printing and delivery. I’ve used Spring in the past and checked out Printful and Cotton Bureau, but Sellfy seemed like the best solution with the most competitive pricing. I already paid for a 1-year package, so let’s hope it works out. If it does, I’ll probably relaunch the BrettTerpstra.com (Lab) merchandise there as well.

Please do check out the store, and if you like what you see, toss a couple bucks my way. And if you don’t see what you want, be sure to upvote your favorites Dimspirations by clicking the devil below each one. If you have special requests, of course let me know.

I’ll admit, this one is my favorite:

The Black Ink giveaway winner!

The Black Ink giveaway has ended, and I have a winner to announce!

The winners!

Congratulations to:

  • Wil Chow

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 Black Ink is still worth checking out. You can save 20% on your purchase with the coupon IndieTerpstra. Visit the Red Sweater store to grab your copy!

Next up is Things for Mac and iOS. Check back every Monday through September, 2024 for more giveaways. The next giveaways include:

See the full list of upcoming giveaways!

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

Web Excursions for February 29, 2024

Web excursions brought to you in partnership with Backblaze. Back up everything.

Cluster (for Bunch)
Cluster is an Alfred workflow for use with Bunch, written by Stephen Millard. Closely integrates Bunch functionality with Alfred to make life even easier. I’m not an Alfred user myself, so I haven’t stress tested it, but if you are, please do and let Stephen and I know how it goes!
Nihilisa Frank on Tumblr
Colorful nihilist memes to make your day. Thanks to @adamrice for pointing this out.
Superkey
Simple and powerful keyboard enhancement on macOS. Want to add the Hyper Key with no fuss? Want to navigate your screen without touching your trackpad/mouse? This app looks really great at $16. h/t Mike Harahan on the forum.
Tech has graduated from the Star Trek era to the Douglas Adams age (Interconnected)
This post from Matt Webb speaks to me. Yes, tech has gone into a wobbly place better envisioned by Douglas Adams than by Gene Roddenberry, but maybe that’s an ok thing.

Backblaze securely backs up your entire computer to the cloud, affordably and reliably. I trust it with all my data. Check it out today.