Table of Contents#
Here👇
Demo#
Features#
This app allows you to register code snippets, words, and sentences along with their trigger text, which will replace the input string when the trigger is typed.
For example, if you set it up as shown in the image below, typing `img
will instantly replace it with `img
as <img src="" width="320"/>
.

I frequently use the img tag in issues and PRs, but typing it out is tedious, so this is my most used snippet. I also register other things that are cumbersome to type, like emoticons and my address.
How to Use#
You can download it from https://quill.morishin.me/.
I apologize for the complexity, but just downloading and launching it won’t make it usable. You need to drag and drop Quill.app into the app list under "System Preferences > Security & Privacy > Accessibility" before launching it 🙇

Once launched, click the "+" button in the bottom left to add the trigger text, input the snippet in the text area on the right, and click "Save."

After saving, try typing the trigger in any suitable editor. The text will be replaced after input.

License Purchase#
Initially, you can only register one snippet. You can purchase a one-time license ($5) from the "PURCHASE LICENSE" button on the same page, and by entering the license key sent to you via email into the app, the registration limit will become unlimited.
You will receive an email like this:

Enter it on this screen in the app.

Development Background#
I was using the Code Snippet Manager feature of the documentation browser app Dash for macOS conveniently, but I was starting to use it less for viewing documents, and since the license renewal was paid, I decided to stop using Dash and create my own version of the Code Snippet Manager feature.
Technologies Used#
Main Application#
It is a regular macOS app written in Swift. I developed it in Xcode and distributed the .app that was notarized with Apple notary service Notarization as a zip file. I thought it would be tough to create my own billing and automatic update mechanisms, so I initially tried to publish it on the App Store, but I was told that apps requiring accessibility permissions cannot be distributed through the store, so I am distributing it myself. I managed to create a billing system, but I haven't implemented automatic updates.
The snippet data is stored in a trie structure, and I search the trie with each key input. The main logic part is library-ized and open-sourced, so feel free to check it out if you're interested. The pronunciation of the name is the same as try! Swift.
Billing#
I implemented it using Stripe and Cloud Functions. It is built with the same structure as what I wrote in a past article, so please check there for details.
License Issuance and Distribution#
I hook the successful payment callback in Cloud Functions to generate and email the license key. I used SendGrid for email distribution.
With SendGrid, you can create email templates graphically from the web console like this, which was super convenient. No coding required!

Web Page#
I simply wrote HTML and deployed it to Firebase Hosting. DNS and CDN are provided by CloudFlare.
Finally#
It's convenient, so please give it a try if you'd like 😊