I built a personality test based on the five elements (Wood, Fire, Earth, Metal, Water) combined with yin-yang energy, giving 10 possible types.
The test is free, 20 questions, takes about 3 minutes. No sign-up, no email gate.
Tech stack: Next.js (App Router + React Server Components), Cloudflare Pages + Workers, Supabase for purchase records. Heavily optimized for Core Web Vitals — LCP under 1s, minimal JS on the server-rendered pages.
A few decisions I made along the way:
- SSR for all content pages (SEO), client components only where interaction is needed
- Migrated from Vercel to Cloudflare for cost and edge performance
- Local fonts instead of Google Fonts to cut render-blocking requests
- Code-split below-fold components to reduce TBT
The free result gives you your core type. There's an optional paid report ($7.99) for deeper insights — that's the only monetization. No ads, no data selling.
Would appreciate any feedback on the experience or the tech choices.
https://fiveelementstest.com