I built another thing! Expandly is a system-wide text expansion app for macOS. You type :shortcuts: anywhere on your Mac and it replaces them with emoji, snippets, templates, whatever you want. If you've used Slack's emoji autocomplete you already know how to use it, it works the same way except it works everywhere.
Why does this exist?
Honestly? Because I kept getting annoyed. I live in Slack for work and I've trained my brain to type :thumbsup: and :tada: like it's muscle memory at this point. Then I'd hop over to another app and type :rocket: and... nothing. Just the literal text :rocket: staring back at me. Same thing in Notes, in my email, in basically every app that isn't Slack.
I tried a few existing text expansion tools and they were either way too complex for what I wanted (I don't need a scripting engine, I just want my emoji), too expensive for something so simple, or they hadn't been updated since like 2019 and felt janky on newer macOS versions.
So I scratched the itch and built my own. Classic developer move, I know 😅.
How it works
You type a colon, start typing a name, and a little floating popup appears near your cursor with fuzzy-matched results. Hit Enter or Tab, the shortcode disappears and your text gets inserted. That's it. That's the whole thing.
:rocket: → 🚀
:tada: → 🎉
:addr: → 123 Main St, Suite 100, Denver, CO 80202
:sig: → Your full email signatureIt comes with built-in emoji using the Slack-style names you probably already know, plus 80-something kaomoji for when you need to flip a table (╯°□°)╯︵ ┻━┻ in a professional setting (we've all been there).
Custom snippets are where it gets useful
The emoji stuff is fun but honestly the custom snippets are what I use the most now. Anything you type repeatedly, you can turn into a snippet. Your address, an email signature, a canned response, that one Jira URL format you can never remember.
You can create them in Settings or just edit the JSON file directly if that's more your speed:
[
{
"trigger": "sig",
"name": "Email Signature",
"replacement": "Best regards,\nAndrea Fomera\n{{date}}"
}
]There's a handful of dynamic variables too: {{date}}, {{time}}, {{datetime}}, and {{clipboard}}. The clipboard one is sneaky useful. I have a snippet that wraps whatever I've copied into a markdown link format. Little things like that add up over a day.
Some things you might care about
It's a native Swift app that lives in your menu bar. No dock icon, no Electron, minimal footprint. I wanted it to feel like it's just part of macOS rather than another app demanding your attention.
A few things worth mentioning:
It does need Accessibility and Input Monitoring permissions which I know can feel a little invasive. It needs those to detect your keystrokes and insert text, and there's really no way around it for a system-wide text expansion tool. It'll walk you through granting those on first launch. And to be clear: no data leaves your Mac. No analytics, no telemetry, no accounts, nothing. Everything lives locally in ~/Library/Application Support/Expandly/.
I also feel pretty strongly that if an app is monitoring your keystrokes you should be able to read the code and verify that for yourself. So Expandly is source available on GitHub. Poke around, read the input handling code, satisfy yourself that it's doing what I say it's doing. Trust but verify and all that.
It's also smart enough to get out of the way when you don't need it. Apps like Slack and Messages that already have their own autocomplete? Expandly auto-disables in those so you're not fighting two popups at once.
Oh and if you're a terminal person, it has a clipboard-based paste fallback mode for apps where direct text insertion gets weird (terminals, some browsers). You can configure which apps use which mode in Settings.
It's free
No subscriptions, no accounts, no trials. Free forever. I built it because I wanted it to exist and honestly the idea of managing payment infrastructure for a menu bar utility made my brain hurt. I don't imagine I'll ever charge for it. Seems silly to charge for an app like this in this day and age.
Try it out
Download Expandly, it requires macOS 13 Ventura or later. Auto-updates are built in via Sparkle so you'll get fixes and new features as I ship them.
If you run into issues or have ideas, I'm @afomera.dev on Bluesky or you can open an issue on GitHub.
Happy expanding 👋,
Andrea