// === WaitlistForm.jsx === // Waitlist form — submits email to Formspree. // Replace FORMSPREE_ID with your form ID from formspree.io/register // e.g. if your endpoint is https://formspree.io/f/xabc1234 → set FORMSPREE_ID = 'xabc1234' const FORMSPREE_ID = 'xojywqow'; const FORMSPREE_URL = 'https://formspree.io/f/' + FORMSPREE_ID; const WaitlistForm = ({ size = 'md', dark = false, fullWidth = false, quizAnswers = null }) => { const [email, setEmail] = React.useState(''); const [state, setState] = React.useState('idle'); // idle | submitting | success | error const isBig = size === 'lg'; const inputPad = isBig ? '18px 20px' : '14px 16px'; const btnPad = isBig ? '18px 26px' : '14px 22px'; const fontSize = isBig ? 16 : 15; const submit = (e) => { e.preventDefault(); if (!email.includes('@')) return; setState('submitting'); const payload = { email, source: 'US waitlist — coming soon page', }; if (quizAnswers) { payload.quiz_q1 = quizAnswers[0]; payload.quiz_q2 = quizAnswers[1]; } fetch(FORMSPREE_URL, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(payload), }) .then(function(res) { setState(res.ok ? 'success' : 'error'); }) .catch(function() { setState('error'); }); }; if (state === 'success') { return (
You're on the list.
We'll email you the morning of May 15.
); } if (state === 'error') { return (
Something went wrong. Try again or email hello@viteezy.com.
); } return (
setEmail(e.target.value)} required style={{ flex: 1, font: `400 ${fontSize}px/1 "Sofia Pro"`, padding: inputPad, border: `1px solid ${dark ? 'rgba(255,255,255,0.22)' : 'var(--ink-200)'}`, borderRadius: 12, background: dark ? 'rgba(255,255,255,0.06)' : '#fff', color: dark ? '#fff' : 'var(--ink-900)', outline: 'none', minWidth: 0, }} />
); }; window.WaitlistForm = WaitlistForm; // === Countdown.jsx === // Countdown to May 15, 2026 (US public launch). const Countdown = ({ dark = false, compact = false }) => { const target = new Date('2026-05-15T09:00:00-04:00').getTime(); const [now, setNow] = React.useState(Date.now()); React.useEffect(() => { const id = setInterval(() => setNow(Date.now()), 1000); return () => clearInterval(id); }, []); const diff = Math.max(0, target - now); const days = Math.floor(diff / 86400000); const hours = Math.floor((diff / 3600000) % 24); const mins = Math.floor((diff / 60000) % 60); const secs = Math.floor((diff / 1000) % 60); const units = [ { n: days, l: 'days' }, { n: hours, l: 'hrs' }, { n: mins, l: 'min' }, { n: secs, l: 'sec' }, ]; const bg = dark ? 'rgba(255,255,255,0.06)' : 'var(--paper-0)'; const border = dark ? 'rgba(255,255,255,0.12)' : 'var(--ink-100)'; const numColor = dark ? '#fff' : 'var(--ink-900)'; const lblColor = dark ? 'rgba(255,255,255,0.6)' : 'var(--ink-500)'; return (
{units.map((u, i) => (
{String(u.n).padStart(2, '0')}
{u.l}
{i < units.length - 1 && (
·
)}
))}
); }; window.Countdown = Countdown; // === QuizTease.jsx === // Interactive 2-question quiz tease. After completion, captures email + quiz answers // and submits both to Formspree alongside the waitlist form. const QUIZ = [ { q: 'What\u2019s your #1 health goal?', choices: ['More steady energy', 'Better sleep', 'Stronger immunity', 'Sharper focus'], }, { q: 'How often do you feel tired by 3pm?', choices: ['Every day', 'A few times a week', 'Rarely', 'Never'], }, ]; // Map answer combos to a suggested plan const PLAN_MAP = { 'More steady energy': { name: 'The Steady Day', supplements: ['B-Complex', 'CoQ10', 'Omega-3', 'Magnesium', 'D3+K2'] }, 'Better sleep': { name: 'The Wind-Down', supplements: ['Ashwagandha KSM-66', 'Magnesium', 'Omega-3', 'Vitamin C'] }, 'Stronger immunity': { name: 'The Shield', supplements: ['Vitamin C', 'Zinc', 'D3+K2', 'Elderberry', 'Probiotic'] }, 'Sharper focus': { name: 'The Clear Head', supplements: ['Lion\'s Mane', 'Omega-3', 'B-Complex', 'Magnesium', 'Ginkgo'] }, }; const QuizTease = () => { const [step, setStep] = React.useState(0); const [picks, setPicks] = React.useState([null, null]); const [pickLabels, setPickLabels] = React.useState([null, null]); const isDone = picks.every(p => p !== null); const current = QUIZ[step]; const plan = isDone ? (PLAN_MAP[pickLabels[0]] || PLAN_MAP['More steady energy']) : null; const pick = (i, label) => { const nextPicks = [...picks]; nextPicks[step] = i; setPicks(nextPicks); const nextLabels = [...pickLabels]; nextLabels[step] = label; setPickLabels(nextLabels); setTimeout(() => { if (step < QUIZ.length - 1) setStep(step + 1); }, 180); }; return (
{/* Progress bar */}
Quiz preview · {Math.min(step + 1, QUIZ.length)} of {QUIZ.length}
{QUIZ.map((_, i) => (
))}
{!isDone ? ( <>
{current.q}
{current.choices.map((c, i) => { const selected = picks[step] === i; return ( ); })}
) : (
Your preview plan
{plan.name}
{plan.supplements.map(p => ( {p} ))}
{/* Email capture — quiz answers passed through to Formspree */}
Get notified when your personalized plan is ready on May 15:
)}
); }; window.QuizTease = QuizTease; // === Bundles.jsx === // Scroll-reveal hook — fades + slides element in when it enters the viewport const useReveal = () => { const ref = React.useRef(null); const [visible, setVisible] = React.useState(false); React.useEffect(() => { const el = ref.current; if (!el) return; const obs = new IntersectionObserver(([entry]) => { if (entry.isIntersecting) { setVisible(true); obs.disconnect(); } }, { threshold: 0.12 }); obs.observe(el); return () => obs.disconnect(); }, []); return [ref, visible]; }; // Two product paths: Personalized Sachets (subscription) + Standup Pouches (individual) const POUCHES = [ { tag: 'Immunity', title: 'Vitamin D3+K2', desc: 'Supports bone density, immunity and mood. D3 + K2 for optimal absorption.', image: 'assets/product-vitd.png' }, { tag: 'Omega-3', title: 'Algae-Based Omega-3', desc: 'Algae-derived EPA+DHA. Sustainably sourced, no fishy aftertaste.', image: 'assets/ingredient-fishoil.png' }, { tag: 'Cleanse', title: 'Detox', desc: 'Spirulina-based daily detox. Binds toxins, supports liver and gut health.', image: 'assets/ingredient-spirulina.png' }, { tag: 'Recovery', title: 'Sleep', desc: 'Lavender, chamomile and melatonin precursors. Drift off, stay asleep.', image: 'assets/product-sleep.png' }, { tag: "Men's Health", title: "Men's Vitality", desc: 'Maca root + zinc + B-complex. Stamina, testosterone balance, focus.', image: 'assets/product-maca.jpg' }, { tag: "Women's Health", title: 'Women Hormone Balance', desc: 'Pomegranate, lavender and adaptogens for cycle balance and calm.', image: 'assets/product-hormone.jpg' }, { tag: 'Performance', title: 'Energy', desc: 'B-vitamins, CoQ10 and citrus bioflavonoids. Sustained energy, no crash.', image: 'assets/product-energy.jpg' }, { tag: 'Kids', title: "Children's Multivitamin", desc: 'Vitamin D, B-complex and iron in child-safe doses. Supports growth and focus.', image: 'assets/product-kids.jpg' }, ]; const Bundles = () => { const [refSachet, visibleSachet] = useReveal(); const [refPouch, visiblePouch] = useReveal(); const revealStyle = (visible, delay = 0) => ({ opacity: visible ? 1 : 0, transform: visible ? 'translateY(0)' : 'translateY(40px)', transition: `opacity 0.7s ease ${delay}s, transform 0.7s ease ${delay}s`, }); return (
Two ways to get Viteezy
Personalized sachets or
individual pouches.
{/* Path 1 — Personalized Sachets */}
Subscription

