This is the second annual review of Snipline. The shell command bookmarker app.

If you don’t know what Snipline is, here’s a brief run-down: Snipline started as a tool to scratch my own itch. I wanted an app that streamlined saving, searching and using shell commands.

If you’re interested in learning more, checkout the home page.

How Snipline Desktop currently looks
How Snipline Desktop currently looks

Notable Product Updates

Desktop

Since last February the desktop app has added:

  • The ‘Show’ view.
  • Improvements to the multi-choice syntax.
  • Various bug fixes.
  • 1.0 release!

This seems small, but much of the desktop work is going on with the next big release of Snipline (version 2) which I’ll speak about later in this post.

More importantly, the app finally hit 1.0! Personally, I think i kept it as 0.x for too long, giving the impression that the software was not production ready. In reality it’s been pretty stable for quite some time.

Snipline CLI

Searching in Snipline CLI
Searching in Snipline CLI

The open source sidekick for Snipline has received a few updates this year, including support for building with Docker, allowing comma’s in multi-choice parameters, and adding password authentication.

The search functionality in Snipline CLI had a major update just before last year’s review, and included a fancy terminal UI which was very interesting to build as I had no prior experience with NCurses. It certainly was an eye-opener!

Snipbar

Searching in Snipbar
Searching in Snipbar

The MacOS menu bar app is in a great place as of right now. I recently updated it with fixes for multi-choice comma support, and allowing multi-choice parameters to be re-used, bringing it inline with the Desktop app.

Other items

There’s been a lot of behind the scenes work going on. Including preparing for password based log-ins rather than token-based login.

Emails switched from Sendgrid to Postmark as there were a lot of deliverability issues with Sendgrid. So far there has been no complaints since switching.

I released Rsync Command Generator, a free tool for generating rsync commands. This tool receives a surprising amount of visits, to the point where I’m very tempted to make a standalone desktop app for it.

Rsync Command Generator
Rsync Command Generator

I also migrated the blog to Hugo. I was having a lot of issues with Middleman, my previous preferred static site generator, and Hugo seems to work well enough.

Looking back at last years review

Last year I wrote about getting the pricing right. Not every developer wanted to pay the $18/year subscription for Snipline. The pricing now has a ‘Pay what you can’ structure. I’m very happy to say that subscriptions are up significantly from last year. The majority of people have opted for the $9 plan, and I’m pleasantly surprised to see that there’s been several $18 subscribers, too!

What’s next for Snipline?

First on the agenda is adding the Snipline CLI multi-choice reusable parameter fix, as well as updating it for the latest Crystal-lang release.

I’m hoping that Snipbar will be the next app to support password based logins.

Finally, there’s Snipline 2…

Snipline 2

A comparison of Snipline 1 vs an early prototype of 2
A comparison of Snipline 1 vs an early prototype of 2

I’ve mentioned in a previous blog post that I’m very much focused on Snipline 2 at the moment.

What is Snipline 2? Many of Snipline Desktop’s dependencies are starting to show their age now, and although I could update them in Snipline 1, I want to make some changes to the design and functionality.

Most importantly, I don’t want to force users to use version 2 if they prefer version 1.

My plan is to allow subscribers to continue using version 1 if they prefer it. Hopefully, they will see the benefits of version 2 and switch to it. There will be no additional cost.

Items that didn’t make it in this year

A few things I wanted to achieve in the 2nd year of Snipline which didn’t make the cut:

  • Client-side encryption
  • Publishing an API
  • iOS App

These are still very much on my mind. Client-side encryption is tricky for a few reasons, picking the right encryption, and having it available in Javascript/Crystal and Swift. More importantly, how to enable it (per snippet or per account?).

I want to hold off on releasing a public API until the password based auth is finalised.

The iOS app is a big task, and I feel I should focus on the new desktop app first. However, I recently released an app in SwiftUI which was a really pleasant experience. I would really like to do this for Snipline if there’s interested in it.

Thank you

That’s all for now. For all the Subscribers and trial users, thank you so much for using my little app. Many of you have reached out with bug reports and queries, and you’ve all honestly been so helpful and understanding. I hope that you will continue to use Snipline for the foreseeable future!