What's new

Aegami changelog history

v1.3.2

Stats

  • Fixed `startedAt` cloud sync by adding the missing database column and wiring it through API sync, Android, and web, so anime start dates now persist correctly across devices.
  • Monthly Recap now uses the real started date for `Finished in X days` instead of falling back incorrectly after cloud reloads.

Related anime

  • Improved related anime cards with format and airing status chips, making it easier to identify entries like TV, Movie, OVA, Airing, Finished, or Not Yet Aired.
  • Improved the Add to Collection sheet for related anime with English titles, season/episode metadata, instant synopsis display, and expandable `Read more` / `Show less` text.
v1.3.1
v1.3.1

Stats

  • Added start date tracking for anime entries, allowing Monthly Recap to calculate `Finished in X days` from the actual start date instead of only the added date.
  • Existing entries remain compatible, with older records falling back to the original added date.

Watch Plans

  • Improved Watch Plan text entries and notes, with full text display for section labels, filler notes, and longer custom text.
  • Added expandable notes with `Show more` / `Show less`, keeping cards compact while still making longer notes easy to read.

Sync & reliability

  • Fixed an issue where deleted anime could reappear after a failed cloud delete by tracking deleted entry IDs locally and skipping them during sync merge.
  • Added automatic retry cleanup for failed cloud deletes, so removed entries stay removed even when the network misbehaves.
v1.3.0

Watch Plans

  • Added ordered watch lists for franchises and sagas, such as Monogatari or Fate
  • Plans can include items from the user’s library, MAL Search, or free-text entries such as sections, fillers, or recap movies
  • Each item can have an optional note, an optional flag, and an Add to Planning action
  • Added automatic linking between plan items and the user’s collection through `malId`
  • Plan items can reconnect even after an anime is deleted and added again
  • Fixed issues found during mobile testing, including item order persistence and MAL search behavior
  • Added episode range segments to Watch Plans, making it possible to split long-running anime into separate parts like `Episodes 1–100`, movie entries, and later episode ranges
  • Added automatic segment completion when the user’s episode progress reaches the segment’s target range
  • Added English title support for anime added to Watch Plans through MAL, including proper display and sync behavior
  • Added a quick `Start Watching` action directly on Watch Plan items that are currently in Planning

Watch Plans sharing

  • Each plan can now be shared through a public link using the new Private / Public toggle on the plan page
  • Added a first-publish warning modal explaining exactly what becomes visible
  • Added a “Copy link” button with a “Copied!” confirmation
  • Added a new public page at `/public/plans/[id]` with a read-only plan view, cover images, notes, and a link to the author’s profile
  • Public Watch Plan pages now use a `noindex` directive
  • Expanded the Terms of Service with a new “User-Generated Content” section

Watch Plans drag & drop

  • Added drag & drop reordering for plan items using a grab handle

Monthly activity

  • Added the first version of the monthly activity tracking system
  • Fully implemented the monthly activity tracking system and detail modal
  • Added a monthly activity overview to the Stats screen
  • Monthly details are now available for all activity types, including watching, completions, and rewatches
  • The modal now shows cover images and respects the title language preference
  • Fixed the monthly summary data source so it matches the detail modal
  • Fixed status bar positioning in the modal across platforms
  • Undo actions now physically remove activity records instead of adding compensating records
  • Fixed inaccurate completed anime counts in Stats
  • Fixed duplicate entries in the monthly recap and activity log
  • Fixed incorrect totals in the monthly recap `Added` section

Search & duplicates

  • Added anime search directly to the Discover screen
  • Improved the Discover screen layout
  • Prevented duplicate anime entries across all add flows
  • Improved search result ranking and detection of anime already in the collection
  • Search now correctly shows anime that are already in the collection

Metadata & sync

  • Unified metadata enrichment across all add flows, including genres, episode duration, format, and studio
  • Fixed null-safe MAL rating handling on public profiles
  • Added `Sync from MAL` on anime detail screens to refresh metadata from MyAnimeList without overwriting user data
  • Improved MAL-based title data for Watch Plan items

