Spencer Pauly

I build useful products and the systems behind them.

Product-minded engineer. Based in Minneapolis.
01

A habit calendar that lives inside my notes

Project · 2026

A habit calendar that lives inside my notes

I used to track habits on a whiteboard calendar, marking an X on every day I worked on a side project. When I needed the whiteboard for something else I moved to printed calendars taped to…

Read more
02

Building my own fantasy football draft board

Project · 2025

Building my own fantasy football draft board

Every year I go into my fantasy draft with a list of players I like, and every year that list falls apart by round three. The rankings you find online are averages. They tell you where a pl…

Read more
03

E2E tests that survive moving a button

Project · 2025

E2E tests that survive moving a button

At one point I merged what I thought was a harmless UI change. I moved a button. Dozens of E2E tests failed overnight, and none of them had found a real bug. The tests weren't catching prob…

Read more
04

Tracking my lifts without another gym app

Project · 2025

Tracking my lifts without another gym app

I've been going to the gym consistently for a couple years, and the tracking part never stuck. Every lifting app wants an account, a subscription, and a tour of its features before it'll le…

Read more
05

A tiny service that keeps my APIs warm

Project · 2024

A tiny service that keeps my APIs warm

Serverless is great until the first person to visit your app in a while has to sit through a cold start. Nothing is broken, but the app feels slow, and slow is the impression people keep. T…

Read more
06

Turning Notion pages into a real help center

Project · 2023

Turning Notion pages into a real help center

A lot of small companies already write their documentation in Notion. It's where the team lives, so it's where the knowledge ends up. The problem is what happens when you want customers to…

Read more
07

The app I built for cross-country skiers

Project · 2020

The app I built for cross-country skiers

Cross-country skiing has a funny information problem. Whether a trail is worth driving to depends on conditions that change by the hour, and the people who actually know are already out on…

Read more
08

I rebuilt one of my first coding projects

Project · 2019

I rebuilt one of my first coding projects

One of the first things I ever coded was a small tool to look up my most listened to Spotify tracks. Spotify only hands you that list once a year with Wrapped, and I wanted to see it whenev…

Read more
New year, new habitsI've always liked the idea of tracking habits. A couple years ago, I had a large whiteboard and I would draw a calendar and put an…I ditched my blogging platformMy blogging journey started 5 years ago on Medium. I had a blast writing on that platform. Then, I moved to Ghost and put my writin…Introducing TestingBee.io!!!A few years ago, I was building a product, moving fast, shipping features daily — until my test suite became the biggest bottleneck…Integrating AI with Obsidian – how I make notes easyI've been using Obsidian for my note-taking workflow, and I want to share an overview of how I use it and why it's incredibly helpf…I'm working on a new product :)For the past month, I’ve been building a new SaaS product, and today I’m excited to share a sneak peek of it with you! This is part…GymThis is just a brain dump of how I program my weightlifting. This isn't really a guide or strategy for how to get optimal results.…Feelings and CompetitionPicture yourself and a hundred other souls stranded on a remote island. You wake up and jump right into the daily grind of hunting,…Today I Start a 15-Day Productivity ChallengeLast week I woke up to an email from my friend and fellow bootstrapper, Tyler Dane inviting me to join him and others on a 15-day p…Tech I'm learning in 2023Guys I'm gonna be honest, I think I'm at the beginning of becoming an "old man" in tech. What I mean by that, is that I've become m…Final days in EuropeI'm currently sitting in a coffee shop in Copenhagen. It's one of my last bits of travel before returning to the U.S. A victory lap…7 Common SaaS Dashboard Mistakes — How to FixSaaS dashboards, like everything in life, are a compromise. They’re a constant battle between functionality and ease-of-use. And, l…My first month in EuropeExactly one month ago, I quit my job, sold my things, and booked a flight to Europe. The destination? My dream city of Amsterdam. T…Best practices for naming hooks & props in ReactAs a developer, I think two of the most challenging things in software are (a) naming things and (b) figuring out best practices. B…Some tips for founders to destressThis week has been extremely stressful for me. I made a tweet last week about moving: <Tweet author="Spencer" handle="spencerpauly"…Regaining productivity as a bootstrapperThere's a lot of great advice online to build better software businesses. The common wisdom includes "start marketing before you st…The importance of connections🚀 Product update: 2 new engine customers this week 🚀😄! yay! I'm very independent. And I'd argue that if you're building a bootst…Firsts shouldn’t be so hardStarting something new shouldn't be hard. But, it is. I think Newton's first law explains why this happens. An object at rest will…Introducing the container pattern – a better alternative to ReduxRedux would've been a fine solution for state management two years ago. But, these days, with how mature the React Context API has…The ideal tech stack for building cross-platform apps in the modern eraLet’s entertain a simple scenario for a second: You’re a solo developer. You have an idea. You tell the idea to your friends. They…How to type React Context with TypeScript – and why is it so painful?The other day I was converting a JavaScript component to TypeScript and I got tripped up in one specific area: React Context. Now d…The Best Design Pattern for Managing Forms in ReactUghh… why does form code in React always get so messy? It starts out simple: a <formcomponent, a couple input fields, and a submit…Progressive Web Apps — the future of mobile?Progressive Web Apps (PWA’s) are becoming more widespread every day and when you see their benefits it’s easy to understand why. PW…The 9 Month Solo Development Journey of SkiwiseSkiwise is an app I’ve been developing with the goal of connecting cross country skiers with a network of their peers to share know…10 Non-Traditional Hacks for Incoming Computer Science StudentsAs we approach late August, the time is coming for college classes to kick off again. Whether your school is online or in-person, I…Why I Switched Away From Google Firestore – and don't regret itGoogle Firestore is Google’s propriety NoSQL Document-Based Database. Paired with the rest of the Firebase suite such as Cloud Func…Why didn't Deno take off?Deno is a Javascript / TypeScript runtime looking to take the place of Node.js as the status quo. It boasts a wide slew of features…

Independent builderProducts, interfaces, and the operational details.

Cross-country skierUsually thinking about trail conditions.

Always writingLong posts and tweets belong in the same archive.