A delightful web application that helps couples choose anniversary activities by drawing Scrabble-style letter tiles. Inspired by 26 years :: 26 letters of the alphabet.
- Interactive Scrabble-style letter tiles
- Random activity suggestions based on selected letters
- Ability to shuffle and get new suggestions
- Heart/favorite activities to track completed ones
- Responsive design that works on both desktop and mobile
- Customizable activity lists and loading phrases
- Local storage to remember completed activities
You can view the live demo at: https://smartwatermelon.github.io/anniversary
-
Clone the repository:
git clone https://github.com/smartwatermelon/anniversary.git && cd anniversary
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Build for production:
npm run build
The activities are stored in activities.json
. The file contains an object where each key is a letter of the alphabet, and the value is an array of activities starting with that letter.
To customize the activities:
- Open
activities.json
- Modify the arrays for each letter
- Keep the structure consistent:
{
"A": [
"Afternoon tea at a fancy hotel",
"Art museum visit",
"Adventure hike"
],
"B": [
"Breakfast in bed",
"Brunch at a trendy spot",
"Brewery tour"
]
// ... rest of the alphabet
}
The loading phrases that appear while shuffling activities are stored in phrases.json
. To customize:
- Open
phrases.json
- Modify the array of phrases:
[
"Finding perfect activities...",
"Crafting romantic moments...",
"Searching for adventures...",
// Add your own phrases here
]
- React 18
- Vite
- TailwindCSS
- Lucide React (for icons)
- LocalStorage (for persisting completed activities)
App.jsx
- Main application componentScrabbleHeader.jsx
- Component for displaying letter tilesindex.css
- Styling including Tailwind componentsactivities.json
- Activity dataphrases.json
- Loading phrasespublic/
- Static assets
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
ISC License - See LICENSE file for details