No time to vibe code? Try this instead.
Scheduling posts on X sucks, so I vibe coded a fix. Vibe Coding 101: fix what bugs you. Learn product sense & AI skills in the process.
Last week, I spoke on a panel at the University of Toronto about AI careers, covering everything from how to learn AI to preparing for a future in the field.
My biggest advice to MBA and Masters of Analytics students was simple: get hands on with AI.
But since then, I’ve been thinking more about what “hands on” really means.
Because the reality is, not everyone has the time (or the technical skills) to spin up a full-blown vibe coded app.
And if you’ve ever felt that way or are feeling the AI-overwhelm, you’re not alone:
LinkedIn Research found:
✔️ 51% of professionals say learning AI feels like another job
✔️ 82% increase in people posting on LinkedIn about feeling overwhelmed and navigating change this year
✔️ 33% of professionals feel embarrassed by how little they understand AI
But here’s the reality:
we’re all figuring this out as we go.
So in today’s post, I wanted to share a bite-sized, practical way for product builders to sharpen your AI instincts, without spending the entire weekend in an AI-rabbit hole.
✨ Practicing Vibe Coding on Existing Products
One of the easiest ways to level up your product sense and AI skills is by vibe coding enhancements on products that already exist.
Why this works:
You’re working inside the constraints of a real system and product, which is more realistic for most Product Builders.
You can apply your PM brain to assess the business value, user friction, and impact of enhancements.
Fixing X/Twitter’s Post Scheduler
Scheduling posts on X sucks, so I vibe coded a feature enhancement.
The Problem
Right now, scheduling a post on X is painful.
It defaults to a full week ahead…why? Who knows.
It never saves my previously scheduled post times.
There are no smart suggestions for when to schedule.
There’s 5 drop-down menus for each input field (month, day, year, hour, minute, AM/PM) so scheduling posts takes…forever.
The result?
Many users (myself included) post less often.
Or they just accept the friction and power through.
Personally, I’ve stopped scheduling entirely, I’d rather post in the moment than fight with this UI.
A Simple Vibe Coding Workflow
Pick a product you use daily, or your own product. Identify one small, clunky flow.
Write down the problem, describe potential solutions.
Prompt ChatGPT (or your LLM of choice) to build a Lovable/v0 prompt.
Refine the prompt and feed it into Lovable / v0 / Bolt / Figma Make / Replit, or any other vibe coding tool of your choice.
Add screenshots of the existing product to your prompt for design reference.
Iterate on the chat UI until the output feels native to the product.
Test with customers. Iterate more.
Here’s the exact prompt I used for the X post scheduler:
“Design a new Scheduled Post flow that feels native to X and aligned with its style guidelines. The concept should: Replace the “random week away” default with the nearest smart time recommendation. And make a more user-friendly date picker. Surface 2–3 recommended posting windows (e.g., next 24 hours and next 7 days) based on: Follower activity patterns. Historical engagement from past posts. Broader X engagement trends. Provide a simple manual override for full control. Include a feedback loop: “This post performed X% better than your average post at other times.” Provide 2-3 smart recommendations, 4 quick options (1 hour, today at 10 am, today at 2 pm, tomorrow at 9 am), and a simple date picker for choose specific date & time. The options should be in one consolidated modal instead of multiple tabs.”
The Results
Using a mix of vibe coding tools, here’s how I reimagined the flow:
Smart Suggestions → System recommends 2–3 optimal posting windows based on past engagement + follower activity.
Quick Options → 4 large, tappable buttons for common times (e.g., “in 1 hour,” “today at 2PM”).
Better Date Picker → A single calendar and time input field instead of five drop-downs.
It’s not a massive overhaul, but it’s a constrained enough problem that I could experiment across different tools until I landed on something that felt right.
Here is the sample of the prototype I created in v0.
Are there still some wonky UI things? Yes. But it’s enough to communicate the idea across and start testing with customers.
✅ My favourite feature is the “Quick options” buttons: fast, tappable, and practical. Nikita Bier please build this!
✅ Leveraging X’s own data for “best time to post” insights based on the user’s followers and past post’s performance makes the feature smarter.
✅ Finally, A consolidated date picker removed the biggest source of friction.
I built the prototype in v0, but I also tested a bunch of other tools:
Figma Make → Best for reconstructing X’s design system from a screenshot. Surprisingly creative UI ideas.
Lovable → Was great a few months ago, but the new token system limits you to just 2–3 iterations on the free plan.
v0 → My top pick: generous free tier, flexible design settings, and scale-friendly tweaks.
Should you vibe code at work?
The question I hear most from Product Managers:
“Should I start vibe coding in my day job?”
My take:
Existing Products → Yes, but use this sparingly. Use vibe coding to quickly prototype and validate with customers, before asking your design team to invest in exploring the best UX to solve the problem.
New Products → Definitely, but proceed with caution. It’s one of the fastest ways to take fuzzy ideas and put them into a tangible form you can test and validate viability with customers. Read this post to not alienate your team in the process.
The key is to use vibe coding for fast cycles of learning and validation, not as a replacement for your design or engineering team’s craft.
Final Thoughts
👉 If you’re new to vibe coding, start small. Pick one flow in a product you use every day and reimagine it. You’ll sharpen your AI builder skills faster than you think.
💬 I’d love to know: How are you getting hands-on?
PMs: Before you vibe code, read this.
Early product prototypes (like this one from Twitter) used to look like this: