Projects

Learn about the side projects I have built and launched.

October 8, 2026

Giving AI Agents a Fax Machine

I added an agent interface to FaxOnline. An AI agent can now prepare a PDF fax, hand you a checkout link, and check whether it was delivered. Five years ago I wrote about building an online fax...

Read →

September 25, 2026

WordPressSharp 2.0: A .NET 10 Client for the WordPress REST API

I started WordPressSharp in 2014 to make it easier for C# applications to talk to WordPress. The library used XML-RPC, targeted .NET Framework 4.5, and did the job it was built for. I even wrote an...

Read →

February 20, 2026

How and why I built openclawpm

I kept seeing impressive agent demos. Then I tried to build one I could actually use, with its own context and tools, and it fell apart when I switched machines. The prompt was only part of what I...

Read →

February 4, 2026

Shipping pmprompt Skills as a Claude Code Plugin

I've been packaging the PM workflows in PMPrompt so I can reuse them across projects. Copying a skills folder works, but keeping those copies in sync gets annoying. This week I shipped the pmprompt...

Read →

January 29, 2026

Building PM Practice: Extracting Real Product Decisions from Lenny's Podcast Transcripts

Over Christmas break, I started working on a way for product managers to practice actual PM work. Programmers have LeetCode. Designers can show a portfolio. PMs spend a lot of time talking about...

Read →

September 26, 2025

Building Snooji

I wanted to build a browser game with the same basic idea as Snood. Launch something at a board, match a group, try to clear it before the board gets you. I used emojis for the pieces and called it...

Read →

September 4, 2025

JSONL Viewer Tool

I kept copying individual lines out of JSONL files, pasting them into a JSON formatter, then going back to find the next record. The data was there. Reading it was the annoying part. So I built a...

Read →

April 3, 2025

Building a Laravel Cloud Pricing Calculator with Livewire

I got early access to Laravel Cloud and deployed JSONL Tools there. That part was easy enough. What I couldn't quite work out was what it would cost when Cloud launched. The Laravel team put out a...

Read →

February 24, 2025

Building a Website Spell Checker with Laravel and GPT-4

I launched Site Spell Checker to check the content that's already on a website. Give it a URL, scan the pages, and get a report of spelling errors, grammar issues, and style suggestions. A browser...

Read →

February 3, 2025

Building a Modern Site Search Engine with Laravel, Elasticsearch, and AI

I built SiteSearch to provide search across multiple websites. That means getting each site's content into an index, keeping it up to date, and making sure a query searches the right site's pages....

Read →

January 28, 2025

Building a JSON to JSONL Converter

While building data processing pipelines at work, I kept running into the same little task: convert a JSON file to JSONL. Writing a script was easy enough. I was tired of writing the same one in...

Read →

November 25, 2024

Building PMPrompt - AI-Powered Product Management Tools

As a product manager, I kept writing versions of the same documents. PRDs. User stories. Release notes. The context changes, but a lot of the work starts from a familiar shape. I wanted to make that...

Read →

October 27, 2024

Building SurveySnaps: Location-Based QR Code Surveys

I launched SurveySnaps to collect feedback tied to a location. Put a QR code where someone has the experience, let them scan it, and give them a short survey to answer. A restaurant bathroom is a...

Read →

October 7, 2024

Building JSONLTools with Laravel and Livewire

I built JSONL Tools to handle a few chores that come up when working with JSON Lines data. Convert a CSV. Check whether each line is valid JSON. Generate some sample records. None of those needs to...

Read →

November 8, 2022

Building an app for virtual phone numbers

A couple years ago we set out to build a service to send an online fax half jokingly as a way to launch a micro SaaS and play with the Stripe API and the Twilio API. It has since seen a number of...

Read →

February 10, 2021

Building An Online Fax Service

A goal I had in 2020 was to build and launch a micro SaaS product. What is a micro SaaS? Well, it's essentially a software as a service product but smaller in scope. A micro SaaS product is often...

Read →

January 23, 2019

Weekly Agtech Email Newsletter

Today I launched a new project for 2019 - an Agtech focused email newsletter. The goal is to give the audience the best information over the last week. I read a lot, rip out all the PR, add some...

Read →

January 19, 2019

How I Migrated WordPress to a Static Website

My first project of 2019 was to migrate this 10+ year old WordPress website to a static website. For various reasons, the stack I chose is as follows... Static Website Generator: Jigsaw CSS...

Read →

December 15, 2016

Building a Referral System with Laravel

I recently launched a small product for Amazon Affiliates built with Laravel. At the heart of the application is a referral system. Users get bonus credits when they refer another user while getting...

Read →

October 24, 2016

That Time I Tricked Google With Its Own Data

Once upon a time SEO was easy... Exact match keyword domain? Boom. Pages for every keyword? Done. Ridiculous internal link building? Easy. Paid link building? Cheap. Link Pyramids? Get me more shared...

Read →

June 28, 2016

Building Public Slack Communities - Slackvite Launch

I had the urge to build and ship something since I gave Hey Kramer to the world. Something ... useful. Since I was already elbows deep in the Slack API, I decided to build a thing that lets you...

Read →

