How I Combined Two Blogging Platforms in 20 Hours

You know those someday maybe projects, that sit in a doom pile in the mind while waiting to finally be discarded or surge in importance? One of my projects was finally consolidating two blogging platforms into one. I had previously built a portfolio site with Gatsby way back in the day—like 7 years ago when I mainly focused on front-end engineering. It had a bunch of technical and human skills posts that had largely been dormant since 2021. However, the posts about TypeScript utility types still drive a lot of traffic to this day. I started writing again last year and wanted something that I could get up and running without having to worry about managing dependencies and fiddling with all of the little things. That was a quick way for me to get stuck in the minutiae, and not actually write. The content was also less technical, so I decided to separate it and spin up a Substack account. ...

May 19, 2025 · 16 min · Skyler Lemay

How to Bundle Knex with Webpack for Serverless

Bundling Knex with Webpack doesn’t always play well. In this particular case I was trying to bundle a serverless application with only the runtime dependencies. Since this project was utilizing TypeScript and other tooling and dev-dependencies I definitely did not want to ship all of the node modules. Additionally, most of the 10 module resolution errors I was receiving were for packages I didn’t even have installed. In this blog post we’ll cover utilizing a Webpack plugin to resolve this build error. ...

May 22, 2020 · 2 min · Skyler Lemay

TailwindCSS: From Skeptic to Advocate

At it’s core Tailwind creates extensible yet constrained design systems with reasonable defaults. TailwindCSS is a configurable CSS tool that generates CSS utility classes. These utility classes each set one CSS property, and are combined with other utility classes to generate the styles for a layout. In a utility first CSS approach, elements generally have more classes attached to the DOM in favor of writing bespoke CSS. This is a high level simplification of the tool, but it is an important baseline of understanding before moving forward. ...

May 18, 2020 · 7 min · Skyler Lemay

Better Dependency Management Using Renovate

I have moved most of my open source projects to Renovate, and found I simultaneously spend less time focusing on dependency updates and have more current dependencies. Over the past few months I have been moving most of my projects to Renovate for managing dependencies. From my experience, Renovate offers several key benefits over other solutions such as Greenkeeper and Dependabot. This blog post will focus on what Renovate is and what differentiates it from other dependency management solutions. For a higher level overview on dependency management, I recommend checking out how to manage dependencies with confidence. ...

November 18, 2019 · 4 min · Skyler Lemay

8 New ESLint Rules - Jest

Maintaining an ESLint config has several benefits, a significant one being seeing new rules as they become available. ESLint shapes the way we use JavaScript, and now TypeScript too. As I prepared for the latest release of my own ESLint config, I became aware of several new and helpful rules for testing with Jest. In this post, I’ll dive into what some of these new rules are and some considerations for why they aren’t added to the recommended options. ...

September 9, 2019 · 5 min · Skyler Lemay