Scott Watermasysk Husband, Father, Bootstrapper, Developer, Builder, Shipper.
Shorts are small posts and links. These are auto posted to @scottw on Twitter.

💡 Less SaaS❓

It is increasingly easier to deploy small apps and services via Docker, Heroku and Netlify Buttons, and Digitial Ocean droplets to just name a few.

If you factor in privacy concerns, I am wondering (and hoping to a certain extent) if we will see a push away from SaaS and more semi-self hosting.

# - Feb 15, 2019

A Guide to Using Ruby on Rails Application Templates

I have been slowly working on and researching my own Rails Template.

I find the thought of just needing to do the same initial setup over again is enough to make me put off building something new.

# - Feb 15, 2019

👏 Git History

An impressively easy way to view all the changes for any file in Git. You can run it locally on any git repo or on Github with a specified URL.

If I had one wish, it would be to optionally see what changed between two commits.

# - Feb 15, 2019

👩‍💻👨‍💻 - Rubanok

I have not used this myself yet, but I have many times built “query” objects to make active record query decisions based on params in controllers. This looks like a nice way to standardize these APIs.

# - Feb 14, 2019


This is an excellent replacement for RequestBin. Looks to be feature comparable. No idea who/what is behind it, but I am glad it is an option.

# - Feb 14, 2019

“uses just-in-time preloading — it preloads a page right before a user clicks on it.”

It is not that helpful on a site without proper HTTP caching, but on a static site with Netlify, fast pages get even faster.

# - Feb 14, 2019

Using Emmet for Vim

I love the suggestion to remap the emmet leader key let g:user_emmet_leader_key=','.

It instantly becomes 10x more useful.

# - Feb 14, 2019

Corrupting Google?

I wonder if the rocket growth of less than scrupulous companies like Facebook and Uber is ultimately what cost Google to lose its “don’t be evil” way.

You see them quite literally printing money, stealing your best talent and you start to think, why not us?

# - Feb 13, 2019

👨‍💻 Carbonize

Carbon is already a great display code in a tweet (or any environment you do not control).

Carbonize is a way to speed it all up on your Mac. The drag and drop support is very handy.

# - Feb 12, 2019

Rubular: a Ruby regular expression editor

Rubular can be used outside of Ruby as well, but it is optimized for Ruby regular expressions.

I have used it for years and I would bet on most weeks I visit at least once per week.

# - Feb 12, 2019


I am continually impressed with what can be accomplished with Zapier. It is very polished, has great support, and is an ideal way to link together multiple services.

Yesterday I was able to help a customer wire up a brand new integration using two simple webhooks.

The first took a webhook from the customer’s ‘form vendor’ sent the data Zapier. The next webhook was from within Zapier and posted back to KickoffLabs. All in, it took less than 10 minutes to set up (and most was trying to figure out how to use the customer’s form vendor).

# - Feb 12, 2019

Explain Shell

Ever wanted to know what that long shell command you are copy and pasting from a random website is actually going to do?

# - Feb 12, 2019

Comparing Tiny, Indie, and Earnest

I am still not sure what I think about “venture bootstrapping”, but if it works for you, this is a great overview of what short and long term costs may look like.

# - Feb 11, 2019

DasKeyboard with Blood Sugar

I didn’t test this keyboard because I didn’t want my keyboard to be connected to the internet (and it does not appear to be Mac friendly)

Having said that, this is very interesting.

# - Feb 11, 2019

Profitable Side Projects

I have been using side projects more in recent months to jump-start learning new technologies and automating repetitive tasks.

The “side” benefit has is seeing my main business (@kickofflabs) with a fresh perspective.

# - Feb 10, 2019

Taking Stimulus.js for a ride

Josef Strzibny on Stimulus:

Nevertheless, I like its use of a few conventions to standardize simple JavaScript code that would otherwise get unwieldy soon.

# - Feb 10, 2019

Ruby 2.7  Enumerable#tally

I am looking forward to this. I often use code that looks like this:

h =

items.each {|item| h[item] += 1}

What makes this work is whatever you pass to Hash in the initializer is used as the default value.

# - Feb 10, 2019

Examples of Passive Voice (And How To Fix Them)

I eagerly await the AI to fix this automatically.

