Mike Bifulco

CTO and co-founder @ Craftwork (YC S23) 💌 Tiny Improvements for devs and founders: mikebifulco.com/newsletter Co-founder APIs You Won't Hate Former Google / Stripe / Microsoft Talking UX, react, rails, ☕ espresso, 🚴‍♂️ cycling 🪿 UNGOVERNABLE mf

1167 followers2076 following210 stories

Longform Stories

Operating Principles

May 15·1 min read·2 words

You are not your user. Except when you are.

You are not your user. Except when you are. This is a story about how I learned to be a better user of my own product.

May 7·1 min read·35 words

CSS Tips Part 2 - text-wrap: pretty will make your text feel intentional

Go beyond balance. Learn how text-wrap: pretty improves readability, reduces awkward breaks, and makes your UI feel more polished.

Apr 30·1 min read·32 words

Dunning-Kruger for Vibe Coders

The first thing AI teaches you about coding is confidence. The second is why that's a problem. Let's talk about the Dunning-Kruger effect.

Apr 28·1 min read·27 words

Lessons I Learned the Hard Way

Your brain rewires itself based on what you practice. If you stop practicing hard things, you slowly lose the ability to do them.

Mar 17·1 min read·29 words

Learn to Love the Rebuild

Refactoring isn't a necessary evil -- it is the job. Why the best product teams rebuild constantly, at every scale.

Feb 17·1 min read·25 words

Just Enough Is an Ongoing Practice

Stable products still need maintenance. Defaults and shiny features quietly tax systems over time, and efficiency is a sign of craftsmanship, not penny-pinching.

Feb 10·1 min read·29 words

Optimizing Your Next.js Site's Fast Origin Transfer and ISR Reads

Next.js Link prefetching quietly burned through 15 GB of bandwidth on my Vercel-hosted blog. Here's how I fixed it.

Feb 9·1 min read·29 words

My 2026 Developer Tech Stack

The tools I use as CTO and product engineer at a Y Combinator-backed startup in 2026.

Jan 27·1 min read·21 words

The Zeroth Loop: They Don't Quit, They Forget

Most habits don't fall apart because people quit. They fall apart because they aren't sticky.

Jan 6·1 min read·23 words

Science-Backed Secrets of Long, Happy Lives

A guide to the habits of high longevity people.

Dec 9·1 min read·15 words

The Science of Spotting Hidden Product Ideas

The best product ideas hide in plain sight, in your habits and everyone else's. Watch what people actually do, not what they say they want. Build for that.

Dec 2·1 min read·35 words

The Psychology Hack Hiding in Great Products

Every message is a moment of influence. Make the nudge helpful and you'll create power users and build loyalty.

Nov 25·1 min read·26 words

Patching NPM Dependencies with pnpm patch

Learn how to patch NPM dependencies with pnpm patch to fix issues with your project.

Nov 11·1 min read·21 words

Contributing to Open Source without being a Jerk

Open source doesn't work without good faith - and sometimes you need to patch a dependency to do your part.

Nov 11·1 min read·28 words

The next great engineering skill is not coding

You have likely ignored it your entire career. That stops now - it's time to hone your writing skills.

Oct 23·1 min read·27 words

AI and the New Language of Human-Centered Design

Software has always required people to think like a computer. AI flips it on its head: people expect computers to work the way they think.

Oct 2·1 min read·33 words

Dieter Rams 10 Principles of Design

Good design is good design, no matter what you're building.

Sep 23·1 min read·16 words

Beyond Click Counts: Finding the Right Signals for Good Design

Click counts are noise. Real design success is measured in signals that show whether people actually achieved what they came to do.

Sep 3·1 min read·32 words

Stop Counting Clicks

Too many clicks isn't the problem. It's a signal that your design isn't successful.

Aug 26·1 min read·17 words

Founder Math: When to Stop Searching and Start Choosing with the 37% Rule

How do you know when to stop searching and just choose? A classic bit of math offers a simple rule.

Aug 19·1 min read·33 words

You Built It. They Didn’t Come.

My first launch failed. Years later, we sold the product - but it didn’t have to be that hard. Here’s what I’d do differently today.

Aug 5·1 min read·31 words

Beyond ✨Shiny✨ Degrees: World-changing innovations from unexpected places

Public investments in education and research are a no-brainer, and these examples of game-changing innovations that came from "low value" fields of study tell you why.

Jul 15·1 min read·34 words

What Everyone Gets Wrong About Vibe Coding

Vibe coding tools like Cursor, Copilot, and Claude aren’t just about speed—they’re an opportunity to code smarter and learn faster. Here’s how I use them to sharpen my skills as an engineer.

Jun 24·1 min read·39 words

The Quiet Room Problem

The same psychological forces that keep people silent in moments of crisis also show up in product development - when no one questions a flawed idea, chases hard truths in the data, or speaks up for t…

Jun 17·1 min read·43 words

Eraser or the Wrecking Ball? Planning is everything

The product development process is a virtuous cycle, and has a direct impact on how well your work gets done. It will also help your teammates to understand the work ahead, and to build better product…

Jun 3·1 min read·45 words

