Welcome to Product Unfiltered, where we talk with Product Leaders about real challenges, how they handled them, and give you the process tools, and frameworks they used to overcome them.
P.S. Did someone forward this to you? You can get this directly in your inbox by signing up for the newsletter here.
This month is a special edition, a deviation from the normal structure. I’m sharing a story of my own. I built a software startup in 7-days. Here’s how it went:
It started as an idea borne out of frustration. Most products do. My friends and I are golf fans. Each year, we do a “draft” of the players participating in the best golf tournament of the year, the Masters. Historically, the winner was determined by whoever had the winning golfer on their team. Effectively, the team was pointless. This year, we wanted to change that – make the team worth something and do it with a points-based system relative to each golfer’s score, and combine the scores of all golfers on your team. Just like golf, the lowest score wins. There were two ways to approach this: someone could manually update a spreadsheet at the end of each day, or we could automate it. Over the past several months, I’ve been building products using Claude code and gotten to the point where I can do it pretty damn well. What another great opportunity to see if we could do it.
Can we actually do this?
This Fantasy golf app sounded great in theory, but what were we actually capable of doing on a budget? The first instinct was to look into which publicly available APIs were available. By some miracle, I came across an API that provided practically everything we needed – for free. Now there is really no excuse; we could build this.
Let’s spec it out
We’ve validated demand, effectively pre-signing up my friends and me as users, and reduced the barrier to entry in terms of cost by locating a free API and the time to spec it out. We had a clear idea of what we needed to build to reach a bare-bones state, and we could smooth the edges as we progressed. My objective was pure startup sense – I just needed enough information to get to the next step forward. After getting into a conversation with Claude, laying out what we wanted to build, identifying gaps in our thinking, going out to gather that information with perplexity, and then returning it to Claude for analysis, we were able to spec out a Product Requirements Document for our MVP. I got Claude to generate that PRD and then refine it until it met the specs I was looking for. Time to ticket it out and define a development strategy. I turned that PRD into a Technical Requirements Document. Same process. Time to get building.

Put on your construction hats
I fired up Claude code, cracked my knuckles, and got typing. Time to crank this thing out. ANNNNNND it’s done! Wait, really? That was fast. Time to try it out. Oh, that makes sense. It is riddled with bugs. I didn’t take the time to really think through this and spec it out. The same thing happens when you’re working with real engineers – you give them something half-baked, then they’re going to execute against the requirements that you gave them, you can’t fault them on that. And seeing as how I spent a whole three hours from first concept to spec to MVP, I can’t expect much more than that.
The next several hours and days were spent resolving bugs and making sure the core user flows. It was somewhere in this daze of enhancements and bug fixing that I realized “Other golf tournaments are going on throughout the year, I should build this to make that accommodate those. Oh, and I should get other people to use this too.” I added scope creep for myself, which contributed to even more bugs and bug fixes – you get the point. Spend the time to spec it out appropriately up front, and you won’t run into that.
Time to get the word out
I probably should have started with getting the word out. I wish I had just created a landing page stating what Bogey Battle was and a field for people to input their email address, then prioritized getting the word out, and then built and pinged them when I was done. Instead, I built first, got the word out second – which resulted in a huge strain, which I’ll address later.
Now, if you don’t know me or are just catching up, you can see that I’m pretty scrappy. I figured that the best way to get the word out against Bogey Battle would be to get in front of the people who were most likely to use it, golfers (obviously). And where do golfers go? Golf courses, driving ranges, indoor golf simulators, golf training centers, the PGA Superstore, and Golf Galaxy. I jumped into Canva, mocked up some flyers and business cards, and I started to print them out – until my printer ran out of ink – okay, FedEx Office. I ran to the FedEx office to get the flyers printed out and business cards created.
With flyers and business cards in hand, I zipped around Austin going to anywhere that had any association with golf – save for Peter Pan mini golf (IYKYK). I hit 10 places before lunch, 12 in a day, and then another 3 the following day.