Filters & layout

  • Added `FiltersSheet` as a bottom sheet
  • Moved filters to the correct location in both collection and Watchlist views
  • Improved layout for wide desktop screens

Profile

  • Moved the Community section from Account / Legal to the Sharing tab in profile settings

Public profile

  • Fixed OG image routing, added a backwards-compatible route, and improved sharpness and loading speed

Authentication

  • Added password setup support for Google-only accounts
  • Improved login error messages

Avatar

  • Fixed avatar uploads for larger images
  • Reduced upload size limits for more reliable uploads
  • Improved error messages when avatar upload fails
  • Fixed an Android crash when updating the avatar

Visuals & notifications

  • Added a new app icon and icon set
  • Added a new Android small notification icon for the status bar
  • Fixed gradient clipping on Android
  • Fixed gradient clipping on modal buttons
  • Fixed the notification bar so it displays the full message content
  • Updated status colors for better visual distinction across themes
  • Improved status border visibility on anime cards

Dashboard

  • Anime scheduled for today now appear first

Stability

  • Made DB schema verification more resilient to transient server startup errors
v1.2.0

Cover art

  • Added high-quality AniList cover art on Watchlist cards, public profiles, detail screens, and related anime
  • Added LRU cache for AniList covers with a maximum of 200 records and `lastAccessedAt` tracking
  • Added AniList cover pre-warming when opening the app and after adding anime
  • Added cover pre-loading when loading public profiles
  • Added AsyncStorage cache for AniList covers with automatic sweep on startup
  • Fixed missing cover art on related anime cards
  • Added shimmer placeholder while cover art loads for smoother transitions

Related anime

  • Added related anime on detail screens, including prequels, sequels, and spin-offs
  • Applied prequel detection to Genre Discovery results
  • Added first-unwatched-series-entry recommendations in For You and Roulette
  • Added progressive per-card loading in Genre Discovery
  • Added missing metadata when adding anime from related entries

Notifications

  • Added in-app notification panel for sequel announcements and alerts
  • Added swipe-to-dismiss for individual notifications
  • Added notification count limit and 30-day pruning for old records
  • Added FCM push notifications for sequel announcements
  • Added server-side sequel announcement detection and push delivery
  • Added startup route probe for notification bell endpoints
  • Updated notification text
  • Fixed layout issues to display all notifications correctly

Sequel notifications

  • Improved sequel notifications so users are not notified about sequels they already have in their collection, regardless of status
  • Fixed sequel notification timing so alerts are sent at the user’s configured notification time instead of being triggered by server restarts
  • Sequel notification delivery now uses the same minute-based scheduler as airing reminders, with a 5-minute grace window for short server downtime
  • Improved sequel notifications to only alert when a sequel has useful airing information, such as a known season/year, premiere date, or currently airing status
  • Sequel alerts no longer trigger for finished sequels or related entries with no airing information
  • Added smarter sequel airing tracking so users can be notified when a sequel moves from unknown timing to a confirmed season, date, or airing state
  • Planning entries can now still receive sequel airing updates when premiere information becomes available
  • Updated sequel notification copy to use specific airing messages instead of generic “has been announced” wording

Notification drawer

  • Fixed notification drawer gestures so notification cards can now be dismissed with a horizontal swipe
  • Added drag-to-close support for the notification drawer using the top handle and header area
  • Improved notification drawer animations with smoother native sheet and backdrop transitions
  • Fixed gesture conflicts between notification scrolling, swipe-to-dismiss, and drawer drag-to-close
  • Fixed modal layout on Android
  • Adjusted modal padding to accommodate safe area insets
  • Adjusted bottom sheet spacing for better visibility on mobile devices