Open Source your learning with GitHub

Open source is an open invitation to plug into a global braintrust of brilliant people building the future. What you get out of it has a lot to do with what you put in.

May 27·1 min read·40 words

AI Prompt Secrets - what the leaks tell us

Popular AI tools like Claude, v0, and Cursor can be coaxed into revealing their prompts. Here's what I learned from a deep dive into some of the most successful prompts in the world.

May 13·1 min read·42 words

I want to feel the hand of the f%#king creator

It's not divine intervention; it's just someone who did a damn good job.

May 8·1 min read·23 words

Serendipity isn't an accident

Career opportunities don't "just happen" - they come from staying connected, helping others generously, and trusting your instincts when the right path shows up.

Apr 29·1 min read·28 words

Freedom is a Feature: why competition is a good thing

Why freedom and openness in software matter more than ever. How MCP, OpenAI, and Apple’s AI fumble show that trust is built on interoperability.

Apr 22·1 min read·34 words

What to do when the bottom falls out

A realist's guide to flattening out unexpected downturns

Apr 8·1 min read·16 words

Tools I Love - Resend and React Email

The best developer tools make you faster and make you look good. Resend does both - for email, of all things.

Apr 1·1 min read·29 words

The 3 Mistakes New Creators Make

Most new creators stall before they start. Avoid these 3 common mistakes - and learn where to focus instead. Create. Publish. Share.

Mar 25·1 min read·28 words

Steal these ideas to build new products

Pouring through an extensive list of publicly accessible APIs to find new ideas for your next product.

Mar 12·1 min read·24 words

Your MVP is too damn big

Your first product version needs to be smaller than you think. Much smaller. Probably embarrassingly small.

Mar 6·1 min read·22 words

Design's Shakespearean Curse: Good UX Should Never Be Noticed

The best UX design goes unnoticed. Learn how invisible design shapes digital experiences, and why great designers embrace the paradox of their work going unseen.

Feb 25·1 min read·34 words

AI is your intern (not your boss)

Learn how to steer AI tools like Copilot and Cursor, avoid mistakes, and write better tests to ship reliable code.

Feb 18·1 min read·27 words

How I (Think I) Talk to AI

How to talk to AI (the right way). Learn how to give better prompts, refine outputs, and use LLMs effectively-without losing your own voice.

Feb 11·1 min read·31 words

How Clever Engineers Stay Ahead of the Curve

Smart engineers always seem to know what's coming next. They do this by staying attuned to various signals from diverse sources.

Feb 3·1 min read·29 words

My 2025 Developer Tech Stack

A list of the tools and tech I use as a professional product engineer in 2025.

Jan 29·1 min read·21 words

Focus Mode for the Defiant

How free will fuels creativity, and how to stay on task with purpose.

Jan 21·1 min read·18 words

Superfounder Superpowers: Sending Introductions

A guide to help you send introductions to your network.

Jan 14·1 min read·14 words

The Great Inbox Reset

A guide to help you reset your inbox, get a free productivity boost, and do better work.

Jan 7·1 min read·21 words

Themes Beat Resolutions Every Time

Reflection fuels growth. The coming year is your chance to make meaningful changes to your work, life, and relationships.

Dec 31·1 min read·24 words

CSS Tips - text-wrap:balance will make your sites feel better

Improve readability with text-wrap: balance. Learn how this simple CSS property creates visually balanced text for better user experience and design polish.

Dec 23·1 min read·32 words

Content creation workflow: my writing process

Learn how I write and publish content on my Next.js site using Markdown and MDX, and a custom content creation workflow.

Dec 22·1 min read·27 words

Get lost in your work: the magic of flow state

Flow state is a mental space where deep focus and creativity come together, allowing you to work more effectively and productively.

Dec 17·1 min read·31 words

From 21 to 1000 - Lessons in Growth

What I learned from growing Tiny Improvements to 1000 readers

Dec 3·1 min read·18 words

Migrate from next-sitemap to the Next.js App Directory's sitemap

This post walks through the process of migrating from the next-sitemap library to the Next.js App Directory's sitemap.

Nov 23·1 min read·27 words

First Principles: Your Framework for Clarity

How the most productive people use fundamental truths to navigate complexity and stay focused

Nov 19·1 min read·20 words

Mad? Use It to Start Something Big

Sometimes, being mad is the best way to start something new.

Nov 14·1 min read·18 words

Dunbar's number: focusing on your core supporters for network effect growth

Focus on building strong connections with a core group of 50 advocates to fuel sustainable, network-driven growth.

Nov 5·1 min read·28 words

Get out and F*cking Vote

Undecided voters be like: I don't know if I want pizza or smallpox for dinner...

Oct 30·1 min read·20 words

First principles for UX design

Using first principles in UX will make your product more intuitive and more enjoyable for your customers, while making your job easier.

Oct 15·1 min read·27 words

Don't just listen. Interpret feedback wisely.

User feedback is your product's compass. Listen intently, act wisely, and stay true to your vision to navigate towards success.

Oct 8·1 min read·26 words

Nobody Wants a Big Reveal: Why Keeping Secrets Hurts Your Work

