Blog

  • AI Can Spit Code, But It Doesn’t Know What Your Product Needs (And Neither Do You)

    AI Can Spit Code, But It Doesn’t Know What Your Product Needs (And Neither Do You)

    The AI Code Generation Paradox

    We’ve entered a fascinating era where artificial intelligence can generate thousands of lines of functional code from a simple prompt. It’s genuinely miraculous. Tools like GitHub Copilot, ChatGPT, and Claude can scaffold entire applications, create complex algorithms, and solve programming problems in seconds that might have taken hours manually.

    But there’s a growing and dangerous assumption in the startup world: that AI can not only write code but somehow divine what your product actually needs to do.

    Spoiler alert: It can’t. And here’s the uncomfortable truth – most of the time, neither can you.

    The Missing Product Requirements Problem

    💀 A Hypothetical Startup Horror Story: Vibe Coding Gone Wild

    Let’s imagine a startup—call them Promptly. The founders were sharp, enthusiastic, and riding high on the AI wave. They proudly told investors they built their MVP in just two weeks using ChatGPT, GitHub Copilot, and a bit of “prompt engineering.” Over 80% of the code was AI-generated. Thousands of lines of React, Node.js, and MongoDB, assembled at lightning speed.

    But when asked about basic things like user stories, data flow, or system architecture, they had nothing. Their spec? A Notion page filled with cool-sounding prompts like:

    • “Build a dashboard like Notion”
    • “Add a chat feature”
    • “Integrate some AI that suggests stuff”

    Fast forward six months and $300K later, and they had:

    • ✨ A polished UI with dozens of flashy features no one used
    • ❌ No support for core workflows that real customers actually needed
    • 🔓 Security holes that leaked user data in edge cases
    • 🔥 A codebase that would implode if anyone so much as touched it

    The kicker?
    The code wasn’t the problem. AI did its job.
    The failure was in the thinking.
    No one defined what mattered. No one asked why the product existed or who it served.

    Promptly didn’t fail because of AI.
    They failed because they vibe coded their way into a dumpster fire.

    AI: The Ultimate Yes-Machine

    AI code generators are essentially sophisticated pattern-matching engines. They excel at creating code that follows established patterns and practices. What they cannot do is:

    • Tell you which features will drive user engagement
    • Identify your actual competitive advantage
    • Determine what your minimum viable product truly needs
    • Understand the specific pain points of your target users
    • Architect systems for your unique business constraints

    Yet in prompt after prompt, founders are asking AI to make these critical business decisions under the guise of “just coding it up.”

    Consider this common prompt:

    "Build me a SaaS dashboard for a fitness application that helps users track their workouts."

    This sounds reasonable, but it’s missing critical information:

    • What specific metrics do users care about most?
    • How is this different from dozens of existing fitness apps?
    • What unique value proposition will make users choose this solution?
    • Which specific customer segment is this targeting?
    • What business goals does this dashboard need to support?

    AI will happily generate a generic fitness dashboard that looks impressive but solves no specific problem particularly well.

    The Requirements Gap

    The painful truth is that many founders and product creators have a requirements gap: they haven’t clearly defined what problem they’re solving, for whom, and how their solution will uniquely address it.

    When they use AI to generate code without closing this gap first, they’re essentially asking AI to guess at their business strategy – something even the most advanced AI systems cannot do effectively.

    Common symptoms of the requirements gap include:

    • Vague, feature-focused prompts (“Make me a messaging app with a cool UI”)
    • Describing solutions instead of problems (“I need a notification system”)
    • Focusing on tech stack over user needs (“Build it with React and Firebase”)
    • Prioritizing flashy features over core functionality
    • Skipping user research and competitive analysis

    AI magnificently amplifies this gap. It can instantly transform fuzzy thinking into working code, creating the dangerous illusion of progress while building a product no one actually needs.

    Closing the Requirements Gap

    Before you ask AI to write a single line of code, you need to close the requirements gap with these steps:

    1. Define Your Problem Statement

    Create a clear, specific problem statement that answers:

    • What specific pain point are you addressing?
    • Who experiences this pain most acutely?
    • Why haven’t existing solutions fixed it?
    • How will you know when you’ve solved it?

    For example, instead of “a fitness tracking app,” your problem statement might be:

    “Competitive CrossFit athletes struggle to optimize their training because existing apps don’t allow them to track specific movement progressions across complex workout types. Our solution will help these athletes improve performance by providing insights on movement patterns, recovery needs, and programming gaps.”

    That’s something specific enough to build toward.

    2. Create User Personas and Journeys

    Develop detailed profiles of your target users, including:

    • Their specific goals and frustrations
    • Their technical sophistication
    • Their workflow or process before your solution
    • The journey they’ll take through your product

    Map out exactly how users will flow through your application before thinking about code.

    3. Define Success Metrics

    Determine how you’ll measure success, such as:

    • Key user actions that indicate engagement
    • Retention benchmarks at specific intervals
    • Performance requirements (speed, reliability)
    • Business metrics (conversion rate, revenue)

    4. Prioritize Ruthlessly

    For your MVP, focus on the 20% of features that will deliver 80% of the value. Be brutally honest about what’s truly essential versus what’s nice to have.

    Create a prioritized list of features based on:

    • How directly they address your core problem
    • How frequently users will need them
    • How difficult they are to implement
    • How central they are to your unique value proposition

    5. Then Leverage AI

    Once you’ve done this foundational work, AI becomes an incredibly powerful tool. With clear requirements in hand, you can prompt AI much more effectively:

    "I'm building an application for competitive CrossFit athletes to track their training. 
    The core functionality is:
    1. Tracking movement progressions across workout types
    2. Identifying recovery patterns based on performance metrics
    3. Highlighting programming gaps in training cycles
    
    Our user research shows athletes need:
    - Quick data entry during intense training sessions
    - Visual representations of movement progress
    - Correlations between recovery markers and performance
    
    Please help me design a database schema that would support these requirements."

    This type of prompt will generate far more useful and specific code than a vague request for a “fitness tracking app.”

    The AI Requirements Anti-Pattern

    There’s a common objection I hear: “But can’t I just ask AI to help me define my requirements?”

    You can, and it will generate seemingly helpful output. But this creates a dangerous anti-pattern:

    1. You have vague product ideas
    2. AI generates generic requirements based on common patterns
    3. You use those generic requirements to generate generic code
    4. You end up with a generic product that doesn’t solve a specific problem well

    AI is excellent at generating possibilities, but it cannot determine which possibilities matter for your specific business and users. That’s still a uniquely human task.

    First Principles Product Development

    The solution to this problem is a return to first principles of product development:

    1. Problem before solution: Deeply understand the problem space before thinking about features
    2. User-centered design: Build for specific users, not generic use cases
    3. Hypothesis-driven: Treat features as experiments to test clear hypotheses
    4. Iterative validation: Test core assumptions with real users before building
    5. Ruthless prioritization: Focus on the vital few rather than the trivial many

    AI should amplify this process, not replace it. Use AI to:

    • Generate implementation options for well-defined requirements
    • Create test data for validating approaches
    • Refactor and optimize code that serves validated needs
    • Automate repetitive coding tasks

    But never to define what your product should be or what users actually need.

    The Way Forward

    Building successful products in the AI age requires a blend of human insight and AI efficiency:

    1. Start with clear requirements: Do the hard work of defining what your product needs to do and why
    2. Use AI as an implementation accelerator: Once you know what to build, AI can help you build it faster
    3. Validate with real users: No amount of AI-generated code can substitute for actual user feedback
    4. Iterate purposefully: Use what you learn to refine your requirements, then leverage AI to implement changes quickly

    Remember: AI can spit out code, but it doesn’t know what your product needs. That’s still your job – and it’s the most important job in product development.

    In the next post, we’ll explore specific techniques for defining product requirements that even AI can understand and implement effectively.

  • Vibe Coding – Memes Abound!

    Crap code of the week What is Vibe Coding and Why It’s Killing Your Startup Before It Launches [Read more](https://vibekiller.beehiiv.com/p/vibe-coding-memes-abound)

  • What is Vibe Coding and Why It’s Killing Your Startup Before It Launches

    What is Vibe Coding and Why It’s Killing Your Startup Before It Launches

    The Rise of Vibe Coding

    In today’s tech landscape, there’s a dangerous new methodology silently sabotaging startups and side projects alike. Its called Vibe Coding — the practice of blindly asking AI to build your app using vague prompts, it causes hours of endless copy and pasting bugs that you don’t understand and its leaving you open to hacks, crashed, and hidden nightmares all because someone told you AI can replace a developer and it can’t….

    Vibe Coding isn’t just using AI assistants to help you code. It’s what happens when you use these tools as a replacement for understanding core principles. It’s choosing the dopamine hit of “it runs!” over the disciplined approach of “it’s built right.”

    With the explosion of AI coding tools, this problem has reached epidemic proportions. The barrier to entry for creating something that looks legitimate has never been lower. But the gap between a demo that impresses friends and a product that can handle real users has never been wider.

    How to Spot a Vibe Coder (Maybe in the Mirror?)

    Vibe Coders exhibit some telltale behaviors:

    • Architecture? What Architecture? – They dive straight into coding without mapping system relationships, data flows, or scalability considerations – because they don’t even know what those are or that they needed to to that.
    • Version Control is Optional – Git is used as a backup tool, not a collaboration framework (if used at all)
    • Testing is for the Weak – Manual testing consists of “it loaded on my machine”. No thoughts around real QA, Function Tests, Smoke Tests, etc…
    • AI is the Co-Founder – Every decision, from naming variables to database selection, gets outsourced to ChatGPT or Claude.
    • Errors Are Surprises – No logging, no monitoring, and definitely no graceful error handling.
    • Documentation is Tomorrow’s Problem – Which inevitably becomes never’s problem.
    • Constant indecision – You ask to make the button have the word “Submit” on it, AI does that, and adds 300 lines of extra code you didn’t ask for, what does it do? You don’t know because you don’t understand what its doing…

    If you’ve nodded along to any of these, you might be flirting with Vibe Coding yourself. Don’t worry, awareness is the first step to recovery.

    The Real-World Costs

    Let me share a story that’s an amalgamation of several projects I’ve encountered:

    A promising fintech startup secured $500K in pre-seed funding based on a sleek demo built entirely with AI assistance. The interface was beautiful, the pitch deck immaculate. Investors were impressed with how quickly the two non-technical founders had “built” their MVP.

    Three months later, when user numbers hit just 250, the entire system collapsed. What looked like a sophisticated financial platform was actually:

    • A React frontend with no state management
    • API endpoints with zero rate limiting
    • User data stored in plaintext
    • Authentication that could be bypassed by simply changing a URL parameter
    • Database queries that performed full table scans on every request

    The cost to rebuild properly? $350,000 and eight months of development—nearly their entire runway. The startup closed shop before ever getting to market.

    This isn’t rare. I’ve seen variations of this story play out dozens of times in the last year alone.

    The Most Vulnerable Targets

    While anyone can fall into the Vibe Coding trap, certain groups are particularly susceptible:

    1. Non-technical founders who don’t know what they don’t know
    2. Bootcamp graduates who learned syntax but not systems
    3. “Entrepreneur-first” builders who prioritize launching over learning
    4. Solo developers without peers to review their work
    5. Hackathon enthusiasts who’ve only built for 48-hour demos

    The common thread? A focus on short-term output over long-term viability.

    Technology Danger Zones

    Vibe Coding thrives in certain technological environments:

    • Frontend frameworks (React, Vue, etc.) where it’s easy to create impressive UIs that mask backend disasters
    • “Serverless” setups misunderstood as “I don’t need to worry about servers”
    • No-code tools pushed far beyond their intended use cases
    • Firebase/Supabase implementations that ignore security rules and data modeling
    • AI-generated APIs with no consideration for authentication or data validation

    It’s not that these technologies are bad—they’re just particularly easy to misuse in ways that look good until they catastrophically aren’t.

    The Antidote: Principled Development

    So what’s the alternative to Vibe Coding? I call it Principled Development. It means:

    1. Understanding before building – Know how your system will work at scale before writing a line of code
    2. Fundamentals first – Learn database design, security principles, and system architecture
    3. AI as assistant, not architect – Use AI tools to accelerate implementation, not to make critical design decisions
    4. Testing as a lifestyle – Build automated tests alongside features, not as an afterthought
    5. Documentation as you go – Document your decisions and designs as part of the development process

    This approach isn’t slower—it’s sustainable. Yes, the initial velocity might be less impressive, but you won’t hit the wall at scale that Vibe Coders inevitably crash into.

    Start Building Right

    If you’re starting a new project or trying to rescue one from the Vibe Coding abyss, here are three immediate steps:

    1. Document your architecture – Even a simple diagram of how your components interact will reveal potential issues
    2. Implement basic monitoring – You can’t fix what you can’t see breaking
    3. Start testing critical paths – Focus on the user journeys that would kill your business if they failed

    In the coming weeks, I’ll be sharing more detailed guides on each of these steps, along with case studies of projects that transitioned from Vibe Coding to Principled Development.

    Building right isn’t just about technical purity—it’s about business survival. In a world where anyone can create a functioning demo, the companies that thrive will be those built on solid technical foundations.

    Are you ready to move beyond the vibes?


  • AI Image Generation has just Leveled Up

    🎨 ChatGPT Just Got a Vision Upgrade: Say Hello to On-Demand Image Creation

    You asked for it. OpenAI delivered. ChatGPT can now generate, edit, and remix images—without needing a third-party design tool or hours in Photoshop. Whether you’re building a brand, creating marketing material, or just vibing on creative chaos, it’s now as simple as typing what you want.

    🔧 What Can It Do?

    • Generate images from text prompts: Describe a scene—get the image. Hyper-realistic photos, logos, vintage posters, cinematic vibes—you name it.
    • Edit existing images: Want to add glitter text to your casino chips photo? Done. Remove background junk? Say the word.
    • Style control: From 60s psychedelic to cyberpunk noir to clean, ADA-compliant branding. You get what you ask for.
    • Photorealism or stylization: Whether you want studio-grade lighting or sketchbook-style concept art, ChatGPT can do both.

    💡 Real-World Uses

    • Marketers & Agencies: Create campaign visuals in seconds.
    • Web Devs & App Designers: Auto-generate assets for mockups or production.
    • Educators & Content Creators: Bring ideas to life visually, without needing a designer.
    • Side Hustlers: Product shots, logos, social ads—you’re no longer bottlenecked by Canva.


    1. Core Structure of a Killer Image Prompt

    Break prompts into parts:

    [Subject] + [Setting/Scene] + [Style] + [Lighting] + [Camera/Composition] + [Mood/Emotion] + [Post-Processing]

    Think of it like giving direction to an AI creative team. The more detail, the better the result.


    🧠 2. What You Can Ask For

    ✅ SUBJECTS

    • A woman with lavender hair sipping coffee
    • A 60s psychedelic mushroom poster
    • A cyberpunk alley with neon signs
    • A photorealistic hamburger with melting cheese

    Use modifiers: age, ethnicity, outfit, mood, pose, facial expression

    ✅ SCENES

    • Inside a cozy cabin during a snowstorm
    • A futuristic Tokyo street at night
    • A retro American diner at sunrise
    • A pirate ship in a stormy sea

    ✅ STYLES

    • Photorealistic
    • Hyper-realistic
    • Comic book / Ink drawing
    • 60s/70s Psychedelic poster
    • Watercolor / Oil painting
    • Concept art / Matte painting
    • Line art / Sketch
    • Low poly / Pixel art
    • Vaporwave / Cyberpunk / Steampunk
    • Brutalist / Minimalist / Maximalist

    ✅ LIGHTING

    • Soft diffused light
    • Cinematic lighting
    • Backlit silhouette
    • Neon glow
    • Golden hour / Sunset light
    • Studio lighting with shadows
    • Rim lighting

    ✅ CAMERA COMPOSITION

    • Shot on 35mm film
    • Shallow depth of field
    • Close-up / Macro shot
    • Wide-angle / Bird’s-eye view / Low angle
    • Over-the-shoulder
    • Bokeh background
    • Rule of thirds / Symmetry / Centered

    ✅ MOOD / VIBES

    • Introspective
    • Joyful
    • Trippy
    • Mysterious
    • Surreal
    • Cozy
    • Tense / High-stakes

    ✅ POST-PROCESSING / FINISHES

    • Film grain
    • High contrast
    • Color graded like Blade Runner
    • Washed-out tones
    • Glitch effect / VHS
    • Embossed on kraft paper
    • ADA-compliant text overlay
    • Vintage print texture

    🛠️ 3. Functional Prompts (Logos, Marketing, Product)

    • A clean logo embossed on recycled paper, realistic lighting
    • A “SALE” banner with glitter text on a white background
    • A modern app UI mockup, dark mode, minimal layout
    • A luxury skincare product on marble with soft shadows

    🎨 4. Design-Smart Extras You Can Request

    • “Make the font ADA compliant”
    • “Add depth of field and lens blur”
    • “Use bold serif typography”
    • “Give it a handmade, silkscreen print vibe”
    • “Add sparkles around the title”
    • “Use pastel tones and soft gradients”
    • “Make it print-ready with high resolution”

    🧪 5. Advanced Techniques

    • Image editing: Upload an image and say:
      “Add neon lights in the background”
      “Replace the text with ‘Summer Sale’ in the same style”
    • Variations:
      “Give me 3 variations of this with different lighting”
      “Same poster, but with a cat instead of a dog”
    • Brand matching:
      “Design a banner using the colors and style of the Apple website”

    🚀 6. Prompt Examples You Can Steal

    “A neon-lit sushi bar in a rainy alley, cyberpunk Tokyo, cinematic lighting, photorealistic, 35mm film grain, dramatic shadows, puddle reflections.”

    “A 60s psychedelic mushroom poster with the text ‘Great Day’, bold warped typography, vibrant warm tones, thick outlines, vintage screen-print style.”

    “Photorealistic studio shot of poker chips, dice, and cards on a green felt table, shallow depth of field, with gold glitter text saying ‘Win The Game’, ADA-compliant font.”

  • CEOs that love AI are out of touch

    CEOs that love AI are out of touch

    Chris Sacca recently said on The Time Ferriss Show that developers are useless because you can “Just tell AI to build me an app” and it will just work.

    Like some magical fariy that comes and grants wishes…

    Bullshit….

    Chris may have found out how financial systems work because he has way more money than I do, but one thing he doesn’t know… AI..

    Most people don’t actually. YouTube is filled with last months “Crypto Bros” now telling you to “Make an AI agency” and you can “Make millions of dollars, just like them”…. also more Bullshit…

    This is not a criticism on what AI can do, this is a critical observation on people that are over hyping a technology all for sensationalism and to get your YouTube clicks.

    What AI Can Do

    A lot actually.

    Smoky scent lingers,
    Sweet tang dances on the tongue,
    Bones sing of delight.

    A BBQ Rib Hiku that ChatGPT wrote for this.

    Its also responsible for the featured image of this post and many other things. Its great at language as well.

    It can be used for code, I use it all the time. But its no better than a JR dev that has memorized the syntax but doesn’t understand the real world context of software architecture and application flow.

    Its not a magic wand

    If you want AI to build an app, you need to take the time to think through everything. I spent 3 months one time going through every use case, all the workflows, etc. Building all the ideas and state flow diagrams, charts, etc. Just like you cant ask a dev on your team to “Build the whole project on you own” you can ask AI that either. Context windows are too small. I tried to have ai build a landing page, that worked great, until I asked to to change the theme of the page, styles only, but instead, it decided that the navigation shouldn’t exist any more. Then when you ask it to restore the nav, it will but now your footer is gone.

    If you want AI to build anything, you need to know how to be specific about what you ask for, with all the details, and conditions. You don’t say “build a login” you say

    “We are making a login page with full database communications. the username is an email address that should be valid, the password needs to be min 6 chars with letters, numbers, and special characters. We need to give the user 5 attempts. if the auth fails, report the error. use modern styles that are mobile responsive. We should also make sure that the form is fully accessible. “

    But that’s it, just focus on one part at a time, then move on to the next part. you do this over and over for days because of all the bugs it generates.

    Will it happen one day

    Yes, but that day is not in 2025… even with how fast it’s accelerating and o1 and deepseek’s reasoning. It’s still no where near as good as a dev with experience.

  • A Thought on Fact Checkers

    A Thought on Fact Checkers

    This is going to sound odd, but I really like the way The “Dot Collector” is described in Ray Dalio’s book, “Principals” I really want to reverse engineer that software… https://principlesus.com/dot-collector-real-time-feedback/

    TLDR; real time feedback on all people that participate with no “judgement”

    So here is a perfect example with something very relevant. Elon Musk and what he just did on Monday. THIS IS AN EXAMPLE OF A SYSTEM NOT A DEBATE ON WHAT WAS DONE, DON’T BRING UP SHIT THAT DOESNT BELONG IN THIS POST.

    There are 3 major objective views:

    A: He is a fascist and he put it right out there for you to see.

    B: As a diagnosed Autistic, he was overwhelmed with emotion and was “Stimming”

    C: He did a motion of “From my hart to you” as seen by many other people and he is being attacked just because of what side of the political isle he is on.


    I ‘m not giving an opinion on this action but this is a perfect example for what the Dot Collector does, It takes an overall heat map of everyone’s view of the statement along with the history of the statement allowing you to know if an comment is biased.

    So, in said example, you have 100 people comment on your statement, Lets say you choose “A” above. out of the 100 people, 75 give a positive agreement towards it, 15 Meh, 10 strong negative. In this scenario, you can see that most people agree with your statement, and you can check the history of the 75 (or have some number score for congruency) so you know if they always lean in a direction or if they are all over the place.

    This gives you 2 vital KPIs. how was the current statement taken, and what is your audience look like.

    As an example, I am on almost all platforms because I like to take in all sides of events before forming my own opinion, so I am on FB, Inst, Snap, Reddit, Tik, Truth, Rumble, X, BSky, Linkedin, Nextdoor, Alignable, and yes even Rednote (and I know that I am giving data to the CPP)


    so Statement “A” gets celebrated on FB, Insta, BSky. It’s Meh on Snap, Reddit, and Tiktok because those are more personal in their algos. it is negative on X, Truth, and Rumble. It has no place on Link, Next, and Align.

    While “B” and “C” would be flipped 180 from “A”. because of how polarized everything is. So, with an observation like I just made, you can get a sense if you have a heavy, Left or Right demographic based on the vote histories of everyone involved in a comment.


    I picked this example because I don’t think we can truly know what is going on. but I would want to lean on my own critical thinking and not have a “fact checker” that is really a right or left wing nut job deciding something is true or not because it might make them “feel bad”…

    I am always for a true meritocracy (the best ideas win) and not allow personal bias to sway if something is actually a fact.

    Another undisputable fact that this would have helped with: Ivermectin. This will sound “Maga” and I’m not that at all, this pure fact you can look up. Ivermectin has been in use for well over 50 years, with more than 1 billion treatment cases. It’s inventor won a Nobel Prize because of it. During 2020 when the GOV wanted to use Emergency Use Authorization, a clause is that there can be no other available drug for treating something in order to earn that classification. So it was vilified, people called it a Horse de-wormer etc,. a few years after that, it was quietly restored to the CDC’s list of recommended treatments, and is one of the preferred methods of treatment.

    Now, in a biased “Fact checking” scenario, any time before 2019 if you talked about Ivermectin, it was used for snake byte treatments, and many other things, no one would have checked you. then in 2020 its existence threatened the EUA so it was attacked, you were marked as “Misinformation” or blocked, or shadow ban for saying other wise. and in 2024, it was put back in place as a “Good option” and you are no longer fact checked on it… That is political manipulation at work and no matter how you feel about the recommended treatment, if you wanted it and the boosters or if you this it’s “5g” or something else crazy you should be allowed to make your own choice.

    In a Dot Collection world, you get a heat map like above… you see that there are sources on one side with one view and sources on the other side with the opposite view and a few in between, then as a rational, critically thinking adult, you decide if you want the new thing you are being suggested, you if you want to take a thing that has been around for years. It lets you look past the bots and heavy political opinions and lets you decide for your self.