Metadata & filters

  • Added metadata chips on private Watchlist cards: Format, Season/Year, Airing Status, Studio
  • Added metadata chips on public profile cards and detail modal
  • Added metadata fields on the detail screen with a full-width layout below the hero image
  • Applied the same layout to the Edit screen
  • Added Studio filter to the Watchlist filter panel
  • Tapping a studio chip now filters the Watchlist
  • Added Format, Season/Year, and Airing Status filters to the Watchlist
  • Added status accent border color on Watchlist and public profile cards
  • Made ratings visible on public profile grid cards
  • Added genre tags to public profile list cards
  • Added missing anime metadata to public profiles

Add anime & completed dates

  • Improved how anime is added when marked as Completed
  • Added Completed on date selection when adding anime as Completed
  • Fixed Completed anime added manually or through MAL import sometimes missing their completion date
  • Completed entries now always store a completion date, so the Edit screen shows the correct Completed on value

Stats

  • Added Studios section on the Stats screen with top 3 studios and a show-more toggle
  • Limited studio display to top 3 with expandable button
  • Added a monthly stats overview below the main stats grid, with month navigation and quick chips for Completed, Episodes, Hours, and Top Genre
  • Added a yearly Wrapped card showing the current year’s Completed anime, Episodes, Hours, top-rated anime, dominant genre, and most active month
  • Monthly and yearly stats now use completion dates, so completed anime history is reflected more accurately

Profile

  • Redesigned Profile with a cleaner 4-tab layout for Profile, Settings, Privacy, and Account
  • Moved profile settings into clearer sections, including anime titles, themes, notifications, tags, public profile, security, support, legal, signed-in devices, and Danger Zone
  • Improved Profile organization while keeping existing flows like MAL import, Manage Tags, session details, and account deletion

Anime cards & search

  • Added rating prompt, synopsis display, and clear search functionality

Visuals & layout

  • Fixed gradient display on different platforms for the app
  • Improved gradient rendering by ensuring unique IDs
  • Fixed visual alignment issues on Android by adjusting button styling

Bundling & performance

  • Bundled OG-image Inter fonts locally without relying on Google CDN
  • Reduced API server bundle size from 8.5 MB to 1.43 MB
  • Added bundle size guard with a 3 MB limit
  • Audited dependencies across artifacts for devDeps vs deps

Infrastructure

  • Added safety checks in database migrations
v1.1.0

Device sessions & security

  • Added signed-in device management with a list of active sessions and device details
  • Added approximate location display for each signed-in device
  • Added first sign-in date for each device
  • Added per-device session table where each row represents one device
  • Immediately signs out other devices after password changes using `token_version`
  • Added hashed refresh tokens in the database to reduce risk after a database leak
  • Added constant-time token comparison in `verifyAccessToken`
  • Added background cleanup for expired session rows
  • Limited null-deviceId sessions per user
  • Fixed duplicate session rows for the same device

Password reset & deep links

  • Added deep links so password reset opens the installed app using Universal Links and App Links
  • Added `aegami://auth/reset-password` and `https://aegami.com/reset-password`
  • Added ability to open the Aegami app from the password reset web page

Profile & account

  • Added Support contact card on Profile with prefilled email details including app version and device info
  • Added in-app Privacy Policy and Terms of Service as native screens
  • Opened external links through the in-app browser
  • Added show/hide password toggle on Profile
  • Added About the Author page and profile link
  • Opens About the Author page in the system browser

Title language

  • Added English anime title support with a new `title_english` field for every anime
  • Added option to show English titles as primary titles or subtitles based on user preference
  • Added Title Language setting: Original / English
  • Added setting to hide English subtitles
  • Applied English title preference across Watchlist, Dashboard, MAL search, Discover, public profiles, and Add/Edit screens
  • Added dual-title search on the Watchlist tab
  • Applied title preference to airing reminder notifications