Avoid the temptation of the dramatic reveal. Here's why openness and transparency are your real competitive advantages in product development.

Oct 1·1 min read·31 words

The results of my PostHog AB Test are in!

I dive into the data from my PostHog AB Test and show you how to interpret the results.

Sep 30·1 min read·27 words

How Contrast Elevates Perception

Why a seamless experience can make your work feel superior - even if it's not.

Sep 17·1 min read·19 words

Stay Sane: Mental Health Strategies for Startups

Burnout is your team's worst enemy. Here's how to prevent it.

Sep 4·1 min read·18 words

How I found a missing change on my next.js site with PostHog

I tackle a significant drop in my newsletter subscribers. Join me as I dive into the data using PostHog, identify and fix critical errors, and ultimately switch from ConvertKit to Resend.

Sep 2·1 min read·43 words

Inter and the Power of Fonts: Why Typefaces Matter More Than You Think

Open up the potential of your designs with a deeper understanding of what variable fonts like Inter can do.

Aug 27·1 min read·32 words

How you do one thing is how you do everything

How you do one thing is how you do everything. This is a phrase that has been around for a long time, but what does it really mean? In this article, we will explore the meaning of this phrase and how …

Aug 20·1 min read·58 words

Unlocking A/B Testing with PostHog: Improving Newsletter Signups

Optimizing signups by testing, trusting statistics, and fine-tuning UX using data from PostHog

Aug 19·1 min read·21 words

Unlocking A/B Testing with PostHog: Improving Newsletter Signups

Optimizing signups by testing, trusting statistics, and fine-tuning UX using data from PostHog

Aug 19·1 min read·21 words

How to source and use expert knowledge for your work

One of the most effective ways to grow as a developer is by tapping into the vast pool of knowledge available in the developer community.

Aug 14·1 min read·35 words

Fixing the sign-up problem on my site using PostHog Product analytics

In part two of my product analytics journey, I tackle a subscriber drop, dive into PostHog data, fix key errors, and switch from ConvertKit to the developer-friendly Resend.

Aug 13·1 min read·39 words

Debug tips from a lifetime newbie

Debugging problems with code (especially production code) is something that is rarely taught in university classes or code schools. Here are some tips that I've come across from watching smarter peopl…

Aug 6·1 min read·41 words

Product Analytics for engineers: Debugging a conversion problem on my next.js site

This video dives into the process I used to diagnose and debug a conversion problem on my personal website using Posthog, a powerful product analytics tool.

Aug 5·1 min read·38 words

You're 8 episodes away from being in the top 20%

A shift in perspective can help you stay motivated on your journey to the top. Set achievable goals and measure your progress to keep moving forward.

Jul 31·1 min read·36 words

Your tastes will always outpace your skill, and what to do about it

Powerful advice gleaned from a quote by Ira Glass - your taste will always outpace your creative abilities.

Jul 28·1 min read·31 words

Seed your Supabase database with this simple pattern

Learn how to seed your Supabase database with this simple pattern.

Jul 23·1 min read·19 words

SEO for Devs: Own your work with canonical tags

Canonical tags are a powerful tool to help search engines understand which version of a page is the original one. This can help you avoid duplicate content issues and ensure that your content gets the…

Jul 12·1 min read·47 words

Struggling with TypeScript: why not?

One of your biggest skills as a person-on-the-internet is your ability to research and learn new things.

Jul 9·1 min read·22 words

Open Sourcing my Design System

I'm open sourcing the Figma file I use to design and create images for my personal site.

Jun 25·1 min read·22 words

Impostor Syndrome: The monster in your head

Impostor syndrome is a psychological pattern in which an individual doubts their skills, talents, or accomplishments and has a persistent internalized fear of being exposed as a fraud.

Jun 18·1 min read·35 words

Statistically, nobody has used your app

People spend most of their time on sites and apps other than yours. This means that users prefer your site to work the same way as all the other sites they already know.

Jun 11·1 min read·39 words

The Aesthetic-Usability Effect

When building something new, what's more important: that it works, or that it looks good? The Aesthetic-Usability Effect says that users perceive more aesthetically pleasing designs as easier to use t…

Jun 4·1 min read·38 words

