Trying to be a real first-time SaaS founder has been interesting over the past two months. Here's what I've learned so far building Vizzly—ship early, use AI as an enabler, embrace cold outreach, and why indie SaaS actually feels possible.
Blog Posts
I spent 4 years at Percy learning what's broken about visual testing. Vizzly is my fix: real screenshots from your tests, team-based pricing, and actual designer-developer collaboration built in
Tornadic is a new community-driven platform for exploring tornado history, radar loops, and storm data—all in one place. Built for weather nerds, storm chasers, and the tornado-curious alike.
When I first used ChatGPT's "work with" feature, I loved how effortlessly it integrated AI into my dev workflow. But it only worked with ChatGPT, and it seemed unlikely OpenAI would support an app like Emacs.
Learn how to test GitHub Actions locally using act, reducing development cycle time from minutes to seconds.
If you’re a Ghost blog user like me, you might have noticed a gap: there’s no built-in way to generate digests of your posts. I was surprised to find this missing feature, especially since regular rou ...
A simple GitHub Action that monitors RSS feeds and sends email notifications when new articles are published.
A costly debugging lesson about case sensitivity differences between macOS and Git that led to deployment failures.
Bronny James’ selection by the Lakers might seem like nepotism, but using the 55th pick, which rarely yields successful players, makes it an okay move. However, his father’s fame brings undue pressure and media scrutiny, impacting Bronny’s early career.
We needed a way to deploy arbitrary branches to different environments via GitHub actions. We use Google App Engine to host our app.
We often hear the story of someone building something quickly that becomes popular, only to be embarrassed by the source code's appearance. More often than not, these are small side projects designed to solve a problem...
DRY (Don’t Repeat Yourself) is often seen as a golden rule. However, adhering too strictly to DRY can lead to premature abstractions that complicate your codebase. Embracing RYE (Repeat Yourself Enough) allows repetition until a clear, beneficial pattern emerges...
When you're working on UI testing, reviewing screenshots as part of a (PR) can be a time-consuming and tedious process By using a test runner like Moonshiner to capture the screenshots and GitHub's built-in rich diff feature for code changes...
As one of the most popular “static site” generators, the React-based Gatsby has been adopted by thousands of teams to create e-commerce websites, developer blogs, portfolios, and more. Gatsby is a robust framework t...
We’re always looking for ways to make it easier for developers to get started with visual testing. That’s why we’re thrilled to release our new GitHub Actions on the heels of the recent general availability release. This...
I recently have been running longer prints that sometimes finish in the middle of the night (or day when I’m not around). Sometimes these prints would finish at 2am and I would hate for the printer to be left on until I w...
We’re excited to introduce our new TestCafe integration! TestCafe, the node.js end-to-end testing tool, provides a quick, free, and open-source way to test your web applications across browsers. As it’s gained popularity...
There’s been a trend I have been seeing around the front end world where folks are switching their test suites to use Jest over something like Karma and Mocha. Usually the main benefit that’s touted is speed 🏎💨 What...
Introducing PercyScript: The easiest way to get started with visual testing We believe that visual tests are the lowest-effort, highest-value tests you can write. Giving your team full confidence in the UI that your...
It’s been a little while since I’ve written a non-technical blog post (or even a post that’s not related to work). They’re much easier to write 😆 My amazing wife bought me a 3D printer for Christmas this year (along...
My JSConf talk about BigTest - a framework that makes UI testing fast, robust, and maintainable by challenging traditional testing assumptions.
Native HTML controls work great up until you need to apply custom styling. It’s pretty difficult to style controls like selects, checkboxes, and radio buttons. That’s why people usually end up ditching the native controls...
Currently, every major Single Page App’s (SPA) router is broken the second you install it (Ember, Angular, React/Preact/Vue.js, etc). Before we go much further, I want to make sure you know I’m not hating on SPAs. The opp...
While Hurricane Harvey rains down on Texas I decided this would be a prefect time to build a contact form for a static HTML page that I need. At first I looked at services like FormKeep to send emails but I felt like it w...