Changelog
Every update, improvement, and fix, download any version below.
v1.8.0
August 16, 2026
- Import Contacts: on Android, the APK scans your phone's contacts directly with a one-time permission prompt, pulling names and birthdays from anyone who has a birthday saved
- Web/PWA imports a .vcf file (Google Contacts export or iOS share-a-contact)
- Import Backup: restore a previously exported .json backup into any account; group memberships are restored by name — existing groups are reused, missing ones are recreated
- Shared preview screen: review every candidate before importing with a select-all toggle, per-row checkboxes, and an "Already tracked" badge marking people you've already added; handles permission-denied, empty-list, and invalid-file states cleanly
- "Export JSON" renamed to "Export Backup"
- State retention across tabs: switching tabs no longer loses what you were doing — in-progress values in Add Birthday, Gift Ideas, birthday edit, and group add/edit all restore when you come back, and Birthdays, Calendar, and Profile remember your scroll position
- Birthday list caching: the list restores instantly on tab switch without a re-render
- Reminder time is now local: set your daily notification time in your own timezone instead of UTC (still stored in UTC behind the scenes)
- Update checker is APK-only: the "new version available" toast no longer shows in the web app
- Importing contacts on Android failed after granting permission (missing manifest permission declaration)
- Wished/gift status now resets automatically once the birthday for the year has passed, so flags don't go stale
- Migrated serverless functions from Netlify to Vercel (/api/groq, /api/delete-user); removed Netlify config and functions
- Landing pages, app icon, and auth legal links moved to trackbirthdays.zubs.me
- Added @capacitor-community/contacts
v1.7.0
July 15, 2026
- Complete redesign of the app and landing page, old dark glassmorphism replaced with a bold neobrutalist design system: flat ink shadows, thick borders, pill buttons, and high-contrast accents on a cream/paper background
- Every interactive element now has the same translate and shadow-collapse hover effect with scale press feedback on touch, applied uniformly across all buttons, chips, modals, and action rows
- Birthday list ordering fixed: birthdays whose date has already passed this year now appear at the bottom in a separate section, upcoming birthdays always show first
- Toast notifications redesigned with paper background, ink border, colored left accent by type (lime, pink, orange), and spring slide-in from top-right
- Splash screen: loading bar thicker and matches subtitle width, icon has cream border with theme-aware flat shadow
- Comprehensive multi-language support: All landing pages (index, changelog, policy, terms, license, help, assets, contact) are now fully localized into 8 languages.
- Birthdays: cards have flat ink shadows and lift-on-hover animation, avatar circles have shadows, filter chips have hover and press effects, header redesigned with pill icon buttons; removed the 26-color per-letter system, cards now use monochrome ink with orange accents for the initial letter and "COMING UP" badge; each page has a single accent color (birthdays: orange, add a birthday: lime, gift ideas: blue)
- Calendar: bottom sheet popups redesigned with drag handle pill restored, no outer shadow ring, more bottom padding, date numbers more centered in cells
- Groups: cards, detail hero card, and edit section all have flat ink shadows, avatar circles match profile page style
- Profile, Onboarding, Auth, Reset Password: modal buttons, toggle knob rendering, back button style, and hover effects all polished
- index.html fully redesigned: marquee ticker strip, floating feature badges, app icon hero, neobrutalist nav and buttons, FAQ section updated with the 5 most useful questions
- changelog.html, policy.html, terms.html, license.html all updated with the new design system and accurate content
- New pages: help.html with 22 Q&A entries across 6 sections, assets.html with brand colors and typography, contact.html
- Structural Refactor: Comprehensive reorganization of src/ and landing/ directories for improved modularity, maintainability, and clearer separation of concerns.
v1.6.1
July 4, 2026
- Data export now works on Android APK, replaced browser blob download with native file write via Capacitor Filesystem and system share sheet
- Phone shell no longer visible on real devices, the phone border wrapper is skipped on Capacitor native and CSS breakpoints widened to 480px
- Push notifications now deliver on APK, added explicit notification channel for Android 8+ and dual notification+data payload for reliable delivery
- Marquee loop seam on landing page, removed outer gap and set flex-wrap nowrap with width max-content so the scroll animation covers the full content
v1.6.0
July 4, 2026
- Native color picker for groups, replaced the 6 preset swatches with a full color input so you can pick any color you want
- Per-birthday notification toggle, opt out of reminders for individual birthdays without disabling all notifications
- Export birthdays to .ics calendar file, includes zodiac, group, and age, repeats yearly
- Export all data as JSON, downloads birthdays, groups, and timestamp in one file
- Birthday countdown on detail view now always shows the person's letter-color, not just for dates within 7 days
- Floating action button no longer appears on the Gift Ideas page
- Fixed phone shell inset border being obscured by composited layers
- Removed dead code, consolidated shared functions into utils, replaced raw Supabase errors with translated messages
- Phone mockup redone with <iphone-16-max> web component, realistic dynamic island and status bar
- Bottom nav updated to match the app: Birthdays, Calendar, Groups, Profile tab
- Birthday cards redesigned with month sections, spotlight card, and colors sourced from the app's LETTER_COLORS
- Content accuracy improvements across hero, features, and CTA sections
- Privacy policy and terms updated for Groq AI, per-birthday toggle, data export, multi-language
- Fixed broken footer link, removed glow effects, restored glassmorphism and gradient text
v1.5.0
July 3, 2026
- Multi-language support, the entire app is now translated into 8 languages (English, Spanish, French, German, Danish, Japanese, Korean, Chinese) with instant switching from the Profile page
- In-app update checker, when a new APK is released, a toast appears on startup with a download link to the latest GitHub release
- Smoother animations, bounce effects replaced with subtle fades and slides for a more native feel; calendar birthday sheet now has staggered list animations
- Nav bar text now truncates with ellipsis when labels are too long, preventing layout breaks
- Refined phone dimensions for a more accurate fit on modern devices
- Fixed navigation from Gift Ideas in calendar detail view going to Birthdays tab instead of returning to the calendar
- Fixed white flash on page reload
v1.4.1
June 27, 2026
- Android push notifications via Firebase Cloud Messaging, birthday reminders now work even when the app is closed
- Notifications still sent 7 days before, 1 day before, and on the day of a birthday
- Enable from Profile page, same toggle as browser push notifications
- Fixed nav bar shifting when switching between tabs, no more page shrinking or resizing
- Cleaner nav bar, active tab now highlighted by color change only (no pink background)
- Removed glow effect from floating action button for a cleaner look
v1.4.0
June 27, 2026
- Migrated from Bubblewrap (TWA) to Capacitor for native Android builds, faster builds, better WebView performance
- New build workflow, no more Bubblewrap, direct Gradle builds via npm run cap:build
- Updated Android SDK and build tools with JDK 21 compatibility
- Simplified APK build process, cleaner project structure with Android files contained in android/
- Replaced default Capacitor icon with custom app icon, no more white padding
- Fixed splash screen white flash, reverted to plain dark theme background
v1.3.3
May 8, 2026
- Calendar view with rolling 12-month window, tap dates to see birthdays or add new ones
- Wished tracking with "Mark as Wished" button and green badge indicators
- Floating action button for quick add (replaces Add tab in navigation)
- Calendar lazy loading, initial render shows 3 months, loads more on scroll (70% faster)
- DOM caching, calendar cached after first render for instant tab switching
- Smart cache invalidation, automatically refreshes when month changes or data updates
- Toast stacking system, multiple toasts stack vertically (max 5 visible)
- Fixed bottom sheet z-index issues and dark overlay blocking content
- Improved back navigation between calendar, add page, and detail views
- Rolling 12-month window, calendar always shows exactly 12 months from current month
v1.2.3
April 29, 2026
- Letter-based avatar colors, each person gets a unique color based on first letter (A-Z mapped to 26 distinct colors)
- Birthday cards show personalized left border accent using letter color
- Avatar backgrounds use letter color at 15% opacity with full color text
- Live preview on Add Birthday page shows letter color as you type
- Optimistic UI updates, all save operations update instantly without waiting for server
- Adding, editing, archiving, and deleting birthdays show immediate feedback
- Changes sync with Supabase in background with automatic rollback on error
v1.1.3
April 22, 2026
- Fixed incorrect birthday date display bug
- Various minor bug fixes
v1.1.2
April 17, 2026
- Fixed sign-out and delete account modals appearing at top of screen when scrolled
- Fixed archived birthday modal positioning, all modals now mount on app root
- Fixed navigation race condition causing blank screens, added generation counter
- Fixed groups page fetching from Supabase instead of using cache
- Added native-app-like animations: page enter fade/slide, staggered list items, modal scale-in
- Redesigned onboarding with per-slide accent colors, ambient background blobs, icon pulse animations
- Disabled zoom on Android APK, pinch-to-zoom and double-tap locked for native feel
- App name corrected to "Track Birthdays" everywhere
v1.1.1
April 13, 2026
- Fixed groups tab not being cached on first app load, which caused brief delay
- Fixed occasional duplication of built-in groups (default groups appearing multiple times)
- Fixed password reset flow not working correctly when using "Forgot Password"
v1.1.0
April 12, 2026
- App-wide data caching, all data fetched once on app load during loading screen
- Eliminates blank screen flashes between tab switches
- Background cache invalidation, affected data silently refetched during save operations
- Full landing page redesign
- Updated Privacy Policy and Terms of Service pages to match new design
- Archived birthdays are now read-only, must unarchive before editing
v1.0.0
April 11, 2026
- Email & password authentication with username
- Add, edit, delete birthdays with optional birth year
- Color-coded groups with filtering
- Push notifications (7 days, 1 day, day-of)
- PWA and Android APK support
- Full offline support via service worker