Three things school taught me (and Three things it didn't)

Too often I see chatter online about how studying computer science in school is the only way to have a successful career at a startup or a big company. That definitely isn't the case.

May 27·1 min read·44 words

Shrimps is Bugs: Red Lobster ate itself to death

Red Lobster's bankruptcy and the importance of understanding your product's pricing and business model, especially for founders and indiehackers building Saas products.

May 21·1 min read·31 words

The Endowment Effect: why useful trials make for sticky products

The endowment effect is a psychological phenomenon where people value things more highly simply because they own them. How can you use this to make your product stickier?

May 15·1 min read·38 words

Beyond the walled garden: what Spotify and Substack get wrong

It's natural for big companies to make mistakes - but when they do, it's a great opportunity for smaller companies to build something better.

Apr 30·1 min read·34 words

Add Structured Data to your Next.js site with JSON-LD for better SEO

Structured Data can be added to your site tell Google and other search engines what type of content is on each page using a metadata format called JSON-LD.

Apr 25·1 min read·40 words

Simple Habits for a Happier Team

Small changes and management techniques can transform your team's dynamics and boost morale. Explore practices like expressing gratitude, weekly reflections, and eliminating negative behaviors to fost…

Apr 23·1 min read·36 words

Designing for hospitality

"Unreasonable Hospitality" by Will Guidara outlines how to making customers feel exceptionally special. Let's bring these hospitality principles to tech, by creating memorable experiences, and using h…

Apr 9·1 min read·44 words

Keep your tools sharp

The tools we use to get our work done are incredibly important, and taking the time to tune them to work just right can make a huge difference in our productivity and happiness.

Apr 2·1 min read·37 words

Why new frameworks make better developers

A look at the cognitive science behind the Hierarchy of Competence, and how dabbling with new frameworks and tools can make you a better developer.

Mar 26·1 min read·31 words

Rebuilding an open source content-rich site with Astro, TypeScript, and React

A YouTube live coding stream, learning to build content-driven sites with the Astro Web Framework.

Mar 23·1 min read·26 words

Take my money! Some of my favorite tools... and why I pay for them

I'm a huge fan of products that use their a free tier to prove their value, and then convert me to a paying customer. Here are a few tools I pay for, and why I think they're worth it.

Mar 19·1 min read·53 words

3 Tiny tips for better SEO

I hear from a lot of devs that they don't know where to start with SEO. Here are 3 tiny tips about to get you started.

Mar 12·1 min read·32 words

The first year of being a technical startup cofounder

Reflecting on my first year as CTO of Craftwork, and the many things I've learned along the way.

Mar 5·1 min read·27 words

I hate Tailwind CSS. Here's why I use it.

Tailwind CSS is a utility-first CSS framework that I've come to love. Here's why I use it and why I think you should too.

Feb 27·1 min read·33 words

Gestalt: Design principles every developer should know

Ever felt that you've seen a design that just makes sense to you, but you couldn't quite put your finger on why? There's rules for that. Let's talk about Gestalt

Feb 13·1 min read·37 words

Using Satori and Next.js to generate dynamic images

A YouTube live coding stream where we explore how we use a variety of dynamic images with Next.js using Satori.

Jan 27·1 min read·28 words

Build, measure, listen, rebuild

Building better products involves skills you won't learn in computer science school, or at a boot camp. Find success through testing, learning from real-world feedback, and adapting.

Jan 22·1 min read·31 words

Configuring Resend Broadcasts for newsletters on my Next.js website

A coding livestream where integrate Resend's new Broadcasts feature into my next.js site to use for sending newsletters.

Jan 20·1 min read·27 words

Why your favorite apps and creators all pivot in January

The new year is a time for change. But why do so many apps and creators pivot in January? We explore the psychology behind the new year's pivot.

Jan 16·1 min read·38 words

Fitts' Law and the Beauty of Big Goals

Fitts' Law is a fundamental principle of UX design and usability. It states that the time required to move to a target is a function of the distance to the target and the size of the target. The furth…

Jan 9·1 min read·72 words

The product design spectrum: crowdsourcing, user research, and the myopic approach

In product design, there's a critical difference between crowdsourcing ideas and feedback, and user research.

Dec 5·1 min read·26 words

How to set up self-healing URLs in Next.js for better SEO

Set up self-healing URLs with the App Router in Next.js for better SEO, accessibility, and usability

Dec 2·1 min read·27 words

Learning is an infinite game

As a founder, you're going to need to learn new skills quickly and efficiently. Keeping your skill for learning sharp is a critical skill, and should can be practiced like any other skill.

Nov 28·1 min read·38 words

3 Ways to use Annual Pricing to your advantage

Annual pricing is a great way to increase your revenue and decrease your churn. Here are 3 ways to use annual pricing to your advantage.

Nov 14·1 min read·34 words

The Decoy Effect: More options for an easier choice

The Decoy Effect is a cognitive bias that causes people to have a strong preference between two options, when presented with a third option that is inferior to one of the original options.

Nov 7·1 min read·42 words

There's no right way to do it

Building products comes with a sisyphean paradox: The blessing is that there are so many ways to do it. The curse is that there are so many ways to do it.

Oct 31·1 min read·38 words

Acquired: Costco podcast summaries, generated using a GPT/LLM tool

I built a tool for summarizing podcasts Using Open AI's GPT and transcription APIs. This is a sample of its output for an episode of the Acquired podcast about Costco's history and business.

Oct 17·1 min read·42 words

Acquired: Costco podcast summaries, generated using a GPT/LLM tool

I built a tool for summarizing podcasts Using Open AI's GPT and transcription APIs. This is a sample of its output for an episode of the Acquired podcast about Costco's history and business.

Oct 17·1 min read·42 words

Chase your interests to build something useful

Explore the power of hyperfixation on the internet, from tech enthusiasts diving deep into topics to engineers creating innovative solutions. Discover how curiosity can lead to expertise and groundbre…

Oct 17·1 min read·37 words

Your resume sucks. Here's how to fix it.

A guide to writing a resume that doesn't suck, from a hiring manager's perspective.

Oct 4·1 min read·22 words

Do this with Your Product Waitlist: A Guide for Indiehackers and Startup Founders

Learn strategies to leverage your product waitlist for sustainable growth. Ideal for indiehackers and startup founders, this guide offers actionable tips to convert initial interest into paying custom…

Sep 18·1 min read·41 words

Breaking the cycle: Data-driven product descisions

Learn how to escape common product development pitfalls using data-driven decisions. Read how Craftwork used analytics to optimize their user experience.

Sep 4·1 min read·27 words

Reverse DevRel: The core engineering skill you've been missing

DevRel is a core engineering skill that is often overlooked. By turning the DevRel model on its head, we can use it to build better products and better teammates.

Aug 29·1 min read·38 words

Continuous self improvement and the morning ritual

Reflecting on my morning ritual, journaling for clarity, and podcasts for your morning walk

Aug 15·1 min read·21 words

My startup got into Y Combinator

Well, our startup did - Craftwork is a tech-connected home painting company that is making it easier for homeowners to get their homes painted.

Aug 1·1 min read·30 words

Two truths and a lie: what Meta got right with the Threads launch

Meta's new app, Threads, is a Twitter clone that launched last week. It's not perfect, but it's a great example of a product launch that went extremely well.

Jul 11·1 min read·41 words

Maximize user retention: the cognitive science approach...

Understand how multitasking affects your customers' memory, and improve your product design and engagement with cognitive psychology and the Zeigarnik effect.

Jul 4·1 min read·28 words

Takeaways from VidCon's creator track

Last week, I went to VidCon in Anaheim, California. It was my first time as a creator at the event. Here are my three takeaways from the conference.

Jun 27·1 min read·33 words

Intellectual humility: how to be wrong productively

How to use being wrong to improve UX and product design. Learn how to embrace mistakes and create better products for your users.

Jun 13·1 min read·30 words

Cognitive load, UX, and why you should care

Cognitive load is a concept that is important to understand that is often overlooked, and has a huge impact on both UX and the lived experience of building your product.

Jun 6·1 min read·38 words

Reddit as a tool for learning

If you haven't been using reddit as a tool for learning, you are truly missing out. It's time to give it a try.

May 23·1 min read·29 words

Your portfolio is a timeline of your growth

At some point in your life, you will look back on the work you did when you were just getting started with a new skill, and see everything you did wrong. Let's talk about how to channel that feeling f…

May 16·1 min read·49 words

We hurled a people into space by building a pool: the case for simplification

Everyone has their moonshot: something that seems impossibly difficult. We can learn a lot from the people who have landed their own moonshots.

May 9·1 min read·37 words

Tiny Improvements for big changes

Discover how tiny habits like journaling, language learning, & writing helped me stay grounded during the pandemic & achieve personal growth.

Apr 25·1 min read·26 words

You are far more influential than you think

You're already marketing yourself every moment. You just need to be aware of it and do it intentionally.

Apr 18·1 min read·26 words

Add custom fonts to Next.js sites with Tailwind using next/font

Learn how to add custom fonts to your Next.js app using next/font and Tailwind CSS. Improve user experience without sacrificing performance.

Apr 17·1 min read·31 words

The first 90 days as a technical cofounder - building a startup in 2023

I'm building a new company for the first time since 2016. A lot has changed since then. Here's what feels different this time around.

Apr 6·1 min read·38 words

Building in public: 400 subscriber milestone report for my newsletter

Tiny Improvements has seen 350% growth in the last 6 months. This is my reflection on that growth, and tips for anyone interested in writing a newsletter.

Apr 6·1 min read·37 words

Building in public: 400 subscriber milestone report for my newsletter

Tiny Improvements has seen 350% growth in the last 6 months. This is my reflection on that growth, and tips for anyone interested in writing a newsletter.

Apr 6·1 min read·37 words

Wabi-Sabi - embracing imperfection for tech teams

The products we build are naturally imperfect. We can learn from the flaws and imperfections in our code to create better, more resilient products while nurturing team and personal growth.

Mar 28·1 min read·37 words

An idiot's guide to using ChatGPT to make yourself smarter

ChatGPT is amazing, and quickly finding its way into mainstream use - regardless of how tech-savvy the end user is. This is how I use ChatGPT to learn.

Mar 21·1 min read·38 words

Why Liquid Death's branding is murderously effective

Discover the science behind naming and branding, and how the Bouba/Kiki effect can help you create a brand identity that resonates with your audience.

Mar 7·1 min read·31 words

The productivity tool I use every day to multiply my output

I've been using networked note taking to organize my thoughts and ideas for years. Here's how it's helped me become more productive and efficient.

Feb 28·1 min read·35 words

The math behind why cafes should have round tables

Though we don't often think of it this way, the objects and buildings around us are the result of a series of design decisions.

Feb 21·1 min read·33 words

Steps I take to fix stubborn TypeScript errors in VS Code

Sometimes fixing a TypeScript or eslint error in VS Code can feel impossible. Here's what I do when I have exhausted all my resources.

Feb 15·1 min read·35 words

The finicky nature of color in product design

Choosing colors for your product can be a difficult task. There are cultural, historical, contextual, and even physiological factors that can influence how we perceive color.

Feb 14·1 min read·34 words

Refactoring TypeScript React components in VS Code

Extracting types from a JavaScript object is a common task in TypeScript. This post shows how to do it with VS Code.

Feb 3·1 min read·29 words

Perception and unexpected tricks of the mind

Explore the fascinating world of perception and cognition in the Tiny Improvements newsletter. Uncover the unexpected tricks of our minds and learn how to make tiny improvements in our cognitive abili…

Jan 31·1 min read·38 words

Learn from me: a Dunning-Kruger expert

Drawing on the Dunning-Kruger Effect to propel tech progress is like using a slingshot to travel into space: Leaving our comfort zone to learn from experts gives us the momentum to break through bound…

Jan 24·1 min read·43 words

These are the books that shaped my career

A sampling of books that have had a fundamental impact on my career as a designer, developer and startup founder.

Jan 17·1 min read·28 words

Tools for building a new company

I spent the last week spinning up a new company for the first time since 2017. Here are the tools I used.

Jan 10·1 min read·28 words

The case for continued learning, and getting side projects out the door

The end of 2022 brought about a ton of change for me, and a major shift in my career. I'm excited to talk a little about what's next, and to show off a side project I'm readying for release soon.

Jan 3·1 min read·52 words

Building your brand in the developer community

Learn how to build a personal brand as a developer or product builder to differentiate yourself in the tech industry and gain recognition for your work. Authenticity and consistency are key to attract…

Dec 13·1 min read·51 words

Sync your About page and your GitHub bio on your Next.js site

Learn how to sync your About page and your personal GitHub README bio on your Next.js site, as a step towards owning your content on social media.

Dec 9·1 min read·39 words

Customer experience, quality, and the hype cycle

The Gartner Hype Cycle, and its relationship with customer experience for new products and companies.

Dec 6·1 min read·22 words

Twitter and the Perils of Obedience

Reflections on the current state of Twitter, and its similarity to the shocking results of a 1961 experiment by Yale Researcher Stanley Milgram.

Nov 28·1 min read·29 words

Put a fork in it - how to know when your work is ready to publish

Deciding when your work is "done" can be a crippling decision for creators. Let's talk about that.

Nov 22·1 min read·33 words

Get started: The trick to publishing online

The biggest benefit about telling people online about what you're learning is the network effect.

Nov 15·1 min read·22 words

What it's like to get laid off and go viral on the same day

Last week may have been the most complicated week of my life. I got laid off from Stripe, and went viral on Twitter. Here's what happened.

Nov 10·1 min read·40 words

What I learned from using AI in my work

Machine learning and AI tools have been making waves in the news lately. Let's take a look at some that you might want to consider using

Oct 25·1 min read·35 words

Tips for managing burnout and stress

We all experience stress and burnout at some point in our lives. Here are the tools I've found to stay ahead of burnout in my job and my relationships.

Oct 18·1 min read·35 words

5 Design rules everyone should know

For most of my life, I would not have described myself as a creative person. As it works out, nobody is inherently creative. It's all about following rules.

Oct 11·1 min read·34 words

Remember these apps?

This Dispatch of Tiny Improvements dives into some of †he apps we've forgotten, no code tools, and time off.

Oct 4·1 min read·22 words

Devs: It's okay to use no-code tools

Embrace no-code tools to save time, boost efficiency, and complement your coding skills. No-code is the future - don't be left behind!

Sep 27·1 min read·29 words

Growth hack: Publish newsletters to your Next.js site with ConvertKit API

Use previous issues of your newsletter to attract new subscribers, using the ConvertKit API with your Next.js site.

Sep 23·1 min read·29 words

The way we talk about our things

This we we talk about intentional use of language and how it can affect subconscious behavior.

Sep 20·1 min read·23 words

Publish your newsletter to your Remix site with the ConvertKit API

Learn how to use the ConvertKit API to publish your newsletter to your Remix site.

Sep 19·1 min read·26 words

How Stripe Uses Friction Logs to Improve their Products

A guide to friction logging, a practice that can be used by engineering teams building products to track and improve upon issues that users experience while using a product.

Sep 16·1 min read·38 words

What I've learned from working in public

I'm a big fan of working in public. It's a great way to get feedback and improve your work... you just have to be ready to deal with The Internet™️

Sep 12·1 min read·37 words

The Orton Effect - dreamy photo effect in CSS and React

Implement the Orton Effect in CSS and React. The Orton Effect creates a surreal, dreamy image effect, named after photographer Michael Orton.

Sep 9·1 min read·33 words

Balance for remote workers

Show up better on video calls, make your writing better by writing more, friction logging, and conferences are back!

Sep 6·1 min read·23 words

The third place - the secret to a happy life for remote workers

The Third Place is thought of as a space different from home (the first place) and work (the second place), where people can socialize and find community.

Aug 29·1 min read·40 words

SEO tools I used to grow my sites to 20k+ visitors/month

I use these tools on every project to help track source code, monitor traffic on my site, and optimize content for better Search Engine Optimization (SEO).

Aug 22·1 min read·37 words

The correct semantic HTML for adding subtitles to h1 tags

This is the right format to use if you want to add a subtitle below an h1 tag on your html pages. Semantic HTML makes your site more accessible and better for SEO, since it is easier for search engine…

Jul 5·1 min read·52 words

How to add Fathom Analytics to your Remix.run app

Building a website using the Remix.run webb app framework? This tutorial will teach you how to add privacy-first analytics to your Remix site with Fathom.

Jun 5·1 min read·34 words

How to add Fathom Analytics to your Remix.run app

Building a website using the Remix.run webb app framework? This tutorial will teach you how to add privacy-first analytics to your Remix site with Fathom.

Jun 5·1 min read·34 words

I'm building a tiny product

Let's call it an experiment. I'm building a tiny product to see if I can make something people will buy.

May 22·1 min read·25 words

I'm building a tiny product

Let's call it an experiment. I'm building a tiny product to see if I can make something people will buy.

May 22·1 min read·25 words

How do you choose the right CRM for your product?

You're building relationships with all of your customers, whether you know it or not. Setting up the right CRM for your product can help make those relationships stronger.

May 10·1 min read·38 words

What it's like to migrate a high-traffic website from Gatsby to Next.js

I migrated apisyouwonthate.com, a site with 20k+ monthly visits, from Gatsby to Next.js at the end of 2021. Let's talk about what I learned from that experience.

Mar 2·1 min read·39 words

Next.js with MDX tips: Provide shortcuts to article headings

This tutorial will teach you how to automatically add links to heading tags in your mdx posts on your Next.js site with a plugin called rehype-slug. This should work for most nextJS sites that use MDX…

Jan 2·1 min read·57 words

No Floating Promises: an eslint rule to prevent async code errors

The article discusses the ESLint rule no-floating-promises which disallows promises without await. The rule is designed to prevent developers from accidentally forgetting to await promises, which can …

Dec 11·1 min read·42 words

How to run dependabot locally on your projects

Since its release, teams around the world have been using dependabot to automate the process of keeping your project's dependencies up to date. In this article, I'll show you how you can run dependabo…

Dec 10·1 min read·48 words

Hey, influencers: be careful with ChatGPT

Powerful AI tools like ChatGPT make it super easy to generate inaccurate and dangerous and inaccurate content. Relying heavily on AI to write can be messy.

Nov 29·1 min read·32 words

Massively speed up VS Code loading time on Apple Silicon Macs in one step

If you're running an Apple Silicon Mac (with an M1, M1 Pro, or M1 Max chip), you may be able to speed up VS Code massively with a quick update.

Nov 24·1 min read·44 words

Learn to build web3 apps on the blockchain with Buildspace

Buildspace offers free, online, cohort-based courses on building web3 blockchain apps. If you're interested in dipping your toe into the world of Ethereum apps, the blockchain, or NFTs - it's a great …

Nov 22·1 min read·44 words

Some things I learned from live coding on Twitch

For years I did a weekly coding livestream of my React and Python work on Twitch every week, and I'm getting back into it again. This is what sticks out to me as the most valuable learnings from those…

Nov 18·1 min read·49 words

JavaScript Tips: Nullish Coalescing (??)

Let's take a look at the Nullish Coalescing operator (??) in JavaScript, which returns the right operand if the left is null or undefined.

Nov 15·1 min read·29 words

JavaScript Tips: Using Array.filter(Boolean)

If you come across array.filter(Boolean) in JavaScript code, never fear! It's a handy bit of functional programming that cleans up arrays with null and undefined values in them.

Nov 12·1 min read·32 words

How to make VS Code load faster with a little bit of housekeeping

Have you noticed that your favorite IDE has been slow to load lately? Try removing these before losing hope.

Nov 7·1 min read·32 words

Don't center align paragraph text

Stop using centered text. It's bad for usability, accessibility, and eye scanning -- and nobody anywhere wants to read like that.

Apr 10·1 min read·26 words

Has it been four years already?

MLK, presidential inauguration, time illusions, new features in Gatsby, and designing for musicians.

Jan 19·1 min read·19 words

Sip your coffee quietly, act kindly

Watching history happen before our eyes, the economic study of bitcoin, accessibility, and drinking coffee in a quiet room.

Jan 12·1 min read·25 words

The Enthusiast's Hidden Superpower

Optimism and the new year, why being an enthusiast can help you build a better product, espresso drinking and daily writing.

Jan 3·1 min read·25 words

On seasonal change, open source, and carbon offsets

Cognitive science and the framing effect, Open Source software and Working in Public, language learning, creating online courses, and reforestation.

Dec 8·1 min read·28 words

Book notes: Working In Public

My review of Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal

Nov 30·1 min read·22 words

How to reset your Open Graph embed on LinkedIn, Twitter, and Facebook

If you're dealing with Open Graph metadata for your site, and you can't figure out how to get your OG content to update after you make changes, this is your guide.

Sep 17·1 min read·43 words

gitignore.io is great

Put simply, gitignore.io is a tool that is so profoundly helpful that I've forgotten what life was like without it.

Aug 5·1 min read·23 words

MDX - I should have done this sooner

I added support for mdx to my site, and it's made life much bettter.

Jul 22·1 min read·22 words

I swear I wrote that down somewhere 🤦‍♂️

Training your brain with networked note-taking, privacy-first analytics for websites, expensive asparagus, speed reading and retention.

May 11·1 min read·24 words

Why I switched to Fathom for web analytics

I fully switched my personal site from Google Analytics to Fathom - something that I had been considering for a while, and finally decided to go all in on.

May 3·1 min read·37 words

Help your users when your web app crashes

This post came from my work on Surviving Other People's APIs. I've been working on a chapter on Async - the content below came from that writing, but doesn't quite make sense in the context of the bo…

Apr 21·1 min read·69 words

On normalcy, daily routines, and the pandemic

On my walk this morning, I found myself wondering what it's going to be like when things go back to normal.

Apr 21·1 min read·28 words

Are you suddenly a remote worker? Let's figure it out together.

My guess is that if you’re reading this, you’re a newly remote worker, due to the rapid and terrifying expansion of the COVID19 Pandemic. I’m not here share medical advice; if that’s what you’re after…

Apr 4·1 min read·52 words

Are you suddenly a remote worker? Let's figure it out together.

My guess is that if you’re reading this, you’re a newly remote worker, due to the rapid and terrifying expansion of the COVID19 Pandemic. I’m not here share medical advice; if that’s what you’re after…

Apr 4·1 min read·52 words

Introducing Pistola - Building a passion project with radical transparency

If you follow me across the various other social networks I use, you'll likely stumble across my passion for cycling. For the past 8 or so years, road cycling has been my primary form of exercise. I l…

Feb 21·1 min read·84 words

Do you have your own Gatsby site? Let's brainstorm a dev.to cross-poster

So, like all good things, the idea for this post comes from a tweet...

Jun 23·1 min read·26 words

I have to tell you about Dependabot 🤖

Dependabot is an automation service that will automatically create PRs to keep your projects' dependencies up to date, and it is really powerful.

May 31·1 min read·31 words

CSS talk: you should really know about the ch unit

This is an article about CSS and usability. The ch unit in CSS was a revelation for me, and I promise that if you don't know about it already, you're gonna love it.

May 17·1 min read·43 words

CSS talk: you should really know about the ch unit

This is an article about CSS and usability. The ch unit in CSS was a revelation for me, and I promise that if you don't know about it already, you're gonna love it.

May 17·1 min read·43 words

Promise.allSettled() Pt.2 - it's partly settled!

This is a follow-up to my first post on the upcoming Promise.allSettled() function, coming soon to a node application near you.

Apr 26·1 min read·27 words

Picking apart JavaScript import syntax

Part 2 in a series of posts on destructuring syntax for JavaScript and Node.

Apr 17·1 min read·19 words

Solve* all your problems with Promise.allSettled()

Promise.allSettled() is a new API coming to the JavaScript / ES6 standard which can help you more efficiently build node applications that make simultaneous asynchronous API calls

Apr 12·1 min read·33 words

I reclaimed 10GB of disk space from node_modules

If you're not careful, your node projects can start to fill all the spare disk space on your computer. This one weird trick (lol) can help avoid that.

Apr 2·1 min read·36 words

Egg sticker update: We raised $176 NZD!

Last week I posted about some stickers I designed and had put up for sale to benefit victims of the shooting in Christchurch, NZ. They sold out far, far more quickly than I ever would have guessed.

Mar 28·1 min read·44 words

Understanding JavaScript Destructuring Syntax

Destructuring syntax in es6 (or es2015, etc) JavaScript is a wonderfully useful bit of the language. It allows you to extract values from an Object and assign them to a new variable in one statement …

Mar 26·1 min read·47 words

Quick tip: Here's how to uninstall Postgres from your Mac

Uninstalling Postgres database software from a computer running MacOS isn't super straightforward - this is what I found helpful.

Mar 19·1 min read·29 words

Egg them all: a fundraiser for New Zealand

Get yourself some of these eggtastic stickers - gun violence is intolerable, and we need sensible gun reform. 100% of proceeds go to charity!

Mar 18·1 min read·32 words

5 Chrome extensions I use for productivity

An efficient workday is helped tremendously by having a handful of productivity boosters in your quiver. I use these extensions for Chrome to make my day a little nicer.

Mar 13·1 min read·36 words

Stop speaking into the top of your Blue Yeti Microphone

No, really, it doesn't work that way. It will sound loads better if you stop talking into the top of your Blue Yeti mic. It's an easy mistake to make.

Feb 28·1 min read·40 words

Embracing Prettier

Prettier.js is a fantastic way to systemize and automate your project's code style.

Feb 25·1 min read·15 words

It was time - starting a writing habit to share my expertise

I've got some strong opinions on things - I hope that's okay. Thankfully, this is not just another 'hello world' post

Feb 24·1 min read·33 words