WishBack is a lightweight birthday reciprocity tracker that helps you keep track of who wished you, when they wished you, and whether you wished them back β across multiple years.
It turns birthday wishes into simple, transparent data without turning friendship into a competition.
A central overview of your birthday circle.
- WishBack Score with a plain-language explanation
- Reciprocity statistics
- Recently logged wish events
- Quick access to people and upcoming birthdays
A monthly birthday calendar showing everyone in your circle.
- Birthdays displayed directly on their dates
- Navigate between months
- Click a birthday to open that person's details
Manage everyone whose birthdays you want to track.
- Search people by name
- Filter by relationship tag
- Filter birthdays coming up within 30 days
- Open any person for their complete history
A dedicated sidebar showing what's relevant right now.
- Birthday greeting
- One-tap actions for people whose birthday is today
- Upcoming birthdays for the current week
- Quick logging of wishes
WishBack supports complete Create, Read, Update, and Delete functionality.
Each person contains:
- Name
- Birthday
- Relationship tag
- Wish history
You can create, view, edit, and delete people directly from the Person Detail view.
Deleting a person also removes their associated wish history.
Wish events are stored as individual records rather than a simple yes/no value.
Each event contains:
- Person
- Direction
- Timestamp
- Year
This allows WishBack to track the same person's birthday reciprocity separately across multiple years.
You can:
- Log a wish instantly
- Backdate a wish
- Edit an existing event
- Delete an event
Every wish event receives a playful timing label based on its timestamp compared with the nearest occurrence of that person's birthday.
| Label | Meaning |
|---|---|
| π Early Bird | Wished well before the birthday |
| π On the Day | Wished on their birthday |
| π Last Minute | Wished shortly before the birthday |
| ποΈ Belated | Wished after the birthday |
| π» Didn't Wish | No wish was logged |
These labels are descriptive and playful β not judgments about a person or friendship.
The WishBack Score provides a simple measure of birthday reciprocity.
Reciprocated birthday-years Γ· birthday-years with any activity
The result is displayed as a percentage along with a plain-language explanation.
The score is calculated only from the wish events you have logged.
It is not:
- A friendship rating
- A personality score
- A measure of someone's character
- A judgment of how much someone cares
It simply answers:
"Across the birthday years I've recorded, how often was the exchange reciprocated?"
WishBack uses a simple data model:
People
β
βββ Name
βββ Birthday
βββ Relationship Tag
β
βββ Wish Events
βββ Direction
βββ Timestamp
βββ Year
Because wish events are stored individually, the application can build a history over time instead of overwriting previous years.
WishBack intentionally uses a simple, dependency-free frontend.
| Technology | Purpose |
|---|---|
| HTML5 | Application structure |
| CSS3 | Styling, layout, responsive design |
| JavaScript | Application logic and interactions |
| localStorage | Client-side data persistence |
Everything runs directly in the browser.
Clone the repository:
git clone https://github.com/AnonymousCharmer28/WishBack.git
cd WishBackpython3 -m http.server 5500Then open:
http://localhost:5500
Install the Live Server extension and open index.html with Live Server.
You can also open index.html directly in your browser.
Currently, all WishBack data is stored locally using the browser's:
localStorage
This means:
- No account is required
- No server is required
- Data stays in the browser
- Data does not automatically sync between devices
Clearing browser storage will remove the locally stored application data.
- Multi-view application
- People management
- Wish event CRUD
- Calendar
- Birthday filtering
- Timing classification
- Reciprocity score
- localStorage persistence
- Responsive interface
- User authentication
- Supabase / PostgreSQL
- Cloud persistence
- Cross-device synchronization
Planned data relationship:
Users
β
βββ People
β
βββ Wish Events
- Browser push notifications
- Birthday reminders
- Email reminders
- Scheduled notifications
- Advanced analytics
- Historical reciprocity trends
- Data visualizations
- Deployment
- Case-study documentation
Birthdays are small things that can sometimes reveal interesting patterns.
Someone remembered yours.
You remembered theirs.
Maybe someone forgot.
Maybe you forgot.
WishBack isn't designed to tell you who is a good friend.
It's designed to give you a simple place to remember what actually happened β without the drama.
WishBack/
β
βββ index.html
βββ style.css
βββ script.js
βββ README.md
WishBack currently stores data locally in your browser using localStorage.
No backend or external database is required for the current version.
This project is licensed under the MIT License.
Do whatever you want with it.
WishBack β Remember the people who remember you.
Built as a frontend-focused web application using vanilla HTML, CSS, and JavaScript.