I Refuse To Ship Without Understanding Why It Makes Sense
Build with Attitude: How to product-think when AI builds at lightning speed
While Reddit was still on fire with engineers deciding if vibe coding was heresy, one engineer decided to commit it.
Jenny Ouyang skipped the debate and went straight to experimentation.
She didn’t know it yet, but this single choice would define her 2025.
A year of building. Products. Community. A reputation — at work and in public — as someone who understands AI, not just discusses it.
I met Jenny at the beginning of that path, and despite being continents apart, we clicked instantly.
So when I started shaping the Build With Attitude series, Jenny was already part of the idea.
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 unhelpful and misleading; they’re actively harmful by teaching extraction over value creation.
So I started collecting different stories.
Each week, a builder walks you through how they actually 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! Start here:
Build with Attitude - The Announcement
The Builder
How She Balances Speed and Understanding
Jenny’s time to build begins when everyone else’s day ends.
I’m not sure if that’s discipline or stubbornness, she admits. Probably both. But there’s something about the quiet of the house that makes the code flow easier.
Those limited hours made her ruthless about what counts. No room for speculative features or exploratory detours.
I stopped chasing ‘someday perfect’ and started shipping ‘good enough tonight’.
This isn’t the abandonment of craft; it’s the refusal to let imagined future standards block present learning. Choosing discovery over polish, feedback over fantasy. The kind of trade-off every product builder eventually has to make.
For Jenny, understanding what she builds matters more than going fast just to go fast.
I want to ship fast, but I refuse to ship what I don’t understand.
That tension between shipping and knowing, moving fast and understanding why, shapes everything she builds.
That choice isn’t accidental. It’s attitude: knowing what to push forward, and what to refuse.
The Problem With Vibe Coding: Visibility vs. Validation
The Assumptions She Started With
Every builder starts with assumptions. Jenny was clear about hers.
Domain expertise matters more than technical credentials. Builders who ship successful products are the ones who know their problem deeply, not the ones who know the most code.
I recognize this as something that often shows up in product work:
- Understanding code helps you move faster
- Understanding the problem tells you whether you should be going there at all
Jenny’s belief in expertise shaped her first idea.
The Problem She Thought She Was Solving
I was getting messages from domain experts who were excited about building their own tools but felt intimidated by traditional coding spaces.
They had deep expertise in their fields and genuine problems to solve, but nowhere to showcase their AI-assisted solutions without judgment.
Jenny came up with an idea for vibecoding.builders - a place where builders using AI could share what they’d built and learn from each other’s journeys.
At first, the need looked obvious.
Builders want visibility.
They want an audience.
They want their work to be seen.
The Problem She Actually Ended Up Solving
But Jenny didn’t stop there. She pressure-tested her assumptions by talking to future users.
What looked like a visibility problem turned out to be something much deeper.
I expected builders to want visibility, she says. I learned that many of them needed validation.
People were building real things: apps, tools, working prototypes. But without recognition from traditional developer spaces, they weren’t sure their work counted.
Existing developer communities like Hacker News and Reddit were often hostile to anything labeled “vibe coding.” Even developers who actively use AI assistance refused to associate with the term. They saw it as diminishing their “serious coder” identity.
The irony is that everyone is doing some form of vibe coding now.
This is the hidden cost of the “vibe coder” stigma. The judgment doesn’t come from users. It comes from other builders.
And it doesn’t just keep people out of communities. It keeps them from trusting their own work.
Without support from fellow builders, many started questioning whether what they’d built was legitimate at all.
Jenny built vibecoding.builders precisely because of this disconnect.
We needed a space that celebrated building with AI — not apologizing for it. A place where the value of a solution matters more than the pedigree of the code behind it.
Building an AI Development Community With Product Thinking
There’s one part of Jenny’s work that could easily become hollow if it were done by someone with a different attitude.
I thought featuring builders would be simple, she says. Share what they built. Celebrate their wins.
But every story carries weight. People trusted her with their journey: their doubts, their first project, their uncertainty about whether it even counted.
Getting that right, doing their experience justice, felt heavier than any technical problem she’d solved.
This resonates with me deeply. It’s what happens when you take community seriously. It stops being a growth strategy and becomes a responsibility.
The builders we feature aren’t content. They’re people who took a risk by sharing something unfinished, uncertain, real.
That weight is invisible from the outside. But it shapes everything about how good community platforms work — what gets featured, how stories are framed, what gets amplified, and what doesn’t.
Here, attitude is the refusal to treat other people’s stories as content — and the willingness to carry their weight with care.
When AI Suggestions Aren’t the Right Answer
Another thing that strikes me about Jenny’s approach is how deliberately she’s avoided the traps.
When AI suggested adding gamification features (leaderboards, achievement badges), she declined. Every platform adds these, but I didn’t want people comparing themselves to others. The goal is showcasing what’s possible, not ranking who’s ‘best.’
When AI suggested rebranding away from “vibe coding” to attract more serious users, she refused. The whole point is creating a space that doesn’t apologize for AI-assisted building.
These are small decisions. But they reveal a larger philosophy: that building with AI is not the same as outsourcing your judgment to AI.
Attitude here is recognizing that what increases platform activity can also destroy safety — and choosing not to optimize for it.
When Tools Change Faster Than Identity
Jenny was clear about what she hopes readers take away from her work.
Permission. Permission to fail publicly and learn from it. Permission to believe that their ‘non-technical’ background is actually an asset.
And then:
I want people to stop hiding the fact that they used AI and start celebrating what they actually built.
We’re in a strange moment where the tools have sprinted ahead but our identity narratives are still tying their shoes. People are building things they couldn’t have built two years ago. And instead of celebrating that, or showing how to do it better, we’re arguing about labels.
Jenny’s answer is simple: focus on what you made. Focus on whether it works. Focus on the people it helps.
The rest is noise.
What We’re Learning
There are many ways to build a platform for vibe coders.
You could build one in an afternoon. Throw in badges. Add a leaderboard. Optimize for activity, revenue, and whatever metric looks good in a YouTube thumbnail. Charge aggressively. Ask questions later. Or never.
Or you can build with attitude:
understanding whether it creates the right kind of value
understanding the non-obvious problems it actually solves
protecting people over metrics
learning first, and always
keeping your judgment where AI would happily take over
Jenny chose the second path. And that’s why I wanted to feature her in this series.
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.
Additional Resources
Vibe coding starter packs:
Are you new to vibe coding? ➜ Start here
My most-read vibe coding playbook ➜ Read here
Design prompts ➜ Grab these
Tools & freebies from the PwA community ➜ Visit StackShelf.app
What’s being built around here right now:
You might also enjoy:
A deep dive into the Indie Builder Economy on Substack
Join hundreds of Premium Members and unlock everything you need to build with AI. From prompt packs and code blocks to learning paths, discounts and the community that makes it so special.










Really grateful to be part of this! Excited to join the movement and contribute alongside everyone here.
Loved the concept and the way you brought it to life. New builders are going to start thinking differently because of this. letting the community shape the meaning of attitude instead of imposing one is a smart move.