Gloss | Native Text Expansion
Hey r/MacApps. I'm Josh, a CS student and (self proclaimed) indie developer. This is my second app I've been building, Gloss, as a side project alongside my university life. Here's a quick demo: excuse my poor video skills Problem If you use Slack, Discord and even Reddit, you're probably used to typing :thumbsup: or :sob: and having it just turn into the emoji. Then you switch to any other app on your Mac and that doesn't work anymore. You're back to Ctrl+Cmd+Space (or emoji button), scrolling through the emoji picker, searching, clicking. It's a tiny thing but it completely breaks your flow, especially when you do it dozens of times a day. That was the main itch for me. I wanted emoji short-codes everywhere on macOS, not just in apps that happen to support them. But once I started building that, I realised the same idea works for everything I repeatedly type. Email sign-offs, date strings in specific formats, code snippets, boilerplate responses. Gloss is a native macOS text expander. You type a short trigger (like :skull: or //date) and it instantly replaces it with whatever you've configured. Plain text, emoji, dynamic values like the current date or clipboard contents, or even small JavaScript. It ships with a bundled emoji short-codes pack so you get the Slack/Discord-style :name: behaviour system-wide, right out of the box. It sits in your menu bar, uses barely any resources, and doesn't phone home. Comparison aText: aText has been around for years and it works, but the interface feels like it hasn't been updated in a long time. It doesn't support scripting or dynamic content beyond basic date/time variables, and managing a large number of expansions gets painful. It does the basics, but that's about it. Espanso: Espanso is open source and genuinely powerful, but it's a cross-platform tool built to run on macOS, Windows, and Linux. In practice that means it's not optimised for any of them. I found it noticeably sluggish on macOS compared to anything native. It's also entirely config-file driven, so you're writing YAML to set up expansions with no GUI. Brilliant if you live in the terminal and don't mind the latency, but it never felt like a proper Mac app to me. Gloss sits in between. You get a proper native SwiftUI interface for managing everything, but the power features (scripting, regex triggers, dynamic variables) are there when you need them. Download https://trygloss.tech/download Requires macOS 15 (Sequoia) or later. Universal binary, runs on both Apple Silicon and Intel. Pricing There's a free tier with a 3 gloss limit, which is positioned as a free trial. Pro is a one-time purchase of £7.65 (~$10) with a 15% Launch Discount for a perpetual licence with 12 months of updates. No subscription. Transparency Distributing directly (notarised and signed with my Apple Developer ID). It can't go on the App Store due to Apple's sandboxing. Website: trygloss.tech, includes Privacy Policy and Terms of Service LinkedIn: https://www.linkedin.com/in/josh-mundray-98b3742b7/ Background: CS student with real-world placement experience. This is a genuine side project, not a startup. I'm one person. This is my second indie app and I'm very much still learning as I go, so any feedback (even the harsh kind) is genuinely welcome. Cheers 😄
已收集讨论
FWIW, Raycast Snippets offer this functionality as well (I’m a previous Rocket Pro user). They have a library of common expansions.
That's true but it also requires you having the rest of the product - It's a feature rather than the focus, so compare to Gloss and Rocket it is quite limited in configurability.
There is also TypeFire you could compare to
Ah, that does seem like a pretty cool alternative - I imagine the comparisons will come down to performance, I might check it out and benchmark them
Glad you chose native approach. You'll have fewer permission issues and better system integration than with the usual options. Curious how it behaves in apps with custom text fields (like some editors or browsers) and whether Raycast snippets conflict when both are enabled.
Gloss is more conservative when it comes to pattern matching by default, so it shouldn’t interfere - I have tested it on various apps but not an exhaustive list so it would be useful to know if there are any gaps
A similar app is https://typeshift.monogramcreative.co - it works great and it comes with a lifetime license.
u/MurkyRaspberry9610 is there any way to set word+TAB as trigger word+SPACE+TAB as trigger and word+SPACE? So shrugTAB would would be treated differently than shrugSPACETAB and shrugSPACE
This is definitely something I can introduce for the next update in about a week
I must say that I find it very cool and the explanatory video as well as your post describe the operation of the application very well. If I may make a remark that may be a little unpleasant, I find that the price is completely overvalued compared to the service provided by the app. We are certainly talking about something that can be useful, but honestly, I have never spent 10 dollars for 12 months of this functionality. I hope I was not hurtful. I am just giving you my honest opinion.
That’s for the feedback, would it be justifiable for lifetime updates instead?
I have to ask, because I use native text expansion a lot... how this this different/better than the built in macOS text expansion via System Settings > Keyboard > Text Replacement ?
Someone commented the same question here if this helps: https://www.reddit.com/r/macapps/s/3D7q9i6cjJ
I've been looking for an app which allows me to replace text with dynamic text. This is the first one which allows me to not only insert today's date, but also yesterday's date using JS. Right now, those are the only 2 I need, so the 3 in the free tier is perfect for me. I'm on 26.5 and have noticed that disabling the menubar icon toggle in Settings doesn't appear to be working. As a point of feedback, I'd rather be able to hide the dock icon and keep the menubar icon. Ideally, I'd be able to hide both, but not sure if that is possible with this type of app.
> If you use Slack, Discord and even Reddit, you're probably used to typing :thumbsup: or :sob: and having it just turn into the emoji. Then you switch to any other app on your Mac and that doesn't work anymore. Not true. Keyboard text replacement is built in to macOS and iOS. It’s in your settings app and has been for a decade. It does exactly what you are asking for. The JS aspect of your app is pretty cool, but what else does it offer that the actual native functionality doesn’t? Example of one that I have saved: I would pay for JS support, but no more than $2. $10 for this is much too high imo. Good luck.
I use aText v.2 (!) which still works great on Sequoia and Tahoe. Some time ago I bought TypeIt4Me at a discount in case aText would stop working on a future MacOS. Would you say I could do more with Gloss than with TypeIt4Me?
I've never used it, mainly because it's $20 - From what I can see, it is quite good at the basics but I don't think it has "scriptable" expansions. It does seem feature rich, but Gloss is in it's early phase and I will be rapidly improving the product, the price is effectively just a means to recoup development cost. Obviously you shouldn't base your decision on the promise of future updates but Gloss does seem to be more, or at least equally configurable at release.
Considering your only benefit over apps like Enspanso is speed, what are the specific benchmarks for both?
Nothing concrete, but as mentioned, Espanso is designed to be platform agnostic, fundamentally a native Swift app will be faster and more efficient. Although I am bias, I do perceive a difference in favour of Gloss, but you're more than welcome to try for yourself and report back And although others on the market do it as well, Espanso is CLI focussed, it's less intuitive than a product designed around a GUI.
so easier emoji everywhere? This is great. feels like something Apple should have built themselves
Thank you! Hopefully you find it useful
the JavaScript scripting for dynamic expansions is the differentiator here. Espanso can do some of this but the YAML config barrier is real. having a proper GUI with native SwiftUI and still supporting scripting is a nice balance. the emoji shortcode pack bundled by default is a smart move too, that's the thing most people actually want first.
Thank you! It is targeted as a more user friendly alternative - hope you enjoy
For the emoji side, there's Rocket which is free, and then shortcuts for anything else like //date, I'm failing to see why I'd pay for this app.
That's fair - Rocket prioritises Emoji expansion, which, although was the primary drive for me, it's not the limit of the product. It also has features like variable and JS expansion implementations. I never tried Rocket Pro, but Gloss accomplishes the same (and more) for the same price To add: The main gripe I've seen with Rocket is that it's very easy to accidentally trigger (especially as a programmer). Gloss on the other hand reads the whole expression before "expanding" e.g: :smile: rather than :smile