Personalized daily sachets

Take a short quiz. We match you with 1–2 daily sachets with 4–7 supplements each with your name on it. Delivered monthly on a 1–3 month subscription.

    {['Quiz-matched to your goals', 'Your name on every sachet', '1, 2 or 3-month plans', 'Adjust or cancel anytime'].map(f => (
  • {f}
  • ))}
{/* Path 2 — Standup Pouches */}
Buy individually

Standup pouches

Our scientifically developed, custom formulated products — each available as a standalone standup pouch. No quiz required. Buy the ones you know you need.

{/* 4+4 product grid */}
{POUCHES.map((p, i) => (
{ if (el) { const obs = new IntersectionObserver(([e]) => { if (e.isIntersecting) { el.style.opacity = 1; el.style.transform = 'translateY(0)'; obs.disconnect(); } }, { threshold: 0.15 }); obs.observe(el); } }} style={{ borderRadius: 20, overflow: 'hidden', border: '1px solid var(--ink-100)', background: 'var(--paper-0)', opacity: 0, transform: 'translateY(32px)', transition: `opacity 0.6s ease ${i * 0.08}s, transform 0.6s ease ${i * 0.08}s`, }}>
{p.tag}
{p.title}
{p.desc}
))}
); }; window.Bundles = Bundles; // === Differentiators.jsx === // Three-up "why Viteezy" section. const DIFFS = [ { n: '01', t: 'Personalized, not assumed.', d: 'A 2-minute quiz — built with a expert — maps your goals and lifestyle to 4 to 7 supplements.', }, { n: '02', t: 'Clean ingredients, nothing extra.', d: 'No artificial fillers, no synthetic binders. Just what the quiz says you need, sourced for absorption.', }, { n: '03', t: 'One sachet a day.', d: 'Delivered as a monthly roll. No pill organizers. No stacking conflicts. No guessing.', }, ]; const Differentiators = () => (
{DIFFS.map(d => (
{d.n}
{d.t}
{d.d}
))}
); window.Differentiators = Differentiators; // === SocialProof.jsx === // Dutch-origin social proof section. // US audiences trust European wellness provenance — lean into "from the Netherlands" specifically. const STATS = [ { n: '1M+', l: 'daily sachets taken' }, { n: '30,000+', l: 'Dutch & Belgian subscribers' }, { n: '4.5★', l: '2,699 reviews' }, { n: '2019', l: 'founded in Amsterdam, NL' }, ]; const SocialProof = () => (
{/* Subtle NL flag stripes as a decorative accent top-right */}
{/* Mini NL flag */} Made in the Netherlands
Europe's personalized vitamin brand, now coming stateside.
Viteezy started in 2019 out of Bussum, a small town outside Amsterdam. Four years later, more than thirty thousand people across the Netherlands and Belgium take a Viteezy sachet every morning. We're bringing the same personalized plans, clean ingredients, and European wellness standards to the US.
{STATS.map(s => (
{s.n}
{s.l}
))}
{/* Welcome kit photo — the "what you actually get" moment */}
The welcome kit
Every member gets the same box Dutch subscribers get.
A 30 to 90-day sachet strip personalized to your quiz, a tin box, and a welcome card. Shipped from our US fulfillment center starting May 15.
As featured in Dutch press
{['Quote', 'Volkskrant', 'Elle NL', 'Sprout', 'FD'].map(p => (
{p}
))}
); window.SocialProof = SocialProof; // === DutchStory.jsx === // Dutch-origin editorial section — the café flyer photo IS the story. // "Geef €10 korting" (Dutch: "Give €10 off") visible in the photo is genuine proof of EU operation. const DutchStory = () => (
{/* Left: editorial copy on dark */}
The Dutch story

