# 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