I played 1,000 hands of online poker and built a web app with Cursor AI

In the last two weeks I spent over a dozen hours playing poker, primarily online at pokerstarsmi.com, and live at a local casino.
You can view the last 1,000 hands I played here: https://poker.rchase.com
I spent at least as much time reviewing my hands with a desktop app called PokerTracker 4, I read 6 books, studied strategy, and journaled about it in my Apple Notes.
Then I started building my own Python script automations to export my hand history from PokerStars, import it into PokerTracker 4, check my balance, stuff like that.
That led me to getting help writing code from Grok, then Cursor, and then building a full blown Laravel MVP for a web app similar to the PokerTracker 4 desktop app.
Why poker?
Without getting too philosophical, it's not about the money won or lost - I'm playing low stakes right now because I'm a beginner.
I just want to learn the game.
Maybe someday I'll play some tournaments or high stakes.
But right now, more importantly, I'm learning about myself.
- Emotional intelligence becoming aware of emotions in myself and others
- Self-regulation trying to control my emotions and not let them influence my actions
- Resilience not giving up because of downswings
- Humility learning to not get overconfident after a big win
I also have enjoyed the lessons from the bankroll side of the game:
- Managing risk, taking profits, cutting losses
- Developing the discipline to scale down my buy-ins when losing to keep a max of 10% of bankroll in play so I don't blow my entire bankroll on a bad day
Whether I won or lost money in a given day isn't important, what's important is whether I followed my plan or not.
If I let emotions guide my actions, or I maintained self-control.
Success is if I made good decisions given the information I had at the time, even if it didn't lead to a good outcome.
The analogies to life and business lessons are endless... but in this blog post I mainly wanted to write about my experience building this web app with AI which was completely mind blowing!
Building a poker stats web app with Laravel in Cursor
So after only 2 or 3 days of just chatting back and forth for hours and hours with the Cursor AI agent I built a fully functional web app at poker.rchase.com with an admin dashboard and dozens of features:
- Admin dashboard

- PokerStars and Gmail integrations

- Complicated (over 700 lines of code) poker hand history text file parser

- Complicated poker stats calculations like VPIP, PFR, and 3-Bet

- CRUD for journal entries, logging poker account deposits/withdrawals

- Hand history file management with multi-file upload and "paste text" options

- Daily PokerStars balance checks
- Auto export PokerStars hands every 15 minutes with enabled/disabled toggle
- Auto import hands from email using Gmail IMAP integration

- Hand history table and individual hand viewer


- Profit/loss chart

Built locally using Herd for MacOS and deployed with the help of Cursor to a DigitalOcean Debian 13 server. Private git repo hosted by GitHub.
The insane part is I didn't write a single line of this code.
All of this was created through conversations with the Cursor AI agent.
I don't even know how we got here with AI.
Just a few years ago I remember chatting with ChatGPT asking it to write some basic Python script for me and it was completely useless, it hallucinated calling libraries that didn't exist, using functions it forgot to write... it was nuts.
It couldn't even do basic math not that long ago like 2+2=5 was a common thing that would happen in the course of a conversation.
I wrote off AI entirely for years after that brief experience - as clearly overhyped and with limited use case potential.
But then at some point, I subscribed to the Grok $30/month plan and began using it every single day.
It quickly replaced Google Search entirely for me.
And then I started to use it much more than I had previously used Google Search.
My team started to check with AI about hard problems we ran into whether it was networking or programming, usually the answers weren't great and of course we always reviewed carefully for security issues and didn't just trust implicitly the information it provided.
But we could see over time it was improving in the responses.
It became a thing when we were stuck "Did you check what Grok had to say about this?"
I remember earlier this year my feed being full of "vibe coding" on X and in particular Pieter Levels' fly.pieter.com, but I kind of just followed along for entertainment and I think even at that time it was much worse than it is now, I think you needed to keep the code in one file and implement various hacks to keep the AI aware of the context of that file.
But I had no idea it was this far along until last week I pasted my Python PokerStars hand exporter script into Grok and asked it to build the Gmail integration to retrieve the login PIN and with very few iterations it was able to do it successfully and without me writing any code.
Then I had it replace all my print statement debugging with proper logging and it did that too easily.
Then I had it turn the monolithic script into a class that could be used in other scripts and it did that as well.
I was so impressed that I decided to start looking into what the best AI tools were out there for programming... so of course I didn't Google that, I asked Grok. And I started to learn about Cursor, Claude, and Windsurf.
What it's like to build a web app with Cursor
For me, I've been primarily building apps through other people for the last 4 years now. I barely write any code. I'm not proficient enough to make commits to any of our production repos at HostiFi... sadly.
However, the skill I do have is I understand what I want to build, in what order, and what sacrifices need to be made in order to ship it.
I have knack for user experience and a small amount of design sense.
I also have empathy for the developers I work with, and the complexity of the work involved to build features. I have enough technical knowledge to debate with them the pros and cons of difference approaches when there are forks in the road.
All this to say - working with the Cursor Agent was eerily similar to working with a human developer on my team... but way, way faster because the feedback loop was real-time.
It was such an unusual experience to watch Cursor work that it's hard to put into words, you really just have to try it for yourself.
Basically you tell it to build something, it writes some code, I open the page and there's a 500 error. I tell it - hey there's a 500 error. It checks the logs, finds the bug, fixes the bug, ships the new code, I refresh the page and it's working... but it's not the color I wanted or whatever and I tell it to fix that and it goes and does it. On and on this goes for hours into the night.
With humans, normally I outline something I want built whether it's a feature or a new page for the website or a entire new app. Then the developer and I will kind of go back and forth over the details of the MVP version of it and what we should cut out considering the time/value trade off.
Then the developer will build it, but not the entire thing. We want to set milestones. That way I can see it as it gets built and give feedback which leads to many iterations, usually days or weeks apart, of each milestone until completion.
I learned how to build software like this the hard way...
By wasting a ton of time and money because I used to:
- Not work directly with the end developers
- Not clearly communicate what I needed
- Not consider time/value tradeoffs to cut the project or feature down to MVP
- Wait until the entire project was completed before giving feedback and iterating
- The feedback loop was too slow, I needed to work directly with the developer through complicated issues but we didn't have access to each other and had to communicate through a PM most of the time
— Reilly Chase (@_rchase_) October 14, 2021
I think these dev management skills I've built up along with the thin technical understanding of a lot of different programming topics over the years have made me uniquely capable of building things with the Cursor AI agent today.
I don't think just anyone can build anything right now.
I think I might have the contrarian take here - the bar to build is going to continue to get lowered but it will never be "easy" or "anyone can do it".
The code was actually never the hard part of most SaaS anyways.
If it was, every programmer would be a millionaire.
It's hard knowing what to build, in what order, and of course the most important part - getting customers.
But anyways back to Cursor.
Some of my more interesting conversations with Cursor
One of the biggest challenges was writing the hand history parser.
PokerStars exports hand history in text files like this:

