Overview
Personalize your AniDev experience with customizable preferences including theme colors, parental controls, search history tracking, and content filtering.Accessing Preferences
Your user preferences can be accessed from:- Your profile page at
/profile - The settings menu in the navigation bar
- Quick settings panel (if available)
Theme Customization
Customize the visual appearance of AniDev to match your style.Accent Color
Change the emphasis color that appears throughout the interface.Select Your Color
Click the color selector to open the color picker. Choose any color from the spectrum.The default color is
#0057E7 (blue).Color Picker Component
Component:src/domains/user/components/user-settings/select-color.tsx
Your accent color preference is stored in localStorage under the key
enfasis and synced with your user preferences in the database.Parental Control
Enable parental control to filter age-inappropriate content.Enable/Disable
Click the toggle to enable or disable parental controls.When enabled:
- Content is filtered based on age ratings
- Mature/explicit content is hidden
- Family-friendly viewing experience
Parental Control Component
Component:src/domains/user/components/user-settings/parental-control.tsx
Search History
Control whether AniDev tracks your search history.Tracking Search History
When enabled, AniDev tracks:- Recent search queries
- Search timestamps
- Popular searches for quick access
- Search suggestions based on history
src/domains/user/stores/user-store.ts
true (tracking enabled)
Clearing Search History
To clear your search history:- Navigate to user settings
- Find the “Search History” section
- Click “Clear Search History” button
- Confirm the action
src/domains/user/components/user-settings/search-history.tsx
This removes all saved search queries from your profile.
User Preferences Storage
AniDev uses a dual-storage approach for preferences:Local Storage
Stored in browser localStorage for immediate access:enfasis- Accent color valueparental_control- Parental control state (as JSON boolean)trackSearchHistory- Search history tracking preference
Database Storage
Persisted to Supabase for cross-device sync:- User preferences are stored in the
public_userstable - Synced on sign-in and when preferences change
- Ensures consistent experience across devices
Saving Preferences API
Service:src/domains/user/services/preferences.ts
POST /api/saveUserPreferences
Accepts:
userId- User ID (from session)enfasisColor- Hex color string (optional)parentalControl- Boolean state (optional)
At least one preference field must be provided when updating preferences. The API validates this requirement.
Loading User Preferences
When you sign in, preferences are automatically loaded. Component:src/domains/user/components/user-settings/load-user-preferences.tsx
The loading process:
Merge with Local Storage
Combine database preferences with local storage values.
Database values take precedence for signed-in users.
Global User Preferences Store
All preferences are managed through a Zustand store for reactive updates. Store:src/domains/user/stores/user-store.ts
Using Preferences in Components
Preference Defaults
Default values when no preference is set:| Preference | Default Value | Description |
|---|---|---|
enfasis | #0057E7 | Blue accent color |
parentalControl | true | Enabled for safety |
trackSearchHistory | true | Tracking enabled |
userInfo | null | No user data |
watchList | [] | Empty array |
Anime Preferences
Beyond visual preferences, customize your anime discovery experience:Content Preferences
Set during sign-up (can be updated later):- Favorite Genres: Action, Adventure, Romance, Sci-Fi, etc.
- Favorite Studios: Studio Ghibli, Mappa, ufotable, etc.
- Preferred Format: TV, Movie, OVA, ONA, Special
- Watch Frequency: Daily, Weekly, Monthly, Occasionally, Rarely
- Fanatic Level: Casual Viewer to Hardcore Otaku
- Homepage recommendations
- Search result rankings
- Suggested anime lists
- Personalized content discovery
Updating Anime Preferences
Update your anime preferences through the profile editor: Service:src/domains/user/services/profile.ts
Preference Sync Across Devices
Your preferences automatically sync when you:Preference sync requires an active internet connection and valid authentication session.
Privacy and Data
What’s Stored
AniDev stores the following preference data:- Visual customization (accent color)
- Content filtering settings (parental control)
- Search behavior (if tracking enabled)
- Anime preferences and favorites
- Watch history and progress
What’s NOT Stored
AniDev does NOT store:- Browsing history outside the platform
- Personal conversations or messages
- Payment information (if not implemented)
- Third-party account credentials
Data Control
You have full control over your data:- Update or delete preferences at any time
- Clear search history whenever you want
- Export your profile data (if implemented)
- Delete your account and all associated data
Troubleshooting
Preferences not saving
Preferences not saving
If your preferences aren’t persisting:
- Ensure you’re signed in to your account
- Check that cookies and localStorage are enabled in your browser
- Verify you have a stable internet connection
- Try clearing browser cache and signing in again
Accent color not applying
Accent color not applying
If your chosen accent color isn’t appearing:
- Hard refresh the page (Ctrl+Shift+R or Cmd+Shift+R)
- Check if the color picker shows your selected color
- Verify the color is being saved to localStorage
- Try selecting a different color to test functionality
Parental control not filtering content
Parental control not filtering content
Ensure:
- Parental control toggle is enabled (green/active state)
- The setting is saved (check localStorage or database)
- Refresh the page to apply changes
- Some content may not have age ratings and won’t be filtered
Preferences different on each device
Preferences different on each device
If preferences vary across devices:
- Verify you’re signed in with the same account on all devices
- Ensure all devices have internet connectivity
- Try signing out and back in to force a preference sync
- Check that localStorage isn’t overriding database preferences
API Reference
Preference management endpoint:POST /api/saveUserPreferences- Save or update user preferences