Preferences & themes

  • Added cloud sync for preferences: theme, light/dark mode, and title language
  • Added preference sync when the app returns to foreground
  • Pushes preferences on sign-in: mode choice, title language, and accent theme
  • Added Light mode for all themes with a Light / Dark / System toggle
  • Fixed Light mode on remaining screens
  • Android navigation bar now matches the active theme color
  • Status bar background now matches the navigation bar

Watchlist

  • Added collapsible filters that combine genres, sorting, tags, and badges into one Filters panel
  • Pinned filters to the top while scrolling
  • Added expand/collapse animation for the filter panel
  • Added one-tap Clear button in pinned filter summary and Discover filter bars
  • Added status badge on every Watchlist card; tapping it filters the list
  • Added quick status switch buttons on anime cards
  • Added undo snackbar after quick status changes
  • Added quick Rewatch button on completed cards
  • Added undo support for the Watchlist quick Rewatch button
  • Added private watch links for streaming services per anime
  • Added streaming service detection and native-app deep links

Metadata

  • Added metadata fields: Year, Season, Format, Studio, Episode Duration, Airing Status
  • Imported MAL demographics and themes as tags when adding anime
  • Added studio autocomplete on Add and Edit screens
  • Added missing genre options

Discover & public profiles

  • Added People tab in Discover and moved public profiles there
  • Added filtering, sorting, searching, and genre filters for public profiles
  • Added URL persistence for filters, sorting, search, and genres on public profiles
  • Added friendly error screen for invalid `/public/` URLs

Guest mode

  • Added Guest mode with demo collection for signed-out users and guest banner on Home

Web & SEO

  • Added `/about` landing page with hero, features, screenshots, Google Play QR code, and FAQ
  • Added `/delete-account` web page for Google Play compliance
  • Moved `/privacy` and `/terms` pages to the Express server
  • Added prerendering for `/about`, `/privacy`, and `/terms` for SEO
  • Added `/changelog` page with caching and in-app link
  • Fixed white strip at the bottom of `/about` on mobile web

Google Play & builds

  • Added Google Play feature graphic at 1024×500
  • Added separate preview build ID for Google Play publishing
  • Enabled Android edge-to-edge to fix Play Console deprecation warning

Notifications

  • Added delivery result tracking for airing reminder notifications

Fixes

  • Fixed false “Not signed in” alert when changing password
  • Added backend tests for `POST /api/auth/change-password`
  • Fixed rank-up toast triggering on app load
  • Fixed native fullscreen splash on Android
v1.0.0

Production launch

  • Launched production on a single autoscale deploy where one Node process serves both API and web
  • Added production launch runbook in `docs/launch-checklist.md`
  • Added fail-fast production behavior for missing Google or email keys
  • Removed fallback signing secret in production

Account & legal

  • Added account deletion in the mobile app and on the web
  • Added Privacy Policy and Terms of Service pages
  • Completed Google Play submission audit for ads, Ad ID, and data safety

Android & splash screen

  • Improved splash screen with Android native fullscreen and removed duplicate JS wordmark
  • Added edge-to-edge Android layout to fix Play Console deprecation warnings

Fixes

  • Stopped rank-up toast spam on app startup
  • Fixed Express error handler for real exceptions
v0.6.0

Genre badges & achievements

  • Added genre badges on public profiles: Bronze, Silver, Gold
  • Genre badges can now be tapped to filter a profile by that genre
  • Added badges to the user’s own collection
  • Added progress bar toward the next genre achievement level
  • Added toast notification when a genre badge tiers up
  • Added tier legend on public profiles

Rewatch

  • Added Rewatch support with rating after completion
  • Automatically opens rating after finishing a rewatch
  • Added add, edit, and delete support for past rewatch records
  • Added rewatch history on the anime detail screen
  • Added calendar-based rewatch date picker
  • Added quick “Log a past rewatch” shortcut for completed anime
  • Added undo after “End rewatch without rating”

Watch history

  • Added completion date for first-time watches

Discover

  • Added Seasonal tab in Discover for current-season anime
  • Added season picker with year, season, genre filter, and result count
  • Added Explore tab with genre filter chips and result count
  • Added recently added public profiles to Discover

