Creating products, selling software, and product-market-fit.

All of my long-form thoughts on creating products, sales, marketing, and startups, collected in chronological order.

Cleverly Failing

That’s not flying, that’s just falling with style.

Your Next Framework

Why Next.js is still a good pick in 2024

DevTool Sales

Everything I’ve learned about going to market with a developer focused SaaS.

The right sized bite

How much should I bite off for an ambitious side project?

AI blog post recommendations

The recommendations on this page are powered by OpenAI embeddings and PineconeDB

AI meets GTM

Go to market teams and software is about to massively change.

Whisper on device

Whisper is already better than most paid transcription services and it is free.

Reversion to the mean

Averages are hard to beat. Plan accordingly.


Make the abstract real

Selling to developers

It's not as hard as you think it is — you just need to help them implement your software.


Shipping with time constraints


The default option.


On time boxing and boundaries.


Doing things that last.

A black swan for ecomm

Correlation where you think there isn't any is a huge cause of blow-up risk.

PlanetScale on a plane ✈️

Airplane WiFi and SaaS database solutions don't get along well. Here's the fix.

Ecom Manifesto

Ecommerce is hard. Here's a path to making it easier, at least technically.

What happened to getInitialProps

Fetching data is a core piece of every web application. Let's talk about the OG data fetching function of Next.js — getInitialProps.

Sales engineering problems

A runing list of all the sales engineering problems I have encountered and potential solutions.

Bootstrap 1000 Challenge

The stair-step approach for profitable side projects

Cron jobs in Next.js on Vercel

Cron jobs are the first tool I reach for when needing to automate a simple part of a project. Here's how I set them up in a Next.js app hosted on Vercel.


I've been a big fan of Vercel for years now, and I'm excited to announce I'm joining the team this month.

A Gravity Review

Longer review coming soon. TLDR; Gravity is great.

Highlights from All-In ep. 41

This was one of my favorite All-In podcast episodes. There was a short 30-second clip from Chamath that sticks in my head.

On good tech debt

There's good debt and bad debt. Here's a look at technical debt through a financial lens. Believe it or not, some technical debt is good.

Supabase — A Backend for IndieHackers

Looking for a backend as a service? You probably haven't heard of Supabase, but you should. It's my default choice when building new businesses.

SaaS due diligence - Instafeed API

Should you buy your first SaaS? Maybe. Quite a few others have. Instafeed API is a tool I debated buying.

The ripple of Web Vitals

A paradigm shift is here for performance monitoring. Learn about how Vitals will make collaboration, analytics, and the web better.

Next.js Conf 2020 Highlights

Next.js Conf 2020 revealed Next 10 along with some other great work.

Intro to Core Web Vitals

Core Web Vitals are a game changer for web performance monitoring. Here's an intro to how to monitor them.

Why Next.js?

Next.js is my default choice when starting a new project, big or small. Here's why I think you should use it, pros and cons included.

My first Next.js Newsletter

My first Next.js newsletter went out this week. Here's what was in it.

What not to work on

Avoiding what you shouldn't work on is easier than knowing what to work on, but it's a start.

My principles for blogging

Don't let tech decisions get in the way of blogging about tech.

Notes on Naval's Money

You probably know who Naval is. Here are my notes from his 3+ hour long podcast about his Tweet thread on "How to get rich without being lucky".

Why I didn't tell you

Childhood memories, health, and learning to include others.

Tech decisions and developer guilt

Deciding your tech stack is difficult, especially on side projects. Why? Guilt from knowing "the right way."