home about me

One Less Join using Laravel Pivot Tables

Laravel’s BelongsToMany relationship has a relatively unknown allRelatedIds method that might just shave off a MySQL join.

Easy Auto Sizing Textarea

Two options for creating a textarea field that grows and shrinks with user input. Easily definable minimum and maximum height. Example code for Javascript and Vue.js.

Short and useful SCSS Mixins, Part 2

Some more short and useful SCSS helpers to make development easier and cleaner.

border-radius for the content-box

As CSS border-radius will only work in the place the border is supposed to appear - between margin and padding - we need to come up with a more creative solution if we want a round edge where the content is.

Finding optimal color contrast in Shopify

Expanding on the previous post about automatic high contrast text colors, let’s take a look about how this could practically be implemented in a Shopify theme.

Short and useful SCSS Mixins

With CSS getting more and more features, SCSS has less use cases. Yet there are still a lot of areas where SCSS makes development easier.

CSS Media Queries to respect your users

You should always respect the choices your users make. There are a few media queries you can use to easily make your site or app experience more in line with what your users want.

Finding optimal color contrast

When it comes to styling text content, readability trumps everything else. But not all colors are made equal.

Change project config when git branch changes

For a legacy project that required me to deploy different branches to different endpoints, I utilized a quick git hook.

Simple workspace shortcuts

Having a few shortcuts to quickly pull up your different workspaces really makes a difference.

Better iterators with ii & jj

Using ii, jj and kk instead of i, j and k for iterator variables is preferable.

Repeat a shell command until it succeeds

Sometimes you just need to try again. And again, and again…

git pushup: a little alias for easier branching

git branches are a lovely thing to keep your work tidy and easily collaborate with other developers. But if you want to avoid those pesky upstream error messages when trying to push a freshly created branch, there are two things you can do.

Deploying Laravel to fortrabbit (Gitlab CI)

Automatic deploy of Laravel projects to fortrabbit, including built assets and database migrations, using Gitlab CI.

<marquee>: Alternatives in CSS

Remember back in the late 90’s, early 00’s? Geocities, Angelfire, Tripod, no personal website was complete without the scrolling text provided by the <marquee> tag. Now that it is officially deprecated, let’s look at implementing an alternative.

The difference between " and ' in shell aliases

Not doing clickbait: Single quotes delay command substition, double quotes do it immediately.


A library for assigning human-readable names to colors, and an accompanying Visual Studio Code extension.