Vibe-checking vibe-coding platforms w/Gemini 3
With Gemini 3 out, I decided to put a few vibe-coding services through the paces.
With Gemini 3 out, I decided to put a few vibe-coding services through the paces. I tested the exact same prompt on all of them.
I want to build an app that helps me plan my day. My tasks for the day can be pulled from 3 key sources:
- Gmail (only primary inbox)
- Calendar
- Todoist (overdue, today’s tasks, and unscheduled tasks)
I want to be able to see:
- What I need to get done today
- and an easy way to drag and drop these tasks into different slots on my calendar (think agenda view)
I should also be able to mark these things as done easily, or snooze to another day.
The goal is the user first sets these up. Then every day they see these listed out and can schedule them in their day, or snooze to another day.
Results
🥇 Replit
Replit just announced a new Design mode which, it turns out, puts it a mile in front of everyone else. Not just the visuals, but the interactions were so much better too.
Watch the original video on Substack ↗
🥈 Google AI Studio
I should note that some of the interactions here (like multi-columns when overlapping) came from refining afterwards, but overall the visuals and feature set are from the first try and worked decently. Obvious win to take to Github from here and continue working on it on your own.
Watch the original video on Substack ↗
🥉 Lovable
For some reason started with a landing page which gives a very “This is obviously AI-generated SaaS” vibe. Functional for the most parts and design-wise a tad better than AI Studio. But has this weird issue where a task disappears if you schedule another over it. Also, did not automatically put calendar events in the agenda.
Watch the original video on Substack ↗
Others tested
Firebase Studio
Schedule has only 7AMs on it, and put some random photo in the profile photo in the corner (LMAO).

v0 by Vercel
Decent enough design but scheduling functionality didn’t work: can’t drag and drop events in, or reschedule anything, or mark them as done.

Bolt.new
Provided a sign in/sign up page, followed by connectors to the services. The connectors don’t work, so couldn’t test anything.
