Card Games
I spent the weekend with some old friends and all of our children in a tradition we call “No Moms Weekend.” It’s 7 dads, and 15 kids of varying ages all doing wintery outdoor activities like hiking, making campfires, and playing lots of games. Moms have to stay home and suffer through the peace and quiet of an empty house.
One of our favorite games to play is called Backalley. It’s a trick-taking card game played with a standard 52-card deck. It always involves 5 players, and it’s played in 20 rounds. The first round every player gets 10 cards, then 9, then 8, until you get down to 1. Then you repeat the entire process back up to 10. There are some important data points to record for each round as we play:
- How many tricks did each player think they would win this round (bids)?
- How many total bids were made?
- How many tricks did each player actually win?
- What was the trump suit?
- What is the user’s score?
Here’s what a standard scoring table (on paper) might look like:

I mentioned to the group that this seemed like something I could probably have Claude build for us in the time it took to play a game. So I did.






Things I Learned
One of the most amazing things I discovered in this process was how good Claude was at interpreting that hand-written image above. We had already talked through some of the rules of the game, but it was able to identify all of the different components, and use that drawing as a template for what our digital scoresheet became. It makes me think I could be drawing pictures to describe my interfaces when words aren’t getting me where I want to be.
For most of my vibe coding adventures, I’ve leaned into a database, whether that is Supabase, or SQL Server. Claude’s initial instinct on this one was to use dexie.js, a client browser-based database. While this worked very well, it didn’t allow for aggregation of data across users and games. It wasn’t an option I had used before, and I can definitely see a place for it in future apps.
I’d also been using SMS-based authentication for most of my applications. Still using Supabase, I was able to easily build an email-based magic link auth system pretty quickly, including using my own custom domain for the emails.
The app also has an audible “announce standings” button that will read off everyone’s current rank and score. While I’ve done lots of things with text-to-speech in my career, I was surprised how easy this was.
Stay updated on vibe coding
Get new articles delivered to your inbox every Friday.
No spam. Unsubscribe anytime.