A pink-themed, interactive Valentine page built with Next.js + Tailwind CSS.
- Landing flow
- Valentine countdown timer
- Name input +
Create Valentine Link - Link format:
/?from=<name>&id=<randomId>
- Link ready page
- Copyable Valentine link
Preview LinkbuttonCreate Another Linkbutton
- Recipient page (
?from=...)
- Dynamic title:
Hey there! {name} has a question for you... - 5-step
NoGIF sequence (Tenor embeds) Yessuccess GIFNoclicks makeYeslarger andNosmaller- Final
Nostage makes theNobutton run away Yestriggers full-screen fanfare effectRestart+Back To Mainactions
- Navigation
Main PageCreate LinkGitHub
The app includes practical client-side and platform-level protections:
- Input sanitization for
namevalues- Removes unsafe characters
- Enforces a max length of 24
- Query param safety
fromis sanitized before rendering
- Security headers (via
next.config.js)Content-Security-PolicyX-Content-Type-Options: nosniffX-Frame-Options: DENYReferrer-Policy: strict-origin-when-cross-originPermissions-Policy(camera/microphone/geolocation disabled)
- Random share IDs generated with
crypto.getRandomValueswhen available
cd /Users/sionjeon/wybmv
npm install
npm run devOpen: http://localhost:3000
- Tenor embeds require internet access.
- Update the GitHub button URL in
/Users/sionjeon/wybmv/app/page.tsxif needed.