A modern, feature-rich birthday and anniversary tracking application built with React, Ant Design, and Valtio.
- Automated Calculations: Calculates age, next birthday, days remaining, zodiac signs (Western & Chinese), birthstones, and more.
- Life Statistics: View "Life Progress" metrics like total days, weeks, and months lived.
- Milestone Alerts: Special highlights for "big" birthdays (1, 10, 18, 21, 30, 50, etc.) and wedding anniversaries.
- Visual Statistics: Beautiful charts showing age distribution, zodiac signs, birth months, and generations.
- Shareable Cards: Generate and download personalized birthday cards for friends and family.
- Calendar Integration: Subscribe to your birthdays via
.ics(iCal/Google Calendar) or download the file directly. - Smart Search: Fuzzy searching powered by Fuse.js.
- PWA Ready: Installable as a mobile or desktop app with offline support.
- Dark Mode: Supports both light and dark themes.
- Notifications: Optional desktop notifications for today's and tomorrow's celebrations.
- Frontend: React 19
- UI Framework: Ant Design
- State Management: Valtio
- Build Tool: Rsbuild
- Styling: Styled Components
- Data Validation: Zod
- Charts: @ant-design/charts
- Fuzzy Search: Fuse.js
- Date Handling: Day.js
- Bun (recommended) or Node.js
-
Clone the repository:
git clone https://github.com/chneau/chneau.github.io.git cd chneau.github.io -
Install dependencies:
bun install
-
Start the development server:
bun start
bun run buildTo add or edit birthdays, modify the src/birthdays.json file. The format is:
{
"name": "John Doe",
"date": "1990-01-01",
"kind": "♂️"
}-
name: The name of the person.
-
date: Birthday in
YYYY-MM-DDformat. -
kind:
♂️(Boy),♀️(Girl), or💒(Wedding).
MIT © chneau