Let’s see it in Action
The original group I built Bogey Battle for was drafting on Wednesday night. Doesn’t mean you can’t do two groups at a time, so I got a separate group of friends together to serve as our own guinea pigs, with live data and real implications. And it went off without a hitch several hitches. Were all the golfers there that were supposed to be there? Yes … With the addition of 130 who weren’t participating in the Masters … whoops. Turns out I was so focused on making sure it worked that I forgot to filter by the specific tournament, and the order through which players appeared in the draft. Those friends who weren’t as familiar with golf might have drafted some of those golfers who weren’t participating. Instead of redoing the full draft, I updated the values for the golfers who weren’t participating with those for the ones that were and made a note to correct it. I received quick feedback on how the draft went aside from that mishap and incorporated it for the next draft(s) happening the following night.
While addressing these fixes and feedback, I realized I forgot to include analytics. So I plugged those in real-quick, too.
I’ve put flyers and business cards around town so golfers can see them. I’ve got at least three friend groups signed up, analytics set up, and some user feedback. I’m sitting pretty. Can’t ask for more from an MVP built in a couple of days.
With that user feedback implemented, the draft the next night finally went off without a hitch – and they loved it. That’s a win!
Adjusting on the Fly
Now that I had some degree of quantitative data coming in through the analytics, I noticed two things: 1. There was a significant bounce from people visiting the home screen and not creating or joining a group. 2. There was a significant churn when people were asked to pay.


I had a clear understanding of what was going on and a hypothesis for how to fix each.
For the home screen bounce, people are coming to the page and just checking it out. This is the first time they’ve heard of Bogey Battle – they first heard about it from a random flyer, from me directly, a friend, or social media. They really didn’t have the context of Bogey Battle and what it was. The home page, which had a logo, a sign-up form, and instructions on how to play, wasn’t doing a great job of communicating what Bogey Battle was unless you had some prior context. I’d prioritized the game experience over thinking about how to communicate what it is to strangers. So I refined the home page a bit to communicate better what Bogey Battle was. I aspired for larger changes, but time was a constraint, and AI design just isn’t there yet.


For the people not signing up, I 100% knew what was happening. I prioritized my own business objectives and focused on getting people to pay to play right out the gate rather than considering the user perspective. If they didn’t realize the value and what the game entailed before paying, they’re not going to. I’ve dealt with this before, so I knew exactly what I needed to do. I needed to delay surfacing the pay wall so that people would realize some value and have some degree of investment before paying.

Well, this is awkward …
With the Masters’ tournament underway, the opportunity to continue focusing on promoting league creation wasn’t viable during the 7-day sprint. I had the single-day round, but participation in that was stalling. I saw an opportunity to learn more. There were a few pain points I wanted to address: 1. To participate, you needed to find others to participate; there was no single-player mode. 2. I was not confident in pricing. 3. I wanted to meet people where they were in a no-brainer sell. At this point, I'm shifting my strategy from pursuing a few high-margin tournament-mode sales to offering a discounted alternative and focusing on scale.
To facilitate the low-margin scale pursuit, I looked at what other daily fantasy sports experiences were: community-based gaming. Eliminate the dependency on having to find other people to play with you. Built the feature overnight for playing at bars. Pick 2 golfers, pay $0.99, and compete against everyone else in the bar for the lowest score of the day.
I looked up all the bars in Austin that were hosting Masters watch parties with flyers in hand, and I drove to all the bars and handed them out. I made it stupid simple for them: “I saw you’re hosting a Masters watch party this weekend. I built a fantasy golf game for your bar so people can play against each other. It costs you absolutely nothing and will increase the time people spend at your bar, competing against their friends. It’s all set up; all you have to do is hang these flyers.”
Going for the masses
I saw another opportunity to gain exposure by running social media ads. By this time, I’m having fun with it. I bet myself that I could make one on the cheap with AI, and that it was. It cost me $6 to make, and it was horrible in all the best ways. I ran it on Reddit for a couple of days.
Fun bonus story I’ll include here: apparently, Reddit has a rule that you can’t include the word “REDDIT” in a UTM parameter or join code. It’s against their third-party policy that I didn’t see. So when I created the Reddit community group and updated the ad's redirect URL, it didn’t get approved. When chatting with support, they were confusing my ad with this:

