| # **App Name**: CipherIdentity | |
| ## Core Features: | |
| - Instant Messaging: Send and receive text messages in real-time. | |
| - Media Sharing: Share images, videos, audio, and files. | |
| - Group Chats & Channels: Create and join group conversations. | |
| - Voice & Video Calls: High-quality calls using WebRTC, including group calls. | |
| - Emojis & Stickers: Rich messaging experience. | |
| - Presence Indicators: Online/offline, typing, last seen. | |
| - Push Notifications: Send push notifications. | |
| - Light/Dark Mode: Switch between light and dark mode. | |
| - Device-Based Login: Secure authentication without phone numbers or emails. Each device generates its own cryptographic identity. On signup, generate a Recovery Key locally for account restoration. | |
| - Themed Responses: Use a tool to allow the LLM to evaluate if an incoming message or prompt is related to either: travel, relationships, recipes, or weather. If it is, decorate the message history with a themed css effect in order to provide a relevant stylistic flourish to the response, helping it seem more dynamic. | |
| - Data Saver Mode: Batch Sync β Instead of a persistent WebSocket, the app syncs with the server every 30s when enabled. Queued Messages β Outgoing messages are stored locally and sent in bulk on the next sync cycle. Bulk Delivery β Incoming messages are fetched and delivered together. Compression β Use message batching with lightweight compression (e.g., gzip or Protobuf). Fallback β User can switch back to real-time mode anytime. | |
| ## Style Guidelines: | |
| - Font: 'Inter' (sans-serif) for headings and body. | |
| - Icons: Minimalist vector style. | |
| - Layout: Responsive 12-column grid. | |
| - Animations: Subtle transitions for navigation, smooth message interactions. |