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