Four years in the wild,
before your first sachet.

Viteezy started in 2019 in Amsterdam — a small town half an hour from Amsterdam. We spent six years refining the quiz, ingredients, and sourcing in the Netherlands and Belgium before ever considering a US launch.

So when you take the quiz on May 15, you're not a guinea pig. You're the thirty-thousandth-and-first person on a plan that already works.

{[ { n: '2019', l: 'Founded · Amsterdam, NL' }, { n: '🇳🇱 🇧🇪', l: 'Nederland & België' }, { n: 'EU-GMP', l: 'Manufacturing standard' }, ].map(s => (
{s.n}
{s.l}
))}
{/* Right: café flyer photo — literal Dutch-language proof */}
); window.DutchStory = DutchStory; // === Footer.jsx === // === Hero.jsx === const Hero = () => (
Loved in the Netherlands · Coming soon to the US

Supplements built
around you.

Personalized daily sachets on subscription, or scientifically formulated single products in standup pouches — two ways to get exactly what your body needs.

Join now and get  $5–$15 off your first subscription — first 1,000 members only.
1M+
sachets taken in EU
4.5★
2,699 reviews
{/* Bento grid: beach lifestyle + placeholder for second upload */}
Member · Lisa, Amsterdam
"I used to forget. Now it's just breakfast."
The welcome kit
); window.Hero = Hero; // === App.jsx === const TWEAKS = /*EDITMODE-BEGIN*/{ "showCountdownStrip": true }/*EDITMODE-END*/; const App = () => { const [tweaks, setTweaks] = React.useState(TWEAKS); const [editMode, setEditMode] = React.useState(false); // Tweaks host wiring React.useEffect(() => { const handler = (e) => { if (e.data?.type === '__activate_edit_mode') setEditMode(true); if (e.data?.type === '__deactivate_edit_mode') setEditMode(false); }; window.addEventListener('message', handler); window.parent.postMessage({ type: '__edit_mode_available' }, '*'); return () => window.removeEventListener('message', handler); }, []); const updateTweak = (key, value) => { const next = { ...tweaks, [key]: value }; setTweaks(next); window.parent.postMessage({ type: '__edit_mode_set_keys', edits: { [key]: value } }, '*'); }; return (
{/* Top notice strip */} {tweaks.showCountdownStrip && (
Dutch personalized vitamins · Landing in the US May 15, 2026 · Waitlist open
)} {/* Nav */} {/* Hero */}
{/* Differentiators */}
Why Viteezy
A simpler way to actually take your vitamins.
{/* Dutch story — full-bleed editorial, before bundles */}
{/* Bundles / two-path section */}
{/* Quiz tease */}
The quiz

Built by a expert.

Eighteen questions on lifestyle, goals, and health. Each one mapped to specific, scientifically-grounded recommendations. Try a two-question preview.

{/* Social proof */}
{/* Final waitlist CTA */}
Join the US waitlist

Be the first to take the quiz on May 15.

First 1,000 members on the list get $5–$15 off their first subscription.

{/* Tweaks panel */} {editMode && (
Tweaks
)}
); }; ReactDOM.createRoot(document.getElementById('root')).render();