# Hornchat Roadmap > **Completion:** 37/58 - [x] Refactor serverside to make it easier to bugfix - [x] Device manager on client - [x] Option to show safety number on client - [ ] Consider switches as conversation events (client) - [ ] Limit file uploads to 10MB (client) - [ ] Show message send status instead of hanging (client) - [ ] Rate limit for sending messages - [ ] Drag and drop, and paste - [ ] Limit to 5000 characters (client) - [ ] Modular server - [x] `public:/api/authentication`: user ID + TOTP authentication; and device token verification - [ ] `public:/api/conversation`: service for everything chat-related - [x] `public:/api/keyserver`: service to exchange public keys - [x] `public:/api/profile`: service for user profile management - [x] `public:/api/status`: service for status management - [x] `public:/api/verification`: service for safety number verification - [x] `pluralkit:/refresh`: service to update PluralKit data - [x] End-to-end encryption - [x] Per-device keypair - [x] Asymmetric encryption (private and public keys) - [x] PluralKit integration - [x] Different bubble colors for different senders - [x] Fetching information as often as possible - [x] Update current fronter as often as possible - [x] Fetch member information frequently - [x] Prefix overrides current fronter - [x] Handle PluralKit being down - The app should still work as intended even when PluralKit is temporarily unavailable. - [ ] Conversation events - [x] Replies - [ ] Messages - [x] Text message - [x] Markdown support - [ ] File message - [ ] Photo - [ ] Video - [ ] Audio - [ ] Text/code - [x] Other files - [x] Read receipts - [x] Typing - [x] Start typing - [x] Stop typing - [x] Real-time preview - [x] Security measures - [x] Safety number changes every time a new device logs in - [x] User can delete devices from account - [x] Rate-limiting - [x] Profile and status - [x] Username **(not needed because of PluralKit)** - [x] Profile picture **(not needed because of PluralKit)** - [x] Update dynamically with PluralKit - [x] Status - [x] Online - [x] Offline - [ ] Background functionality - [ ] Message syncing - [ ] Status on mobile - [ ] Notifications