Last Saturday morning I had an idea for a personality quiz app. Not one of those BuzzFeed "which bread are you" things. Something that actually combines multiple self-discovery frameworks into one written portrait. By Sunday evening it was live on a custom domain with analytics, a database, and real users hitting it.
The product is Origin Of You: five personality systems, 120+ data points, one AI-generated portrait at the end. I built it with Lovable, React, and Supabase. Here's what that actually looked like.
What Lovable handled without me touching code
Lovable is an AI app builder. You describe what you want, it generates a full React + Vite + Tailwind app. I've shipped about a dozen products through it at Inithouse so I know what to expect.
For Origin Of You, the stuff that came free:
React Router with proper client-side routing. Each of the five "systems" (think: personality dimensions) got its own flow, and Lovable set up the routes without me asking. No manual route config.
Responsive layout. I described the quiz UI once. Mobile, tablet, desktop all worked on first deploy. Tailwind utility classes, nothing custom.
Google Fonts integration. I wanted a serif/sans pairing (Cormorant Garamond + Inter) for that "journal" feel. One prompt, done.
OG image and meta tags. Social sharing cards were generated and wired into the HTML head. I didn't write a single meta tag by hand.
Supabase connection. Lovable scaffolded the client, the auth flow, and the database queries. I described the schema in plain language ("I need a table for quiz responses with columns for each system score and the final portrait text") and it created the migration.
Where I had to do real work
Custom domain setup. Lovable gives you a *.lovable.app\ preview URL. Getting originofyou.com\ pointed at it required DNS config, SSL verification, and about 45 minutes of waiting for propagation. Not hard, but not automated either.
GA4 and Clarity. Lovable doesn't set up analytics for you. I had to manually add the GA4 snippet and Microsoft Clarity tracking code. Copy-paste into index.html\, then verify both dashboards were receiving hits. Maybe 20 minutes total, but you can't skip it if you want any data on what users actually do.
The AI portrait generation. This is the core feature: after the user completes all five systems, the app sends their scores to an AI endpoint that writes a personalized portrait. Lovable can't design that prompt for you. I spent most of Sunday afternoon iterating on the system prompt, testing edge cases (what if someone scores extreme on everything?), and tuning the output length. The prompt engineering was easily 60% of the weekend's work.
Content and copy. Lovable generates placeholder text. Every heading, every description for each personality system, every CTA: I rewrote all of it. The app has maybe 3,000 words of copy and none of it came from the builder.
Cost, time, and what I'd change
About 14 hours total across the weekend. Three on Lovable prompting, two on infrastructure (domain, analytics, Supabase schema), eight on content and the AI portrait prompt, one on testing. Cost: Lovable subscription I already had, Supabase free tier, $12 for the domain. That's it.
First week brought 35 visitors. Basically me and friends testing. But the thing works end to end, and now I can point ads or content at it. That's the whole point of a weekend build.
If I did it again: I wouldn't fight the AI builder. I wasted two hours early on trying to get Lovable to match my exact component hierarchy. Let it generate, adjust after. It's right 80% of the time. I'd also set up GA4 before the first deploy (lost early visitor data because I added it Sunday morning). And I'd timebox prompt engineering harder. Eight hours for an MVP prompt is too much. Ship "good enough," iterate on real feedback.
Weekend MVPs aren't about getting it perfect. They're about finding out if anyone cares.
Top comments (2)
Hi Jakub, thanks for your article!
Shipping in 14 hours is solid. The lesson about not fighting the AI builder is valuable. Most people burn time trying to make the generated code perfect instead of just adjusting after.
I'm just curious about the Supabase schema. Are you storing the 120+ data points as a JSONB blob for each user or normalizing them into separate columns?
Some comments may only be visible to logged-in visitors. Sign in to view all comments.