It was very difficult to scrape all of this using regex into separate pieces of data to put into a database where hands can be sorted, summed, and analyzed.
Part of the problem was the AI's lack of understanding of the fundamentals of the game of poker.
Part of the problem was the amount of edge cases, or hands where something unusual or different happened of which only happened in a few hands.
My first goal was just to calculate the profit/loss total from all hands. This seemed fairly simple - find text like "reillychase collected $29.82 from pot" and add it up.
But actually wait, we need to also deduct the bets that I made from that pot.
But what is considered a bet?
If I'm the small or big blind there's different wording in the text file for that bet, there is also different language used for an all-in bet, a raise, a call. A bet was called many different things and they all needed to be added up so they could be deducted from the amount won in the pot.
There's also an edge case where I made a bet and someone went all-in so some of my bet was returned to me (the unmatched bet amount).
Or maybe there's an edge case where there were two winners and the pot was split.
As you can imagine the list goes on and on.
Instead of thinking through every edge case I told the AI "let's review some hands together - find me the biggest winners, the biggest losers, and some complicated hands and explain them to me"
It was able to find hands of those types, it showed me the text so I could add it up manually, and it showed me its own expected output along with the actual output.
Most of the time it was able to figure out on its own what had gone wrong because its expected output after reading the text file differed from the parsed output.
In other cases I had to explain to it something poker related to give it more context.
These are the kind of conversations we had over and over.
Again, this was just like working with a human programmer, although I will admit the AI was much dumber at times, but instead of days or weeks between iterations it was minutes.
One unlock I found, with the limited time I spent in actually exploring Cursor itself and not just plugging away at building with it, is changing from Auto to Claude 4.5 Sonnet Thinking as the agent.
The quality of the responses greatly improved in my experience and I plan on upgrading my subscription to pay on-demand to be able to continue to use it once my credits run out.
What it all means for the future
It's not really my thing to give too much thought about macro-trends that are out of my control or worry about what negative consequences they might have on my life.
The short answer, I really don't know what this means for the future of the career of programming, the business of software, or anything else.
Instead of worrying about that I'm going to try to focus on the here and now, the upside potential, and the unique set of advantages that I have available to me to build something valuable, have fun, and maybe profit.
I'm going to do what I enjoy doing, try to learn some new skills and create things.
Looking for input from you, the reader
If you play poker, let me know.
If you use Cursor or similar to build things, let me know.
I'm also looking for help on how to revamp the UX/design of poker.rchase.com using AI, it seems like Cursor is not strong in this area maybe there is an alternative I should be looking into?
Thank you.