March 24, 2016

Building A Slack Bot With Node.js And WordPress REST API

Some of my first experiments in the world of building a slack bot was to develop a basic Slash command using the WordPress REST API as a backend. If you or your team are the only users that intend...

Read →

March 11, 2016

Slack Slash Command With WordPress REST API Backend

I've spent the last several weeks building Slack bots and other custom integrations. One of the simplest types of Slack integration to build is the Slash Command - which can be a way for a...

Read →

April 22, 2015

Style Disqus Comments in Twenty Fifteen Theme

I've recently moved several of my content based WordPress sites over to the Twenty Fifteen theme. It's just so clean and neat ... and focuses on content rather than features. Paired with Jetpack you...

Read →

April 21, 2015

Zendesk Helpdesk Widget in WordPress Admin

When managing dozens of WordPress sites for dozens of different users, streamlining the support process using an excellent help desk system quickly becomes a priority. If you are not familiar with...

Read →

April 15, 2015

Add Terms and Conditions to Restrict Content Pro

TL;DR - I wrote a WordPress plugin to add Terms and Conditions to the registration form when using the Restrict Content Pro plugin . I just recently built a WordPress membership site using the...

Read →

February 13, 2013

WordPress Bootstrap Theme

When time permits I've been working on another WordPress starter theme based on Bootstrap, the super awesome CSS and JS framework originally released by Twitter. I use it on everything so it was...

Read →

August 8, 2011

LaunchChimp - Weekend Project

I've designed a ton of landing pages over the last couple years … From landing page templates for WordPress sites to simple launch pages. Almost all of them have been integrated with MailChimp for...

Read →

February 20, 2011

Light Bulb To Launch In A Weekend

Those of you that work with me know I'm obsessed with internet business models. I love the scalability, the science of a conversion, and meticulously tracking funnel metrics. That being said I'm...

Read →

January 26, 2011

hashDSM - Des Moines In Real Time

A couple nights ago we launched one of our fun side projects we dubbed hashDSM (or #dsm). Naturally, we built the site on WordPress but the concept is to monitor commonly used Twitter hashtags in Des...

Read →

Current Projects

I'm always tinkering with new ideas and building interesting things. From AI-powered tools to micro-SaaS products, these are the projects currently keeping me up at night. Each one solves a specific problem I've encountered or explores an emerging technology I'm excited about.

❤️ Tapback

Tapback helps you get real-time micro feedback from users of your website or app. It's a simple tool and API that lets you customize emoji-based feedback forms and easily drop them on a website or app to start gathering valuable feedback.

📝 PMPractice

Practice product management interviews with AI. A tool to help PMs prepare for job interviews with realistic, scenario-based practice sessions and feedback. Read more about this project in my blog post about building PMPractice.

🎯 Snooji

Snooji is a modern web version of the classic Snood puzzle game, built with Laravel 12 and HTML5 Canvas. You launch emojis from a cannon, match three or more, and clear the board before the danger meter fills up. The backend uses Laravel for real-time scoring and level progression, while the frontend runs smooth physics-based gameplay in the browser. Play Snooji or see how it's built.

✍️ Site Spell Checker

It's like grammarly for websites. I built an AI-powered proofreader that crawls websites and checks for spelling, grammar, and style issues and offers helpful suggestsions for improvement.

🤖 PMPrompt

AI for product managers. The goal is simple - help PMs save time and be more effective by leveraging AI in their daily workflow. Read more about this project in my blog post about building PMPrompt or try the AI-Powered PRD Generator. Try the new AI-powered PRD Reviewer.

⚡ Claude product management plugin

A Claude project management plugin that packages product management workflows as reusable agent skills. Instead of copying skills between projects, get namespaced commands like `/pmprompt:prd-writer`, `/pmprompt:jobs-to-be-done`, and `/pmprompt:working-backwards` to generate structured drafts for common PM artifacts. Read more about this project in my blog post about shipping pmprompt skills as a Claude Code plugin.

📊 SurveySnaps

I recently launched SurveySnaps, a platform that makes collecting location-based feedback dead simple using QR codes. The goal is straightforward - help businesses gather real-time feedback from specific locations without the complexity of traditional survey tools. Read more about this project in my blog post about building SurveySnaps.

🏗️ JSONL Tools

I am working on a set of tools to help me work with JSONL. JSONL is a simple format for working with JSON data. I am working on a set of tools to help me work with JSONL data. I will use these tools to help me work with my own data as well as help me build my own APIs. One of the tools I am developing is a JSONL Validator to ensure the integrity and structure of JSONL data. Read more about this project in my blog post about building JSONL Tools.

📠 Fax Online

Yea, I know. But there is a long tail for everything and believe it or not there was an underserved market for people that need to send a fax online. Some people (like me!) just need to send a one time fax.

Read more about this micro Saas project in a blog post about building an online fax service.

🥑 Free URL Indexer

Free URL Indexer is a free tool to help you index your backlinks and get them into Google faster. It's a simple tool that I built to help me with my own SEO efforts and I decided to share it with the world. It's a free tool and I don't even ask for your email address. Just paste in your URL and click the button.

👉 See all projects