Passive voice is something I rarely recognize on my own, but when I take the time to rewrite it in an active voice, it is always better.

# - Feb 10, 2019


gotop is an activity monitor for your terminal. You can install it in a couple of seconds via homebrew:

brew tap cjbassi/gotop
brew install gotop

Works great and I have love the vim inspired keyboard navigation.

# - Feb 09, 2019

Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib

This was a horrible way to spend a Friday afternoon. At some point, I installed something via Homebrew that borked/updated readline.

I still do not understand the issue 100%, but my best guess is ruby gems with native extensions were failing because of the dependency change. How it happened? Computers!

Re-installing Ruby (rbenv install ruby_version) seems to have addressed most of the issues (also needed to update bootstap to a newer version).

Wish I had a better recommendation for how to fix it and why it worked, but hopefully this is start for others.

# - Feb 08, 2019


Console app for syntax highlighting. Easily installed via brew install bat

# - Feb 08, 2019

Open Graph Image as a Service

Open source and easily hostable (via now) open graph images.

Setting up locally takes a couple of steps, but deploying it as easy as it gets.

# - Feb 08, 2019

Sparks of Joy - 1

Here are some nice newish things for me:

  1. @ScoutAPM - Simple and effective app performance monitoring
  2. @zeithq (now) - I am just scratching the service, but impressed the zero to useful experience
# - Feb 08, 2019

Mechanical Keyboard Switch Sounds

I am likely making another keyboard change (more on that later). In addition, I am second guessing the MX Blues. This video (just to the 1:30 mark) has a solid comparison if you are interested.

# - Feb 07, 2019


I saw this little doozy as recommend code for (Ruby) API access:

http.verify_mode = OpenSSL::SSL::VERIFY_NONE

This effectively disables SSL checks and is not something anyone should be recommending….ever.

# - Feb 07, 2019

❤️ Stimulus

I don’t get the fuss over React Hooks (likely since I have yet to touch React). 😎

I am surprised there is not more written about Stimulus. It is the first thing I have seen in years that I wish we had as an option when we started KickoffLabs.

# - Feb 06, 2019

A Couple of Months with Grammarly

Grammarly had a great deal around the new year on the paid plan. I am certainly not the best endorsement for a grammar/spelling product, but it has helped me quite a bit.

I find it helps me get into the zone more since I am not as worried about cleaning up what I write.

The out of the browser tools/integrations still need work, but overall it is very helpful.

# - Feb 06, 2019

Free Heroku in 2019

Good overview of what you can run on the side for free(ish). I always forget about CloudFlare’s free SSL option.

# - Feb 06, 2019

Ruby Standard

The lonely operator I mentioned before was flushed out by the excellent Ruby Stanard gem.

I have started to incorporate this into most of the projects recently. It does a great job pointing out obvious issues and helps me write more consistent code.

# - Feb 05, 2019

Ruby Lonely Operator

Ruby 2.3 introduced a feature called the “Lonely Operator” (which I somehow missed until recently).

Instead of:

user && user.address && user.address.street

You can write it like this:


# - Feb 05, 2019

Duet Display

Turn your iPad into a second monitor! The app, once you get it installed, is great1.

The install steps and experience is not exactly Apple like, but the end result is borderline magical.

  1. Ex-Apple Engineer tagline his horrible. ↩︎

# - Feb 05, 2019

Think Simpler

For my ‘shorts’ feature, I wanted to remove some of the friction publishing multiple times a day to a Jekyll blog.

My first thought was using the Github API. This involved getting a user token, understand the API, grabbing my content, using the API, etc. Then it hit me. The tool I was using to publish the post was local only at least for now. So instead of going through all the Github API hoopla, I just write to git.

Publish to Git

This version took all of 2 minutes to do (most of which was spent googling the -C flag).

# - Feb 04, 2019


Distraction-free writing in Vim. I have found it is helpful when you want to focus on a particular piece of code as well.

# - Feb 04, 2019

Faster Rails: How to Check if a Record Exists

ActiveRecord specific helpers will almost always do better than ActiveSupport helpers.

What makes this even more tricky is that when you initially write something, you may not have much data to test against.

# - Feb 04, 2019

Updating 1Password on OS X

