Retext

How We Use Text Expansion to Save 30 Minutes a Day

·Aaron Myers
productivitytext expansionmacos

We type the same 50 emails every week. The same address in every form. The same Slack responses to the same questions. Before we built Retext, we spent roughly 30 minutes a day on pure copy-paste busywork. Not writing -- just retrieving text we'd already written and putting it somewhere else.

Text expansion is a simple idea: you type a short trigger, and it gets replaced with a longer piece of text. Type ;addr and your full mailing address appears. Type ;sig and your email signature drops in. Type ;followup and an entire follow-up email template fills out, complete with today's date.

The snippets we use most

Here are the five snippets that save us the most time every day:

;addr -- Full mailing address. We fill out forms constantly. This one fires 5-10 times a day across shipping forms, account signups, and invoices.

;sig -- Email signature with name, title, and website link. Every email we send ends with this. That's 30+ uses per day.

;followup -- A follow-up email template that includes {date} (today's date filled in automatically) and {fill:Name} (a popup that asks for the recipient's name before expanding). One trigger replaces a 4-step copy-paste-edit workflow.

;loom -- A message template for sharing Loom videos: "Here's a quick walkthrough: {clipboard}". We copy the Loom URL first, then type ;loom, and the URL gets embedded automatically via the {clipboard} field.

;gh -- A GitHub issue template with sections for Description, Steps to Reproduce, and Expected Behavior. The {cursor} field places our cursor right at the description so we can start typing immediately.

Dynamic fields changed everything

Basic text expansion -- replacing a trigger with static text -- is useful but limited. What made it essential for us was dynamic fields. These are placeholders inside your snippet that get filled with live data when the snippet expands.

{date} and {time} insert the current date and time. No more opening a calendar to check today's date.

{date+7} inserts the date one week from now. We use this in follow-up emails: "I'll check back on {date+7} if I haven't heard from you." The date calculates fresh every time.

{clipboard} embeds whatever is currently on your clipboard. Copy a URL, type your trigger, and the URL is woven into your template automatically. No paste step needed.

{fill:Label} pops up a small dialog asking you to type a value. We use {fill:Client Name} in email templates so the name gets filled in correctly every time, without manually editing after pasting.

{cursor} tells Retext where to place your cursor after the snippet expands. Instead of expanding a template and then clicking to find where you need to start typing, your cursor is already there.

The math on 30 minutes a day

Here's a rough count from a typical day: 30 emails with signatures (;sig), 5 follow-ups (;followup), 10 address fills (;addr), and a handful of code snippets and Slack templates. Each one saves 30-90 seconds compared to the copy-paste-edit alternative. It adds up to about 30 minutes of eliminated busywork.

That's 2.5 hours a week. 10 hours a month. Not life-changing on any single day, but it compounds.

Getting started

If this sounds familiar -- if you're typing the same things over and over -- try text expansion for a week. Retext is free with up to 5 snippets, runs entirely on your Mac, and doesn't require an account. Download it at retext.io and set up your most-typed phrases. You'll feel the difference on day one.

Ready to try text expansion?

Retext is free with up to 5 snippets. No account required.

Download for Mac