You know that feeling when you think you have a great app idea, but the thought of months of development makes you shy away? Yeah, that was me three weeks ago. Then I booted up Claude Code, and everything changed.
The Idea That Almost Wasn’t
A few weeks ago, I stopped by Home Depot at 8AM for a plumbing part. I normally like lingering in hardware stores, but this time was different. That’s because the house music — a death-metal rage-fest where I couldn’t even make out the words — was really loud. (Did I mention it was 8AM?) So, I quickly located my part, and made a bee-line for checkout.

On the way home, I started wondering about all the other people visiting the store that day who might have felt the same.
And also, I asked myself why I didn’t say anything to anyone. And clearly, people before me hadn’t, either. I didn’t want to “find a manager,” because really, it was just an annoyance. It’s embarassing to complain about something so trivial. I didn’t want to say anything to the cashier at checkout, because maybe he was the one who chose the music. He seemed to be enjoying it.
But I wondered if the simple feedback from me and probably dozens of other customers that morning — “hey, I probably would have purchased four or five more things, but the music was giving me a headache” — would ever get to the store’s manager. Had there been an easy, conflict-free (or embarrassment-free) way to provide feedback directly to the floor manager or store owner, I totally would have done so. I even looked for a QR code on the exit doors on my way out; didn’t find one.
And no — I don’t want to write a nasty 1-star review on Google; there are times I simply want to suggest ways I might have been tempted to return, or spend more. I wasn’t out to penalize anyone. And I certainly don’t want to do the research to find an email address or phone number; I’m trying to do them a favor.
On the way home, I came up with an idea for a self-serve Software as a Service feedback platform. The concept was simple: businesses need better ways to collect customer feedback, and QR codes are everywhere now.
Yet piecing together such a mobile-friendly, AI-powered feedback system requires creating a form/survey, making it look great on mobile, perhaps putting analytics there, and even synthesizing/summarizing free-form text feedback.
So, why not combine them in an easy-to-use platform? Create surveys (polls), generate QR codes, get a ready-to-print PDF (or sticker) for them, collect responses, and summarize regularly with AI. Why not use AI sentiment analysis to present alerts to store owners about what’s working and what needs improvement? Easy, right?
The more I thought about it, the more use-cases I could envision. Delivery feedback. QR codes to join mailing lists or waiting lists. QR codes for more product information. And much more.
But then reality hit. I’d need user authentication, database design, payment processing, responsive UI, QR code generation, analytics dashboards, perhaps webhooks so people could integrate Slack or email marketing platforms, some basic AI sentiment analysis back-end stuff… The scope creep was real before I even started.
That’s when I decided to try something different. Instead of planning everything to death and going File > New Project and re-scaffolding everything out day-by-day, I’d just start “vibe-coding” with Claude Code, and see where it took me.
What is Vibe-Coding?
Vibe-coding refers to the use of AI agents to scaffold out code based upon prompts. By now, we’ve all used ChatGPT, and “vibe coding” is kind of like telling the AI what kind of code you want to build, and watching as it does so, dynamically tweaking as you go.
“Vibe” is also that magical development flow where you’re not overthinking the architecture or getting bogged down in perfect code. You’re just vibing with the problem, letting the solution emerge naturally, and iterating fast. It’s like pair programming, but your pair happens to be an AI which can do things (like write code) which never gets tired, knows a ton of scaffolding and problem-solving patterns, and has infinite patience for your half-baked ideas.
Now, I’m a pretty experienced developer, particularly for websites and back-end services. And more than a dozen times during the process, I spotted several things that were going a bit sideways in the generated code, or the back-end schema, or API design, and pressed ESC to stop it. So it’s very helpful to know the underlying LEGO building blocks being used (in this case, Node.js, Next.js, Typescript, Supabase, Tailwind CSS, and Stripe.) And luckily I can call upon a fairly extensive set of experience with these things, so I know what looks right and what “smells bad.”
You do frequently need to know the right ways to phrase things for the best results. For these reasons, I wouldn’t recommend “vibe-coding” to everyone or every circumstance. Though it might seem an ideal way to start, I don’t think I’d recommend it; far better to learn tutorials and build small projects first.
This application was greenfield (i.e., brand new), and pretty well-scoped. I knew what I wanted to see, and how I wanted the architecture to look, and what some common pitfalls were, and that was enormously helpful to productivity.
Week 1: The Foundation Takes Shape
Day 1-2: “Let’s just get something on screen”
I started by describing my vision to Claude Code: “I want to build a platform where people can create polls and generate QR codes for them.” Within minutes, we had a basic React app with a simple poll creation form.
$ claude-code "Create a basic poll creation interface"
Claude Code generated the initial React components, set up routing, and even suggested using Tailwind for styling, which I’m used to. I would have chosen NextJS and Tailwind anyway, but that’s what Claude decided to use. I also told it I wanted to use Supabase.io for the back-end.
Day 3-4: “This needs to actually work”
The frontend was cute, but useless without a backend. I described what I needed:
“I need to store polls in a database, generate unique QR codes for each poll, and serve a response page when people scan the codes.”
I told it I wanted to use Supabase, and very high quality database schemas, route handlers, QR code generation using the qrcode
library – it all just materialized.
Day 5-7: “People need to log in and stuff”
Authentication always feels like a pain, but Claude Code made it surprisingly smooth. We implemented JWT-based auth, user registration, and protected routes. The AI even suggested using bcrypt for password hashing and implemented proper middleware for route protection.
The best part? When I said “I want users to only see their own polls,” Claude Code immediately understood the need for user-scoped queries and updated all the database calls accordingly. This sentiment analysis report was generated with minimal programmer intervention:

Week 2: From MVP to Actually Useful
Day 8-10: “Let’s make this pretty”
With the core functionality working, it was time to make PollQR.com actually look like a real product. I described the vibe I wanted: “Clean, modern, professional but not boring.”
Claude Code suggested component improvements, helped implement a proper design system, and even created responsive layouts that worked perfectly on mobile. The AI’s suggestions for UI improvements were spot-on – it’s like having a designer who also codes.
Day 11-12: “Analytics would be nice”
Real-time response tracking felt essential. I asked Claude Code to add analytics capabilities, and it generated:
- Real-time response counting
- Response visualization with Chart.js
- Export functionality for poll data
- A clean analytics dashboard
Day 13-14: “Time to make money”
Adding Stripe integration for payments is a bit of a hassle (as great as Stripe documentation is), but Claude Code walked me through the entire process. Subscription plans, webhook handling, usage limits – everything I needed for a proper SaaS business model.
The Vibe-Coding Difference
What made this experience so different from traditional development?
Conversational Development: Instead of googling “how to implement JWT auth with Supabase,” I just described what I needed. Claude Code didn’t just give me code snippets – it gave me complete, integrated solutions.
Instant Iteration: “Actually, let’s make the poll creation form a modal instead.” Two minutes later, done. No mental overhead of refactoring, no breaking changes to worry about.
Smart Suggestions: Claude Code often anticipated needs I hadn’t even thought of. “You might want to add rate limiting to your API” – yes, actually, I do.
No Context Switching: Everything happened in the terminal. No jumping between documentation sites, Stack Overflow, or different tools. Just me, my editor, and Claude Code in a continuous flow state.
The Results
Two weeks later, PollQR.com launched with:
- Complete user authentication system
- A simple, free, QR Code Generator
- Notifications by email (which you can turn on or off) as reviews come in
- Intuitive survey creation interface, with several custom templates (e.g., Follow us on social media, list collection, surveys with a textbox for free-form feedback, etc.)
- Mobile-friendly, professional entry forms
- Net Promoter Score(tm) Surveys and scores (Detractors, Promoters, etc.), automatically nudging your social media review sites like Google Reviews, Yelp Reviews, etc. for those customers who love your store/cafe/restaurant experience
- QR code generation and management
- Analytics dashboard: track the number of times your QR codes are scanned, redirect the links to places dynamically (so you don’t have to take down those stickers if you simply want to change where they point to)
- Avery(tm) templates for printing QR codes
- Downloadable QR codes in PNG format
- Stripe payment integration
The best part? The code is clean, well-structured, and maintainable. This isn’t a hacky prototype – it’s a legitimate SaaS product ready for real users.
Lessons from the Vibe
Know the basics: It’s tremendously helpful to know what the building blocks do and what the best-practice coding patterns are. Don’t just let Claude choose its favorite solution; it’s not always correct. Don’t be afraid to press ESC and interrupt the process.
Use version control: It is essential to be able to backtrack from bad ideas, far moreso than 100% human coding. Github, of course, is my recommended version control system here.
Start with the vibe, not the plan: Having a rough direction was more valuable than a detailed specification. The product evolved naturally as we built it.
AI pair programming is the future: Claude Code isn’t just a code generator – it’s a thoughtful development partner that understands context and suggests improvements.
Ship fast, iterate faster: Two weeks from idea to launch would have been impossible with traditional development. Vibe-coding let me stay in flow state and focus on building, not planning.
The tools are ready: We’re at an inflection point where AI-assisted development isn’t just possible – it’s better than going solo.
What’s Next?
PollQR.com is live, but this is just the beginning. The real magic isn’t that I built something quickly – it’s that vibe-coding with Claude Code made development fun again. There are probably a few other projects that can be spun-up while still keeping this platform (which is largely self-service) growing.
If you have an idea that’s been sitting in your backlog because it feels too big or complex, maybe it’s time to start vibe-coding. You might be surprised what you can build in a couple of weeks.
Give It a Whirl. It’s free to try, no credit card required.
Do you run a local business? A cafe? Store? Restaurant? Gym? I’d love to get your feedback on PollQR. It’s totally free to try — no credit card required. You can create a QR code based survey, print out the codes as stickers, and get feedback within minutes. Your first survey and first 100 responses are completely free. (After that, it’s just $29/mo or $240/year.) You’ll get an analysis dashboard like the one above, where you can better hear what customers are telling you. And you’ll get more 5-star reviews.
Ready to see what vibe-coding can create? Check out PollQR.com and experience the future of customer feedback collection. Who knows? Maybe it’ll inspire your next two-week build.
PollQR.com: Born from good vibes and great code. Built in two weeks, powered by Claude Code.