I noticed 1Password had not been updated in a while. The background helper is too quick to restart before the AppStore can finish the installation.

The fix is to “super quit” 1Password with command+option+control+q (⌘⌥⌃q).

# - Feb 04, 2019

Quick Look for JSON

If you’re on macOS and have Homebrew installed, run brew cask install quicklook-json and Quick Look will let you look into JSON files properly.

Hat tip to @peterc

# - Feb 03, 2019

Insomnia REST Client

I have used Paw as my local API client for a couple of years, but recently switched to Insomnia. I am finding Insomnia much simpler and intuitive to use.

# - Feb 02, 2019

Heroku App.json

With this, you can set a lot of defaults on Heroku buttons as well as making easier (and more consistent) to deploy new application instances.

# - Feb 01, 2019

The myth of passive income – Paul Jarvis

“I never make products because I want to make money while I sleep or hear beeps on my phone alerting me of sales, while I sit around in my underpants. I make products because I enjoy making things and providing value to others.”

# - Feb 01, 2019

Tailwind and Stimulus: Declarative Done Right

It dawned on me today that TailWind and Stimulus is (if you squint hard enough) the declarative experience Microsoft tried to bring to market with the early versions of ASP.Net.

# - Feb 01, 2019

Git From Outside the Repo

You can use the -C flag to execute git commands from somewhere else on your computer:

git -C /some/other/path status
# - Feb 01, 2019


Built a little utility app with Stimulus. Set up was a breeze with the Webpacker gem.

Definitely something worth checking out.

# - Jan 31, 2019

Embracing Constraints

This is something I constantly struggle with when it comes to software.

At this point in my career, I can build just about anything given enough time. However, it often means I can get in my own way of just getting started.

This blog is a prime example. I have been going back and forth on how to mix quicker short form posts and longer content in my head for years…but once I just embraced the constraints of an existing product, I was able to finally make some progress.

# - Jan 31, 2019

Zone Vision

Zone Vision is a handy way to view DNS settings in your browser.

It is also easily sharable via a link which makes it a great tool if you have to support customers making DNS changes.

# - Jan 31, 2019

Jekyll Tailwind Starter

This project is a great starting point for a Jekyll site which leverages Tailwind. I also love the small scripts included to get going quickly.

# - Jan 31, 2019

Rails, Turbolinks, and Webpacker

Even if you want to push rails-ujs and turbolinks to webpacker, you probably still want to keep the turbolinks gem around. Otherwise, you must set the Turbolinks-Location on your own in your controllers.

# - Jan 31, 2019

Night Owl

A handy OS X menu bar app to quickly toggle in and out of Dark Mode. Also has an option to do it at a set time and sunrise/sunset.

# - Jan 29, 2019


Finally signed up on It is still all new and fresh, but I love the flow of the site. Plus, it is fast to navigate and use.

As of now, I regret waiting so long.

# - Jan 28, 2019

NVM and Default Version

I wanted to find the equivalent of rbenv’s global command for nvm: nvm alias default system - This will set the system version of node as the default.

# - Jan 25, 2019

Netlify CMS

Not the most obvious setup instructions and not sure how well it will scale as the amount of content grows, but it should remove some friction in writing these little shorts.

# - Jan 25, 2019


Really nice way to tinker with a webpage. I am ultimately very skeptical of everything Google and Chrome, but as of today, it is still the best browser for development…by far.

# - Jan 25, 2019

Company of One by Paul Jarvis

Finally gave up trying to read it (kids!) and bought the audio version.

Superb book and fits well with own model for growing a business long term. Recommended.

# - Jan 24, 2019

zsh nvm

This plugin is the first time I have been able to get NVM setup properly. It just works.

# - Jan 24, 2019

Jack Dorsey Interview

Interesting interview by Bill Simmons on the challenges of making Twitter better.

# - Jan 23, 2019

Carbon Now CLI

Really nice way to show code in tweets all from your terminal.

# - Jan 23, 2019


Best site I have found aggregating Ruby content. Updated daily.

# - Jan 23, 2019

First Short

The Shorts section of my blog is an attempt to capture small posts that would normally be wasted as tweets. If everything goes according to plan, they will render like normal tweets, but will exist outside of Twitter’s walled garden.

# - Jan 23, 2019