Premium landing page for regradeapp.tech.
Copyright © 2026 Preston Jay Susanto. All rights reserved.
Regrade, including this repository, is proprietary — not open source. The Regrade name and logo are trademarks of Preston Jay Susanto.
- LICENSE — proprietary terms; no redistribution without permission
- NOTICE — copyright and trademark notice
- CONTRIBUTING.md — required terms for any contributor
Unauthorized copying, forking, or use of this code is prohibited.
- Vite + React 19 + TypeScript — fast builds, type-safe components
- Tailwind CSS v4 — design tokens, responsive layout
- Framer Motion — preloader, staggered hero, FAQ accordion, sticky CTA, cursor glow
- GSAP + ScrollTrigger — product parallax, feature deep-dive scrub animations
- Lenis — buttery smooth scroll (synced with GSAP)
- Lucide React — crisp iconography
- Supabase — waitlist RPC, live stats, visitor analytics
| RPC | Purpose |
|---|---|
join_waitlist |
Sign up + return queue position |
get_waitlist_stats |
Live waitlist total & spots left |
register_visitor |
Anonymous visitor tracking |
get_visitor_stats |
Site traffic aggregates |
View signups: Supabase table editor
The public Supabase key is intentionally configured for the landing page. Server-side secrets must never be added to this static site.
Analytics is wired but intentionally disabled until a real Measurement ID is supplied. Set
VITE_GA_MEASUREMENT_ID=G-XXXXXXXXXX in the production build environment, then redeploy. The
loader sends no Analytics request when that variable is absent.
npm install
npm run devnpm run build
npm run previewDeploy the dist/ folder to Vercel, Netlify, or any static host.
Signups write to the waitlist table in Supabase (Regrade-waitlist project). View entries in the Supabase dashboard.