Skip to content

EuclidStellar/valentine-protocol

💖 The Valentine's Protocol

"A 7-Day Digital Journey to Win Player 2's Heart"

React TailwindCSS Framer License

The Valentine's Protocol is a retro-themed, interactive web experience designed to be the ultimate digital gift. It features a 7-day unlockable journey, pixel-art mini-games, and a deeply customizable core that lets anyone deploy their own version for their special someone.


🎮 Live Demo

👉 View Demo


✨ Features

  • 📅 7-Day Unlock System: Content unlocks automatically based on the real-world date (Feb 7 - Feb 14).
  • 🕹️ 7 Unique Mini-Games:
    • Feb 7 (Rose): Water a pixel rose until it blooms 🌹.
    • Feb 8 (Propose): A "glitched" proposal UI where they can't say no 💍.
    • Feb 9 (Chocolate): Drag-and-drop dessert builder 🍫.
    • Feb 10 (Teddy): A fully functional claw machine 🧸.
    • Feb 11 (Promise): Navigate a constellation maze ⭐.
    • Feb 12 (Hug): "Hold to Embrace" haptic-style button 🫂.
    • Feb 13 (Kiss): Rhythm game to catch falling kisses 💋.
    • Feb 14 (Valentine): The Key Vault. Collect all 7 keys to unlock the final letter 💝.
  • ⏳ Time Travel Mode: A built-in DevTools menu to "fast forward" to any day for testing (perfect for demos!).
  • 🎨 Dreamy Retro Aesthetic: CRT scanlines, nebula backgrounds, and floating particles.
  • 📸 Camera Integration: Captures their reaction during the proposal (stored locally!).
  • ⚙️ 100% Configurable: Change names, music, messages, and dates in seconds.

🚀 How to Make This Yours

You don't need to be a coding wizard. I built this to be easily customizable for everyone.

1. Clone & Install

git clone https://github.com/EuclidStellar/valentine-protocol.git
cd valentine-protocol
npm install

2. Customize src/config.js

Open src/config.js and edit the values. It's that simple.

const config = {
    person: {
        name: "Her Name", 
        nickname: "Player 2",
    },
    audio: {
        // Drop your mp3s in src/assets/audio and link them here!
        rose: roseAudio, 
    },
    messages: {
        rose: {
            success: "You make my heart bloom!" // Your custom text
        }
    }
};

3. Deploy

Run npm run build and upload the dist folder to Netlify Drop. Or use Vercel for one-click deployment.


🛠️ Tech Stack

  • Core: React (Vite)
  • Styling: Tailwind CSS (Pixel Art & Glassmorphism)
  • Animation: Framer Motion (Transitions & Physics)
  • Icons: Lucide React
  • Vibes: Immaculate ✨

🤝 Contributing

Have a cooler mini-game idea? Found a bug?

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

�️ Debugging / Time Travel

Since this is an open-source demo, I've left the Time Travel feature enabled!

  1. Look for the Wrench Icon 🔧 in the bottom-left corner.
  2. Click it to open the DevTools.
  3. Tap any date to instantly unlock it and fast-forward time. (Great for showing off the Valentine's Day finale without waiting a week!)

�📜 License

Distributed under the MIT License. See LICENSE for more information.


Made with ❤️, ☕, and too many commits by [EuclidStellar]

Releases

No releases published

Packages

 
 
 

Contributors