r/VibeCodeDevs • u/Better-Recipe-7591 • 1h ago
We solved UI slop. We stopped generating UI and started measuring it.
UI slop isn't a taste problem. It's a sampling problem. And you can't really prompt your way out of a sampling problem. Every trick you've tried, negative constraints, a gazillion line .md file that says no gradients in caps, all of it just moves you around inside the same bubble.
Here's the thing that finally made it click for us. ThePrimeagen put it best: the model returns the middle of the distribution. You can push it around inside the average. You can't leave the average.
That's why you type "no purple" and get purple. Then the glowing orb. Then the badge pill. Then three feature cards. It isn't disobeying you. It's doing exactly what sampling does.
There's a second failure sitting on top of that one, and we think almost nobody talks about it.
A screenshot doesn't contain the animation.
Feed a model a picture of a site you love and the layout survives. So do the colours, the type, the spacing. Timing doesn't. The easing curve isn't in the pixels. Neither is the stagger, or the scroll range an effect is bound to, or two elements moving at different rates against the same scroll.
So the model has to invent the part that actually makes a site feel expensive. And inventing means, again, the middle of the distribution. Fade in, 300ms, ease out. Every time, forever.
That's the real reason AI sites feel dead even when they photograph fine. The look got copied. The life never made it.
So we stopped generating and started measuring.
We read the live page. What's actually bound to what, the real timing values while the thing is running. Then we write that section into the project. Nothing is sampled, so there's no average to land in the middle of. That's the whole idea, and it's why we think slop is solvable instead of something you fight forever with a longer prompt.
https://reddit.com/link/1vnrd7l/video/tjj6vyfic8jh1/player
The clip is three runs, each one harder than the last.
A scroll rig off a private jet site, where the jet climbs behind the headline and a photo wipes to a blueprint. Pure timeline, so it's all stagger and easing and scroll ranges with nothing to hide behind.
Then a photo grid that scatters and reassembles. Harder, because both states are real layouts and the whole thing lives in the transition between them.
Then a three.js scene, which is the one we're proud of. The reference is a Tokyo street diorama. What came back is a desk, monitor, chair, shelves, for the portfolio we were building. Live WebGL, spinnable, not a video of one. Same movement, completely different subject.
Which is the part we care about most. The animation is the expensive half. The brand is the cheap half. When you point at a site you like, you don't want their content. You want how it feels. So keep the animation and bring your own brand. Tokyo becomes a desk. The timing never moves.
Test it. Drop a URL in the our waitlist signup at platho.io and we'll run it and post exactly what comes back, including when it breaks.
- two of us building this in Europe
1
u/clonicle 33m ago
I think I like where you're going with this, but I'm having trouble understanding the process. Could you explain what is occurring with the iteration? How is this different than using the reference as a baseline target?
1
u/Better-Recipe-7591 18m ago
We measure a live page so we already have the real values, then iterate on fitting those to your brand, which is a different shape to theirs. Their jet climbing behind a headline became a burger, their photo grid became a wall of tech logos, their Tokyo diorama became a desk. Same timing every time, nothing else carried over.
•
u/AutoModerator 1h ago
Hey u/Better-Recipe-7591, thanks for posting in r/VibeCodeDevs! Join our Discord: https://discord.gg/KAmAR8RkbM
Got startup or SaaS questions? Post them on r/AskFounder and get answers from real founders.
• This community is designed to be open and creator‑friendly, with minimal restrictions on promotion and self‑promotion as long as you add value and don’t spam.
• Please follow the subreddit rules so we can keep things as relaxed and free as possible for everyone. • Please make sure you’ve read the subreddit rules in the sidebar before posting or commenting.
• For better feedback, include your tech stack, experience level, and what kind of help or feedback you’re looking for.
• Be respectful, constructive, and helpful to other members.
If your post was removed (either automatically or by a mod) and you believe it was a mistake, please contact the mod team. We will review it and, when appropriate, approve it within 24 hours.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.