Watchlist & discovery cards

  • Added synopsis previews on Watchlist cards with tap-to-expand
  • Added synopsis previews to Discover Seasonal and Explore cards

Public profiles & SEO

  • Added public profile discovery directory
  • Added SEO support for public profiles: robots.txt, sitemap.xml, JSON-LD
  • Redesigned OG link preview image

Fixes

  • Fixed genre pill clipping, Android filter chips, and the white strip on the Add/Edit screen
v0.5.0

Rebrand & visual identity

  • Renamed the app from Nimori to Aegami across UI, deep links, emails, and OG previews
  • Added new `artifacts/aegami` directory structure
  • Added new artwork, splash screens, and launcher icons for the Aegami visual identity
  • Added themed splash screens with animations, particles, and wordmark based on the selected theme
  • Improved splash transition with a smooth fade instead of a hard cut
  • Added per-theme logo support in the app and on public profiles
  • Enlarged the login screen logo to 280×280

Domain & email

  • Migrated the project to the custom domain aegami.com
  • Verified the domain for password reset email delivery

Notifications

  • Added Firebase Cloud Messaging push notifications

Build & infrastructure

  • Added EAS build configuration for Android development builds
  • Added CI typecheck workflow
  • Standardized the codebase on `zod/v4`
  • Added workspace-wide typecheck validation
  • Added database migrations on API server start and publish
  • Added automatic recovery from database outages

Fixes

  • Fixed public profile rewatch badges, synopsis, and reviews
  • Fixed link previews on development URLs
v0.3.0

Themes & personalization

  • Added 8 anime-inspired color themes: Shinigami (dark purple), Seiran (blue), Senku (green), Kurenai (red), Raijin (yellow), Kitsune (orange), Sakura (pink), and Kage (black)
  • Added cloud sync for the selected theme across devices

Watchlist

  • Added custom anime tags, shown directly on anime cards
  • Added Watchlist sort chips: Recent, A-Z, Rating, MAL
  • Added ascending/descending sort direction toggle

Authentication & security

  • Added a secure token system with expiring access tokens and refresh tokens
  • Added forgot password and email-based password reset
  • Added Resend SMTP configuration for real emails
  • Invalidated other device sessions after password changes

Public profiles

  • Added dynamic OG images for shared profiles
  • Added public profiles that work without signing in through the server-side API
  • Added Share Profile button to profile settings

Fixes

  • Fixed missing database columns for themes and tags
v0.2.0

Authentication

  • Added Google Sign-In using a server-side OAuth flow
  • Fixed Google Sign-In issues with redirect loops, callback URLs, and OAuth URIs

Profile & cloud sync

  • Added custom avatars with gallery picker and base64 storage
  • Added cloud storage for collections and profiles

Stats

  • Reworked the Stats screen from habits into achievements
  • Added genre descriptions to achievement cards

Notifications

  • Improved Android notification stability

UI cleanup

  • Cleaned up rating UI by removing stars and adding clearer labels
v0.1.0

Project foundation

  • Initial project setup, originally under the name Nimori
  • Added a pnpm monorepo structure with TypeScript
  • Added an Expo mobile app with email authentication: sign in, sign up, and sign out

Watchlist & dashboard

  • Added a dashboard with currently watching anime and quick +/- progress buttons
  • Added a Watchlist with statuses: Watching, Planning, Completed, Paused, Dropped
  • Added import from MyAnimeList using search or URL
  • Added MAL community score display

Discover & stats

  • Added Discover tab with Daily Recommendation, Anime Roulette, and Genre Discovery
  • Added Stats screen with genre-based achievements

Notifications & sync

  • Added local notifications for airing reminders
  • Added cloud sync through a PostgreSQL API server

Fixes

  • Fixed Android icons, preview-environment notifications, and duplicate keys in Discover
  • Fixed cloud sync data consistency
← Back to Aegami