I Refuse To Let The AI Decide What My Users Need
Build with Attitude #4: How to product-think when AI builds at lightning speed
Claude told Karen Spinner not to build CarouselBot.
The market’s cornered, it said. Canva and Gamma have it covered. The addressable audience is spoken for.
She built it anyway.
This wasn’t the first time she overruled her AI. It wasn’t the second.
The story of CarouselBot isn’t a story about a tool. It’s about a builder who trusts her own judgment more than her AI’s.
And it’s a story I want you to read, because critical AI literacy means evaluating AI, not just using it.
Welcome to the Build with Attitude Project
Why Authentic AI Development Stories Matter
I’m Karo 👋, AI product manager, builder of StackShelf.app, Attitudevault.dev and someone who believes that building value matters more than building what merely sells.
2025 feeds were flooded with “I vibe coded an app in two hours and already made $100K“ posts:
These claims aren’t just misleading; they’re actively harmful by teaching extraction over value creation.
They also skip the part where you build multiple things before you find the one that sticks. The part where a legal review kills your best idea.
So I started collecting different stories. Not stories about tools, but about how people make judgment calls under uncertainty.
I partnered with 36 builders from around the globe. Every second week, one of them walks you through how they think. Where they got stuck. What they changed. Why.
We’re all fans of vibe coding here. But we also believe in product thinking, craft, and building things that matter.
If you’re new to the series, welcome! You can find all previous interviews here.
The Builder
Karen Spinner doesn’t have one product. She has a trail of them.
Good Bloggy was an AI writing studio with author identities and style guides. It worked and got traction. But when Karen ran Google ads, she learned that the people who signed up were students in their late teens trying to cheat on their homework.
Wrong audience. Lesson absorbed. Next.
Then I created StackDigest, a newsletter digest, discovery, and analysis tool. I built it with Django, PostgreSQL, and OpenAI embeddings for vector search across 2,000 newsletters and 30,000 articles.
StackDigest took off on Substack and many PwA readers signed up right away.
This time, however, the problem was that a legal compliance review suggested that how I was using Substack's API and aggregating data might violate Substack's TOS.
Right idea. Wrong path to market. Next.
Then FutureScan, a research tool for finding and analyzing academic papers, with over 139,000 abstracts indexed to date.
Then came the Chrome extensions:
Substack Reader for managing subscriptions.
Newsletter Audit (a collaboration with Sharyph) that pulls analytics into a single dashboard.
Prompt Collector for organizing AI prompts.
That’s a curriculum.
Each build taught Karen something the next one needed, and all of them led to CarouselBot.
What most “I shipped in a weekend” posts don’t tell you is how many weekends came before the one that counted.
The Product
Karen’s first idea was simple. Use Claude as a bridge to Canva. Feed it a 2,000-word article, let it generate carousel copy, then use the browser extension to paste it in.
Claude tried 126 times to close a Canva promotional pop-up. Same pop-up. Same failure. One hundred and twenty-six attempts.
Fine. I’ll just build the whole thing myself.
She validated the idea with Claude first. Claude’s answer was clear:
Don’t build it. The market’s cornered. Canva and Gamma have it covered. The addressable audience is spoken for.
Karen validated with humans next. People told her, without being prompted, that they’d pay for this.
She trusted the humans.
If you’ve ever built carousels from long-form content, you know the pain. You wrote the piece. The thinking is done. But the reformatting takes longer than the writing did. Open Canva, pick a template, manually copy text into each slide, one at a time. For a 10-slide carousel, that’s 30 to 40 context switches. Karen calls it death by a thousand clicks.
So she built CarouselBot. You feed it an article, it drafts the slides. You edit, adjust branding (including all Google fonts), generate or upload images, and export to PDF, PNG, or JPG.
Simple premise. Painful problem.
The core vision was clear from day one: transform content, not generate it. Karen isn’t building another AI content mill.
Attitude is building a tool that respects the work your users already did, instead of promising to replace it.
The Nos
Karen’s most interesting decisions are the things she refused to build, all on the advice of her AI.
#1
Claude said: This should be a Chrome extension! Everybody has an API key and knows what that is!
Karen said no. Her users are content creators, marketers, and publishers. They’re not developers. They don’t have API keys. They don’t want API keys. They want to paste an article and get pretty slides back.
#2
Claude said: You don’t need AI-generated images.
Karen said no. By then users were asking for it.
#3
Claude said: Let users fix the layout manually. You’re the only one who cares that much about widows and orphans!
For non-designers:
a widow is a single word stranded on the last line of a paragraph
an orphan is a single line stranded at the top or bottom of a page
They make otherwise clean layouts look broken.
She ignored Claude. And I love it. I would ignore it too.
I’ve spent years reviewing copy in decks, docs, and landing pages. You develop an eye for it. A single word dangling on the last line of a paragraph. A heading that splits awkwardly between two slides. You can’t unsee it once you start noticing.
The funny thing is, that nobody opens an app and thinks, wow, the text wrapping is excellent. But they notice when it’s bad. They just can’t name what’s wrong.
Karen can name it. From ten feet away.
When Jenny Ouyang talked about refusing to ship without understanding why something makes sense, she was talking about logic and reasoning. Karen is applying the same discipline to pixels and line breaks.
Both are saying the same thing: shortcuts compound.
#4
Claude said: Let’s drop the database.
Claude’s go-to solution for any data-related problem is “let’s drop the database.” It has tried to nuke my production data on multiple occasions, so it’s no longer allowed to interact with my Vercel environment!
I laughed out loud at this. And then I thought about how many people wouldn’t catch that suggestion. How many production databases have been dropped because someone trusted an AI recommendation without reading it carefully.
Every time Claude pushed Karen toward a decision that was wrong for her users, she caught it. Because she knows something Claude doesn’t. She knows the humans on the other side of the screen.
Attitude is knowing when to trust the machine and when to trust yourself.
The Stack
Karen started with ChatGPT. She describes it as gambling.
I’d describe what I wanted, it would generate code, I’d paste it into my project and see what happened, which was usually an error message I’d have to look up. It felt like gambling! It also motivated me to learn more about systems design and engineering best practices, so I could direct ChatGPT in ways that were less likely to produce bugs.
Then she moved to Anthropic’s Console. Longer context, fewer bugs, still the dreaded Python indentation errors.
Then Claude Code.
After a year of cut-and-paste coding through Anthropic’s Console, switching to Claude Code felt like a miracle.
The progression is instructive. Karen kept building through the discomfort. She also didn’t wait for the perfect tool. She used what existed and upgraded when something better arrived.
The Weight of It
I want to pause here. Because the facts of Karen’s situation deserve more than a passing mention.
A lot of CarouselBot gets built late at night when I should probably be sleeping.
She’s building CarouselBot while looking for full-time employment. In a market she calls grim. Taking whatever gig work she can find to keep things going. Raising two kids. Taking care of three large dogs.
And somehow, between all of that, finding hours to fight with payment processors.
You see, Paddle rejected her.
Her first choice for a merchant of record. The thing that would have let her accept payments from international users without registering individually in every country. Gone.
When you’re building alone, with no runway, and the payment infrastructure you need to monetize says no, it’s not a minor inconvenience.
But she kept going. Found Gumroad. Applied to Lemon Squeezy. Wired up an API integration. Solved it the way she’s solved everything else: one problem at a time, late at night.
The business side required almost as much time and energy as building the product itself, she says. The building part is much more fun.
This is another thing that is rarely mentioned in surface-level builder success stories: Pricing strategy. Payment infrastructure. International tax compliance. Competitive positioning. The boring, annoying work that “shipped in a weekend” culture treats as an afterthought, if it’s mentioned at all.
When it gets too frustrating, Karen walks Butter, her Labrador Retriever. Some quiet, zero-screen time. The dog gets exercise. Karen gets space to think without a screen telling her what’s broken.
Attitude is building through the doubt because the problem matters more than the fear.
That’s what five previous launches teach you. Not confidence that this one will work. Confidence that you’ll survive if it doesn’t.
What We’re Learning
There are many ways to build with AI.
You can let it drive, trust its market analysis and accept every suggestion. A lot of products get built that way.
Or you can build with attitude:
keeping product judgment in your hands
saying no when you know your users better than it does
treating failed projects as data
trusting your obsessions over what the AI calls “irrelevant”
Building tools with today’s technology is fun and easy, Karen says. Finding the right problem is harder.
Your AI doesn't know your users' last frustration. It knows the market's average. Before you accept its next recommendation, ask yourself:
Is this model building for my people, or for a statistical composite?
Multiple real products, shipped to real users taught her that.
CarouselBot Has Officially Launched
PwA readers can save $30 on an annual subscription with the code LAUNCH49. It’s good for the next 7 days.
Final Thoughts
I started this project thinking I should explain what building with attitude means.
Then I read the submissions.
Now I think it’s better if the meaning emerges from the builders themselves. We’ll define it together. One builder at a time.
What’s Being Built in the PwA Community Right Now
Ileana is working on a new tech art project and she needs your help! It’s one anonymous question. That’s it.
Pawel Jozefiak built Wiz, a personal agent that, among many other tasks, helps him publish articles on a consistent schedule.
Mia Kiraki 🎭 built an AI Tutor for Claude, that won’t let you fake understanding.
Jeremy Wright - Marketer built an app for long-distance couples to help them stay connected.
Dheeraj Sharma shipped Markdown-to-Branded PDF generator that turns any markdown file into a professionally branded PDF in seconds. Let him know if you’d like to try it! Dheeraj just joined StackShelf; you can see his profile and freebies here.
Marcela Distefano built a guide about AI risk before deployment.
Are you tempted to start building but unsure where to start?
Start here.
👉 Vibecoding Resource Hub
👉 Vibecoding Guide From 2 Builders Who’ve Shipped
👉 UI Prompt Pack
👉 Rules-For-AI - Guiding Prompt
Built something already? I’ll help it get seen.
You don’t need to do everything alone. Let our community amplify your work.
As a PwA member, you can list your projects on StackShelf App: an online directory I built so your projects are discovered by readers, fellow builders, and AI. As of today, StackShelf has redirected 5,102 unique visitors to creators’ product sites.















Yay! Two of my favourite Substackers united! I love and respect the insane technical capabilities of both of you, but above all else I value your humility, kindness, and willingness to build in public with complete transparency. That is why I will always read and listen to what you have to say. 🙏
Karo * Karen = geometric growth with a smile 😁