

Chat v3 features/improvements/ideas/suggestions :)
Alright, so
We need dark mode enabled browsers (mostly anything made after like 2015-ish) to be able to automatically show a dark mode theme in the chat. Ideally, one should be able to define a color theme for themselves by choosing colors for like 10 different elements (background, text, links, admin usernames, normal usernames, guests usernames, etc). Those settings would be saved in the users profile table and automatically applied after signing in.
Chat auto-scrolling Invert the chat's auto-scrolling feature so that it never auto-scrolls unless you activate the auto-scroll feature. Instead of auto-scrolling, it will always remain where you scrolled it and when new messages arrive, it will display an overlay button at the bottom of the window to allow you to go to the first unread message near the bottom of the chat. Ideally, offer at least an option to auto-scroll conditional on the scroll position being bottomed out like IRC clients, Pidgin, Discord, etc. do.
We need to add like 15px of padding at the bottom of pictures so that if the user posts text after the picture, it's easier to read. Right now, the text is extremely close to the picture and we look quickly, we might not even see that there's text at all.
Threads We need to be able to have rooms or threads for specific topics. At the beginning, this will only be created by admins to reduce the spam and maintenance work. Once an admin creates a chat "room" there will be an URL that anybody can visit to participate in that chat topic. The general/public chat will remain the default room as always. This can quickly excalate to a bunch of complex features, like to be able to subscribe/unsubscribe to rooms, to be able to see all rooms you're subscribed to on the same chat window or not, etc etc etc... for v3 we should try to keep it relatively simple, otherwise it's gonna take a very long time to code and test.
Chat CPU usage Chat can quickly use a lot of CPU resources when many people are signed in. There are lots of optimizations that need to be done, such as stop joining users table with chat session tables, create a subset of only active chat sessions (signed in users) in a separate table (temp heap) and only poll from that table, no joins, no HDD DATA reads.
Edit posted messages Allow real time editing of posted messages for up to 30 seconds, then the messages would become read only. This would be useful for users to be able to fix typos and accidentally submited half sentences :P ---> 5 minutes is more typical. Maybe allow up to 5 minutes if nobody has replied yet? Also, it would very convenient to borrow Discord's "press the Up Arrow key to trigger editing" keyboard shortcut to reduce the need to switch hands between the keyboard and mouse.
Halt sending message in chat when ...
Chat currently only supports Unicode characters within the Basic Multilingual Plane. We need to support supplementary/astral plane characters (i.e. characters above U+FFFF) so that all those emojis can be used in the chat. This has nothing to do with UTF-8 vs. UTF-16, aside from when people mistakenly assume that UTF-16 is a fixed-width encoding and then get bitten when non-BMP characters result in codepoints getting split across a surrogate pair. Emoji with codepoints at or below U+FFFF (such as ❤️) work just fine, as should any other trick which requires only codepoints within the BMP, like z̶̈́͜a̵̬̔l̷͓̐g̶̡̕ô̸̰ ̴̧͌t̸̪̃ĕ̶̡x̵̩̽t̵̲́ or s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶ ̶w̶i̶t̶h̶o̶u̶t̶ ̶H̶T̶M̶L̶ ̶o̶r̶ ̶C̶S̶S̶. Read Breaking Our Latin-1 Assumptions and Let's Stop Ascribing Meaning to Code Points by Manish Goregaokar, Dark corners of Unicode by Eevee, and the UTF-8 Everywhere Manifesto for more. (However, if you're using MySQL for the site backend, it could be a "UTF-8 problem" in that MySQL's original UTF-8 implementation is broken in just this way and you need to change everything from
Options for people with sensory processing issues or other disabilities Some people (eg. it's common among people on the autism spectrum) have what are referred to generally as "sensory processing issues". Ways this can manifest include things like sensitivity to bright lights or loud noises, difficulty dealing with on-screen motion, problems with unexpected noises, etc. There are also large groups of people who can see, but still have visual disabilities. As such, I have the following suggestions:
Beyond that, animations currently aren't as effective as communication aides as they could be, because there's no indication of who triggered them, so I'd like to suggest some kind of indication of that, whether it's not omitting the triggering command from the chatlog (which would also help new members learn what the commands are) or inserting some other indication in the log of who triggered what when.
A "Download Original" link in the lightbox for images I like to archive memes and other such things with as little generation loss as possible, and with a conveniently unlikely-to-collide filename. Currently, all I can get is "_resize.jpg". --> Although this has nothing to do with the chat app, would having sequential numbers (along with the correct file extension of course) be OK instead of _resize.php when you save the picture? FYI, original filenames are similar to 1000000001.jpg, 1000000002.gif, 1000000003.jpg, 1000000004.png and so on. Would that be OK? --> It would be helpful, but the most important thing is getting the original, non-resized file. I can type in something like 20230216_1 as the filename if necessary, as long as there's no generation loss.
Chat Editing Summary of what happened in the chat bot. The ability to edit messages 1 minute after posting for registered users only. VIPs and the poster of the message can see the edit history of a message.
Offensive Message Editing. Instead of just deleting messages with offensive words make it where it'll just refuse to post while leaving the message in the message box anfdhighlighting the offending words giving the poster the opportunity to edit their message. Or Auto censoring of offensive words.
Polls Just as it sounds timed Polls like in twitter or GroupMe. Definately should be a VIP only feature and possibly limit the amount of polls a day a user can put up with a 30 minute limit per poll. Maybe even limit the amount of active polls to one per chat. Also Make polls avaliable in articles and software pages but with the option of not having a time limit.
Vertically Growing Text Entry Field One of the most common reasons I find myself needing to edit posts is that it's too awkward to do a quick proofreading pass before pressing Enter. Discord compromised between the Pidgin approach of always having a multi-line text entry field and the current approach used by MR chat by having its text entry field grow vertically so text word-wraps instead of scrolling without it always being as tall as the longest possible message.
Use The User's Timezone For Timestamps When Possible Instead of always using Toronto time, check if
In-page Popup To Avoid Losing Scroll Position or Pending Messages When Re-Login Is Needed Currently, when something goes weird with my browser or my DSL or anything that invalidates the login cookie, the jump to the login page loses my scrollback position in the full-page chat window and discards any message I was trying to post. It'd be much nicer to have login be achieved through a little popup on top of it which doesn't reset the state, similar to what WordPress's post editor does if you just leave it logged in on a draft long enough for your session to expire. Please add your suggestions here. Don't be afraid to explain in detail what you'd like.
|
|