Most developers I know already have a text expander habit, even if they don't call it that: a pinned note with a PR template, a gist of "polite no" review comments, a bug report skeleton buried in a wiki. The problem is the friction. Open the note, find the right block, copy, switch back, paste, fix the placeholders.
A text expander for developers removes that loop. You type a short trigger like /pr, and the full template appears in whatever you're typing in. This post covers the snippets I find worth saving, how to structure them, and how I set them up in InsertKit.
Why slash triggers work well for code-adjacent writing
A trigger is only useful if you never type it by accident. Plain words like reply show up in normal sentences, so I start every trigger with a slash: /pr, /bug, /lgtm. A slash almost never starts a word in prose, and it's easy to remember as "this is a shortcut".
A few habits that help:
-
Short and consistent.
/pr,/bug,/nit,/ty. If you have to think about the trigger, you won't use it. -
Group by prefix idea. Use
/rev-for review replies,/bug-for issue templates, so autocomplete narrows them down as you type. - One job per snippet. Small snippets compose better than one giant template.
Snippet 1: a pull request description
## What
{{summary}}
## Why
Context, ticket or issue link:
## How to test
1.
2.
## Notes for reviewers
-
Save this under /pr. In InsertKit you can turn a snippet into a dynamic one, so typing /pr opens a small form where you fill in fields like the summary, and the rest of the template is inserted around your answers. Placeholders are written as {{variable}}.
Snippet 2: a bug report that people can actually act on
**Summary**
One sentence describing what's wrong.
**Steps to reproduce**
1.
2.
3.
**Expected behavior**
**Actual behavior**
**Environment**
OS / browser / app version:
**Logs or screenshots**
Trigger: /bug. The value isn't the template itself. It's that you stop skipping the "Environment" section when you're tired and in a hurry.
Snippet 3: code review replies
Review comments are repetitive, and tone matters. Having the wording ready helps you stay kind and clear when you have thirty files to go through.
-
/nit→Nit (non-blocking): -
/lgtm→Looks good to me. Thanks for the clear description and tests. -
/q→Could you add a bit of context on why this approach was chosen over the alternatives? Happy to approve once I understand the trade-off. -
/split→This PR is doing a few things at once. Could we split it so each part can be reviewed and reverted on its own?
If you like to vary the wording by situation, InsertKit's snippet variations let one trigger hold several versions, each with a label. Type the trigger and a small picker opens so you can choose between, for example, a short and a longer version of the same reply.
Snippet 4: the small stuff you retype constantly
-
/sigfor your email signature -
/repofor a repository or docs link -
/standupfor a daily update skeleton -
/todayusing the built-in{{date}}variable for notes and changelogs
Variables like {{date}}, {{time}} and {{myName}} are built in, so you don't need to type them each time.
Setting it up in InsertKit
I use a text expander for developers that works on desktop and mobile called InsertKit. It runs on Windows, macOS and Linux, with an Android app and a Chrome extension (iOS is planned for later). Here is the workflow:
- Install the app and sign in. Snippets sync to your account, so they follow you across devices.
- Create a snippet, give it a trigger such as
/pr, and paste your template. - Optionally add a category (for example "Code review") so the list stays tidy.
- Type the trigger in any text field. The snippet fires as soon as the full trigger is typed, no Space or Enter needed.
A few details that matter for developers:
-
Autocomplete popup. Type
/and a small list of matching snippets appears at your cursor. Arrow keys to move, Tab or Enter to insert, Esc to close. -
Prefix settings. Some apps use
/for their own commands (Slack, Discord and Notion do). In Settings you can switch which prefixes are active, such as using;instead. - A global on/off key. The default is F4. Handy when you're about to type something where expansion would get in the way.
- Teams. Snippets can be Private or shared with a team, so your PR template can live in one place for everyone.
Because the expansion happens system-wide, the same /pr works in the GitHub web UI, a Slack message, or a text field in your editor.
Bonus: dictate the first draft, expand the rest
InsertKit also has voice typing in 100+ languages, and I sometimes combine the two. I dictate the free-form part of a bug report ("what I saw, what I expected") and let the /bug snippet provide the structure. It's optional, but it's a nice fit when typing long explanations feels tedious.
A starter set to copy this week
If you want to try the idea without overthinking it, start with five snippets:
| Trigger | Use |
|---|---|
/pr |
Pull request description |
/bug |
Bug report skeleton |
/nit |
Non-blocking review comment |
/lgtm |
Approval reply |
/standup |
Daily update |
Use them for a week, then add one new snippet each time you catch yourself typing the same thing twice.
FAQ
Do I need a text expander if my editor already has snippets?
Editor snippets only work inside the editor. A system-wide expander covers the places where you write the most prose: GitHub, Slack, issue trackers and email.
Which text expander for developers works on Linux?
InsertKit has a Linux desktop app (AppImage, deb and rpm packages), alongside Windows and macOS. Check the download page for the current builds.
Will slash triggers clash with Slack or Notion commands?
They can, since those apps use / themselves. You can turn individual trigger prefixes on or off in settings and use ; in those apps instead.
Can I share snippets with my team?
Yes. Snippets can be set to Teams access, and team management happens on the web dashboard.
Are my private snippets encrypted?
There is an optional end-to-end encryption setting for private snippets, currently marked as beta. Team snippets stay unencrypted so teammates can use them.
Is there an Android version?
Yes. The Android app expands /triggers in other apps, which is useful for quick replies on the go.
Wrapping up
You don't need a clever system. Pick the three or four things you retype every week, give them slash triggers, and let the machine do the typing. Your future self reviewing a PR at 6 pm will thank you.
What's the snippet you'd add first? Share it in the comments.
Top comments (0)