A beautiful, romantic website to celebrate three years together and an engagement! Built with Next.js, featuring a Spotify music player, animated elements, and a responsive design.
- 🎵 Spotify Music Player - Embedded player for your special song
- 💕 Beautiful Animations - Floating hearts and smooth transitions using Framer Motion
- 📱 Fully Responsive - Looks perfect on desktop, tablet, and mobile
- 🎨 Customizable Theme - Easy to personalize colors, content, and styling
- 🚀 Vercel Ready - Optimized for deployment on Vercel
- ⚡ Fast Performance - Built with Next.js 15 and optimized for speed
- 🌟 Modern Design - Clean, elegant UI with gradient backgrounds
- Anniversary celebrations
- Engagement announcements
- Wedding websites
- Valentine's Day surprises
- Romantic gifts
git clone https://github.com/matheusvps/ThreeYears.git
cd ThreeYears
npm installEdit src/config/site.ts to personalize:
export const siteConfig = {
couple: {
name1: "Your Name", // First person's name
name2: "Partner's Name", // Second person's name
relationshipStart: "2021-09-29", // Your start date
engagementDate: "2024-09-29", // Your engagement date
},
spotify: {
trackId: "4iV5W9uYEdYUVa79Axb7Rh", // Your song's Spotify ID
},
content: {
title: "Your Custom Title",
// ... customize all content
}
};- Go to Spotify and find your song
- Click "Share" → "Copy Song Link"
- Extract the ID from the URL:
https://open.spotify.com/track/TRACK_ID - Update
trackIdinsrc/config/site.ts
npm run devOpen http://localhost:3000 to see your site!
- Push your customized code to GitHub
- Connect your GitHub repo to Vercel
- Deploy automatically with zero configuration!
Edit the theme section in src/config/site.ts:
theme: {
primaryColor: "#f43f5e", // Main accent color
secondaryColor: "#ec4899", // Secondary accent
backgroundColor: "#fdf2f8", // Background tint
}All text content can be customized in src/config/site.ts:
- Hero title and subtitle
- Love story paragraphs
- Memory cards
- All dates and names
- Add your photos to the
public/directory - Create an image gallery component in
src/components/ - Import and use in your page
- Global styles:
src/app/globals.css - Component styles: Individual component files
- Uses Tailwind CSS for utility-first styling
- Framework: Next.js 15 with App Router
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Music: Spotify Embed
- Language: TypeScript
- Deployment: Vercel
src/
├── app/ # Next.js app directory
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
├── components/ # React components
│ ├── Hero.tsx # Hero section with animation
│ ├── SpotifyPlayer.tsx # Music player
│ ├── Story.tsx # Love story section
│ ├── Memories.tsx # Memory cards
│ └── Footer.tsx # Footer with links
└── config/
└── site.ts # Site configuration
The website uses Spotify's embed player. To change your song:
- Find your song on Spotify
- Copy the share link
- Extract the track ID (the part after
/track/) - Update
trackIdin the configuration
Example:
- Full URL:
https://open.spotify.com/track/4iV5W9uYEdYUVa79Axb7Rh - Track ID:
4iV5W9uYEdYUVa79Axb7Rh
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- Create components in
src/components/ - Add configuration options to
src/config/site.ts - Update types if needed
- Test thoroughly before deploying
- Photo gallery with lightbox
- RSVP form for engagement party
- Timeline of relationship milestones
- Guest book for messages
- Social media integration
- Email sharing functionality
Feel free to fork this project and make it your own! If you create something cool, consider sharing it back with the community.
This project is open source and available under the MIT License.
If this helped you create something beautiful for your special someone, consider giving it a ⭐ on GitHub!
Made with 💕 for celebrating love stories everywhere.
