On May 1st, 2025 we announced that our company had been acquired by Sentry. It was fun (sometimes), but building a company is hard and all consuming.
For the first time in years, I actually have a bit of time on my hands and over the last 6 months I’ve used it to do some hardcore vibing. Its made me realize how much I’ve missed building things just for the fun of it.
I wanted to share some of the projects I’ve worked on (sometimes finished) and reflect on vibe coding.
CatchupMay 2025
I’m not a big reader, but I’ve always been a huge Wikipedia fan. So when looking to build my first thing with my newly acquired free time I s…
On May 1st, 2025 we announced that our company had been acquired by Sentry. It was fun (sometimes), but building a company is hard and all consuming.
For the first time in years, I actually have a bit of time on my hands and over the last 6 months I’ve used it to do some hardcore vibing. Its made me realize how much I’ve missed building things just for the fun of it.
I wanted to share some of the projects I’ve worked on (sometimes finished) and reflect on vibe coding.
CatchupMay 2025
I’m not a big reader, but I’ve always been a huge Wikipedia fan. So when looking to build my first thing with my newly acquired free time I started by playing around with Wikipedia APIs. It’s a rich dataset with robust, open endpoints.
With the news & social media being a mess, I wanted to build a simple, less sensationalized way to keep a pulse on what was happening in the world.
The first idea was to try to see which Wikipedia articles had the highest percentage day over day pageview increase, then use AI to give a reason why that person was trending.
This generally worked out, but the challenge was that when any significant event would happen. Many of the top % day over day changes came from the same event so you’d just see a lot of the same pages that were all involved in the same event. Essentially the algorithm wasn’t quite right.
I don’t think this is an unsolvable problem for Catchup, but around this time I also discovered Particle News, which felt like a polished alt-version of Catchup.
The nail in the coffin was when I had the idea: what if you could talk to the Wikipedia pages?
Quick demo of where I left Catchup
Lines of Code
~2k (95% vibe coded)
Time Spent
~50 hours
Stack
Cursor, Claude Code, Supabase, Posthog, Sentry, Alex (disclosure: I invested)
Status
Testflight for friends and family
Dinner PartyMay 2025
Dinner Party is an iOS app that lets you to talk to famous people across time.
Technically, it’s pretty simple: a wrapper around OpenAI with some custom system prompts & passing in each person’s Wikipedia page as context.
It was a fun app to build, but it lacked anything particularly novel and after it’s launch I made no effort to market it or build it out further. On to the next one...
Quick demo of Dinner Party
Lines of Code
~7k (100% vibe coded)
Time Spent
~30 hours
Stack
Claude Code, Supabase, Sentry, Posthog, Xcode
Status
BuffettAIJune 2025
MCP was all the rage and I wanted to try building something with it. For years I’d wanted to experiment with algorithmic trading, but as a tiny retail investor there weren’t really any accessible options. Then I found Alpaca’s MCP and thought it’d be cool to see what AI would do if it had actual agency investing.
BuffettAI had all the essentials for autonomous trading like the ability to place real stock orders or understand an account’s positions and balance, but the interesting piece was how it decided what to trade.
I could give it a general investment idea: “I believe that AI will require a massive amount of computing power. I think that the companies that will be able to provide that power will be the ones that will succeed.”
It would then analyze market conditions, pull real-time news from Yahoo Finance, run fundamental analysis (P/E ratios, ROE, debt metrics), and propose trades based on that thesis and information.
I never put real money in, because I got distracted once again by the next idea, but I really thought it’d be fun to pit different agents to trade against each other.
I also didn’t follow through on that, but luckily others did.
BuffettAI demo
Lines of Code
~5k (100% vibe coded)
Time Spent
~8 hours
Stack
Claude Code, Alpaca
Status
Only worked locally
HN slopJune 2025
AI felt frantic with new models launching every other week. The term “ai slop” was becoming more and more popular.
One day I was reading the front page of HN and thought, what if I could generate Hacker News slop?
HN Slop scrapes the front page and uses Claude to generate a startup idea based on the top 50 current posts. I also added a HN-style comment generator and a leaderboard where users could submit and vote on their own slops, but I built these in just a couple hours after HN Slop had already made the front page (something way more possible now with the speed of vibe coding).
Here’s the top voted HN Slop of all time:
1. SwearySkyscraper: A startup that develops novel and personalized swear words to help people better cope with pain, and integrates these swear words into a liquid damping system to stabilize skyscrapers during earthquakes.
Lines of Code
~5k (100% vibe coded)
Time Spent
~8 hours
Stack
Claude Code, Supabase, Sentry, Posthog, NextJS
ClaudiusJuly 2025
When Claude Code first arrived on the scene I was surprised that it was only available in the terminal, but I figured it was only a matter of time before a native app from Anthropic was released.
Weeks passed and I started using it more and more and it became clear there was a huge opportunity for tools that could be built on top of it. I finally hit the tipping point when I was building an image library that Claude Code could use to generate images for me using the OpenAI API.
I felt like the terminal requirement closed off this new powerful experience from the rest of the non-engineering world. I had a long weekend ahead of me so I decided to build Claudius with an ambitious goal in mind: making agents accessible to everyone.
To me, these were the core features that would be part of an ideal experience:
- No terminal or command-line knowledge required
- Visual feedback and intuitive graphical interface
- Powerful AI orchestration made simple
- Natural language to working software
I sent out a tweet with a screenshot of an early build and it quickly became my most popular tweet ever.
It was very meta to be building an app using the app that I was building. The feedback loop was instant and the features I felt like I needed were adding up too quickly.
Initially I built the app in 100% SwiftUI, but ended up having to migrate the scroll view to AppKit for performance reasons (crazy that SwiftUI still has significant performance issues). Quick tip: add a line to your .md rules to limit files to 400 LOC or less, makes a big difference.
The more I worked on Claudius, the more it became clear quickly that purely being a wrapper around Claude Code or any single model was going to be a dead end. I realized this was probably too big of a task for just one person (especially not working full time on it).
Luckily, Conductor came along and I think they’ve done a great job at tackling a lot of the same problems I originally set out to solve.
Claudius was my biggest project to date and I learned a lot about agents and the Claude Code SDK, I still think this space is very early and you can see that Cursor has had the same realization with their release of Cursor 2.0.
Claudius in action
Lines of Code
~50k (99% vibe coded)
Time Spent
~120 hours
Stack
Claude Code, Claudius, Sentry, Posthog, Xcode, Alex
Rate My PromptAugust 2025
Rate My Prompt came as a direct result from my work on a Claudius feature I called “prompt enhancements”.
I don’t think I’ve seen another term for this (maybe prompt injections, but that seems to have a sinister connotation), it’s just modifier text snippets that you can append to other prompts to make them more powerful. The best example being “Ultrathink”. Still to this day, I see a new one pop up on Twitter every week.
Lots of prompts go viral, but it still seems like there is no quantitative or even really qualitative way to know if they really work, Rate My Prompt was an attempt to solve this.
Users can submit a variety of different prompt types. Claude, OpenAI models, and the community all rate them on a scale of 1-10, and RMP aggregates that into one overall score.
Initially I’d hoped RMP could be a database of prompts that could be used by Claudius so users could easily rate and share directly in the app, but with Claudius on the ropes and not a lot of standalone adoption it’s unclear what happens next for RMP.
Lines of Code
~5k (100% vibe coded)
Time Spent
~24 hours
Stack
Claude Code, Claudius, Sentry, Posthog, NextJS
Status
Live, ~10k lifetime pageviews
Fuck Up My SiteAugust 2025
For my first Sentry Hack Week I wanted to build something a bit ridiculous because that’s what hackweeks are for.
Fuck Up My Site lets users enter any URL and apply “chaos effects”: a torch cursor that burns elements off the page, Comic Sans everywhere, fake cursor trails, pesky flies that buzz around, runaway buttons that flee from your mouse, popup whack-a-mole & a very scary Halloweeen mode.
Make websites fun again
Lines of Code
~7k (100% vibe coded)
Time Spent
~8 hours
Stack
Claude Code, Sentry, Posthog, Puppeteer, NextJS
PromptletOctober 2025
Promptlet is my attempt at building a more streamlined, tool agnostic version of one of the features I felt was most valuable in Claudius: prompt enhancements.
It brings up a command pallette for easy access & has an array of powerful keyboard shortcuts to help streamline your AI workflow. The best part is that it works anywhere: Claude Code, Cursor, Codex, ChatGPT, Gemini, any text input field. This felt important given how quickly the favorite tools switch around nowadays.
If you’re building & distributing macOS apps outside the App Store, you’re probably using Sparkle for updates & feel the pain. This article by Peter Steinberger is a helpful overview of the process with some great tips and scripts: Sparkle and Tears.
I’m not an active Raycast user, but it seems like they’ve done a great job embracing AI and it’s possible they’re the long-term answer here.
Promptlet in action
Lines of Code
~13k (100% vibe coded)
Time Spent
~24 hours
Stack
Claude Code, Sparkle, PostHog, Sentry, Xcode
Status
Live, ~100 app opens
Reflecting on 6 months hardcore vibing
I have AiDHD
It has never been easier to build an MVP and in turn, it has never been harder to keep focus. When new features always feel like they’re just a prompt away, feature creep feels like a never ending battle. Being disciplined is more important than ever.
AI still doesn’t change one very important thing: you still need to make something people want. I think that getting users (even free ones) will become significantly harder as the bar for user’s time will only get higher as their options increase.
Being quicker to get to the point of failure is actually incredibly valuable. Even just over a year ago, many of these projects would have taken months to build.
Vibe coding is fun, vibe engineering not so much
For all the talk about impending AI overlords and hype-bubbles on the cusp of bursting, I do feel like something that doesn’t get talked about enough is that vibe coding is fun.
I’ve never been a programmer’s programmer. I think it’s important to understand how things work so you can build good stuff, but what really gets me going is when people get value out of what I build (value isn’t necessarily monetary).
With agentic workflows, much of the minutiae of things like setting up dev environments, boiler plate code, testing, even the actual language syntax itself has become abstracted away (for the most part). Although AI has made the initial 80% of a project much easier, the pain of that last 20% is still very real.
I tried experimenting with multiple worktrees, complex Claude.md files with agentic updates, different models for planning vs coding vs testing, etc. But at a certain point I just reverted back to the basics and haven’t really looked back: plan mode, prompt enhancements, and 1-3 Claude Code conversations at a time.
VIBeS, viBEs, VibES
It’s surprising to me how much it seems like AI model performance is still based on community perception rather than quantitative metrics.
It’s not like there aren’t benchmarks that exist (SWEBench, LMArena, Helm, etc.), but it doesn’t feel like they’re really valued by the typical day-to-day engineer. The funny thing is that it seems like we go through the same cycle whenever a new model comes out: new model releases, extreme overhype, over-correction to borderline hate for the model, and lastly the model becomes the new standard.
Twitter is still the pulse of technology
For as much uproar as there was after the Elon takeover, somehow Twitter still feels like a requirement for anyone who wants to be plugged in to the cutting edge of tech. Seems like the best example of the power of the network effect I’ve ever seen. I was really interested to see if something like Bluesky or Mastodon would work out, but at least so far it just hasn’t.
🥇 Twitter (X)
🥈 Hacker News
Honorable mention: RSS
I miss the days of RSS feeds and chronological Twitter. Nowadays, it feels more important than ever to own your own content. Here are some of my favorite blogs & RSS feeds:
On Icon Generation
I’ve been asked about how I’m generating icons for these projects: they’re all generated in ChatGPT with no post-editing.
The workflow is pretty simple. I started by collecting 5-10 reference icons I liked with the style I was looking for, kind of like a mood board of sorts. Then just dropped them into ChatGPT with a prompt like “Make an icon using the visual style of the designs I provided. This is for an iOS app that’s called Dinner Party.” First few attempts were hit-or-miss, but once I had a few icons I liked, I just continued to feed those back in and the model learned to create a consistent style from its own successful examples.
Agents Anonymous 🕵️♂️
Earlier this year, Peter kicked off Claude Code Anonymous: a meetup for devs using agentic coding tools in production. We hosted the first (and last) Claude Code Anonymous in SF a few weeks ago and in January we plan to host the first, newly branded, Agents Anonymous meetup.

The format is short 5-10 minute talks about real agentic coding experiences. If you’re experimenting with agentic workflows and want to compare notes with people solving similar problems, follow me on Twitter for updates on the January event.