I have no idea how to explain that. But hey, if you need a portrait of a cat wearing a wig, check them out!
The final stats
Let’s first take a look at the hard stats:
80 unique weekly active users
~5 sessions per user
55% of users checked scores >= 8 times
Average score visits per user: 12.5
Engagement surges when the tournament gets interesting & lots of movement
I’m really satisfied with this! The fact that 55% of users checked their scores 8 or more times in the first week of release is incredible! That tells me that the 55% were really engaged and wanted to see how their players were doing. I certainly got some help from an interesting Saturday at the Masters with A LOT of player movement up and down the scoreboard. It meant people wanted to keep up with how their team is doing relative to the movement.
Now let’s hear from our users:
Players enjoyed intuitive UX and live scoring.
4/5 would pay $1 – $5 to participate individually, $4-5 per group appeared most common.
Players didn’t see much use in playing outside of gambling or “pools”.
Players aren’t watching weekly, but would use it for “Major” tournaments.
6/6 would recommend to others.
Two big takeaways from this for me:
I knew charging for Bogey Battle would be a barrier to entry going in, especially when other fantasy sports games have already set a precedent. Fantasy sports games are either free or involve paying with money on the line in hopes of winning more money (aka gambling). The ones who offer the free games are typically larger media companies (ESPN, Yahoo, League) that offer free game play as a customer acquisition cost to get you into their ecosystems. And gambling speaks for itself.
People did enjoy playing, but they didn’t want to play continually. It could have just been the subset of the group, but unless you’re a hardcore golf fan, most casual golf fans are only going to be paying attention to the four Majors: the Masters, PGA Championship, the US Open, and The Open.
Financial Results

Most of the money went towards guerrilla marketing efforts, such as flyers and business cards. I was attempting to meet our target users where they were in the wild.
But on the positive side, I made $25 in sales in the first week. I’ll take that as a win!
The retrospective
My ICP were guys who golf and also play fantasy football. The biggest demographic of these is between the ages of 20 and 45. You know where males ages 20 - 45 are during the middle of the week when I was hanging up the flyers around town? They’re not out golfing. They’re playing golf on the weekends. That was an oversight on my end. Hopefully, I got one or two of my ICP who were hitting the range, indoor sim, or went to a golf shop during the week.
Even if you want or need to go fast, others don’t move at the same speed. Example A: Trying to form partnerships at the bars hosting Masters watch parties. I was moving through a sprint quickly, but not everyone moves at the same speed you want. I wasn’t able to have direct conversations with most of the managers at the bars, so most of the flyers weren't hung up. I built a community game, but it flopped because I didn’t act early enough with the distribution channels. If I had the opportunity to meet with management, I would have negotiated a revenue share as well.
Learn and respond fast. If I hadn’t acted immediately on the feedback that I had gotten from the Tuesday night draft, the Wednesday draft would have also faced the same issues. By addressing the issues and learning from mistakes, I was able to significantly increase user satisfaction with the draft on Wednesday.
Even experienced people make mistakes under pressure. I’ve been developing software for over 10 years. I preach following the best practices of product operations – detailed requirements, test before you ship, etc. I prioritized speed and getting something out there. In that pursuit of acting quickly, I overlooked what I preach time and again. The requirements were subpar, and the results reflected that, leaving most of my time spent on bug fixes. I shipped without testing before release or implementing automated testing, and bugs made it to production. My users caught them and brought them to my attention. I had to act quickly to resolve them.
Implement systems after making your first mistake so you don’t repeat it. This is one of the few things I stuck with. After I made a mistake. I took a few minutes to diagnose what was actually happening and updated my .claude md files so it wouldn’t happen again.
In closing
I conceptualized, built, shipped, marketed, and made sales of a product in a week. Wow. That was some unreal speed. I didn’t make the “$10,000 overnight” glory posting, but you know what? I made $25! I’m damn proud of that. The hustle isn’t about seeing that hockey stick curve up and to the right overnight. It’s about shipping, learning, and iterating in real time, falling on your face so you learn a lesson, don’t do it again, and know what to do differently in the future.
Were these really stressful 7 days? Yup. Would I do it again? With some help. Did I have fun? Hell yes!
If you ever want to find out what you’re made of and how you can impress yourself, take a week off and do a 7-day startup sprint.
Until next time,
Matt
