909 views
 owned this note
# Neo ## PROJECT STATUS: dormant, probably not much use in adding stuff below for the time being ## Roadmap 4 hour blocks: - [ ] Basic sync caching - $S(n,m)=\sum_{i=1}^n ⌊nim⌋im$ - [ ] ## Ideas dump Ideas welcome, put them somewhere at the bottom or in a relevant section ### possibly funded features - protocol/client library - registration - join/leave rooms - registration-to-join flow - libolm integration - opportunistic E2EE UI - room invite link generator UI - convert to Redux state management ### basic client features - Keeping cache so no initial sync every refresh - Room joining / leaving - Room directory - Create room - Relevant commands - Member list - Sidebar(?) list - User info/profile lookup - Invite, retract invite - Moderation - kick / ban - redact other people's messages - mass-redact - Room info - editing room info - Notifications - Desktop notifications - Push notifications(?) - Notifications list - Presence - Read markers? https://github.com/matrix-org/matrix-doc/blob/travis/msc/hidden-read-receipts/proposals/2285-hidden-read-receipts.md (needs server suppport) - online/offline - typing - configurable per-room - room media/files(/URL?) browsing - search - User settings/profile info - aggregations - edits - reactions - Room upgrades - follow m.tombstone event - allow viewing older history - E2EE (blocked on cross-signing?) - VOIP - For Keanu - Responsive layout/PWA - Ability to change application styling (despite CSS modules) - Guest support ### Known issues - Need a working CSS modules / ICSS setup ### Goals / abstract ideas - blocklists as rooms - blocklists as 'flags' - communities (wait till redesign by matrix.org) - lightweight client - embedabble - performance - widgets - tiled UI - joining rooms temporarily, without cluttering your account - use a guest acccount for this - could be used for room previews - implementing some form of user profiles (room based) - implementing other MSC's that haven't landed yet in ways that are (semi) backwards compatible - multiple accounts - instead of just switching, combine them into one view, but with very distinctive colours - Plugins - Let users load plugins to do "botlike" things (similar to /ddg in riot) - so, you want the client to be scriptable? neat! - /rainbow (very important) - Searchable Smileys like in Riot, but it should also be able to list all - custom emoji - (Mobile Friendly) ++n8fr8 ProgWebApp for offline access to messages, background updates, etc - Chats, where a new message is should appear at the top, not depending on the type (Person to Person and Groupchat) - sorted by last message received, not unread status - Server admin tools, if that's not outside the scope of Neo - E2E key management - In the riot UI, it looks like synapse generates a new key everytime you log out and back in, even on the same device. Could keys be grouped to cut down on this clutter? - Key generation/management is handled by the client, not by the homeserver - and the spec recommends that browser-based clients re-generate a new keypair for every login (which is why Riot seems to do this in browsers, but not in Electron). - key backup, labeling backups (see above) - revoke keys? - [ ] .well-known login flow - [ ] displayname disambiguation with homoglyph parsing https://www.npmjs.com/package/unhomoglyph - [ ] Remind me later about this message - [ ] adding personal notes to people's profiles, for later reference (hubzilla does this, apparantly discord too) - [ ] read/typing notifications - [ ] don't send in specific room - [ ] Telegram Inline Bots - Allow a user to send a message to some other user and copy their response to the room they're really talking to. - Limit to accounts marked as bots? - /sudo, /do, /impersonate, /su