This user has been banned.
June 17, 2025
A music server designed to take advantage of Musicbrainz tagging. See README for a demo vid + AI Usage (mostly edit predictions and boilerplate gen. All logic/UI by me :3)
Bug fixes galore. Time to tell a short story:
I was recording a demo video for this devlog, showing features, commands, etc. And then plura just, didn't overwrite the message sent. I was rather confused, since this was working since forever and the code wasn't touched (which also means I didn't ever test it after initial impl. This is called foreshadowing).
So, down the tracing rabbit hole we go. I opened up my logs and... They were useless. I didn't add info logs when the bot would attempt to update a message, so I had no idea where I was in the process. Debug logs were there though. I tried turning them on. That for some reason failed, since systemd is weird. The conclusion? use systemd's native logging framework. I am now able to query the logs with precision, like so:
journalctl -f -xeu plura --user -o json FSENDERID=Some(SlackUserId(\U07958J0JJU\)) SPAN_TARGET=plura::events | jq
This allows me to see all logs for myself, for all events that are sent that are related to me. If I wanted to do fuzzy finding and other things, I could do that through jq. Through this, I figured out that I was returning early if the message content didn't match a trigger. Awesome stuff honestly. Whodathunk good observability in production helps debug issues?
Anyways, here's the demo video of everything working as intended. Since the last devlog, I also added:
My website got a brand new light mode! Turns out uh... I forgot to actually contrast check my light mode. Oops. The new one is WCAG3 approved and also required a lot of tweaking to the theming engine I use internally (leonardo colors + my kleur colour scheme).
Fun things that happened
- I had to completely redo how I did light/dark mode for the hero section on the top left corner of the landing page. There's a lot more variables and weird css sections. Do not view my websites CSS. It is not pretty.
- I learnt a bit more about ARIA labels. Turns out, can't have an alt tag. You use a label. Glad I caught this now by accident lol. Probably should've made a separate commit, but who cares about git history :ferrisAware:
- Browsers can't contrast check image backgrounds. Lame. Firefox is giving me a lot of false positives for that
Anyways, I think my own website is finally polished enough to ship. I'll be updating it a lot soon enough though. I have a lot of silly ideas ready :)
I reworked my post page! The CSS has been entire redone and so has the table of contents. It's quite a bit nicer and the HTML is a bit more semantic (better for accessibility)
Fully finished the home page! Looks pretty damn cool now I think :3 I updated a bunch of the CSS to be a bit more modern and also slightly more compressible (thanks lightningcss).
I've completely rewritten this section of my website
- Uses animejs instead of motionone
- CSS completely rewritten
- HTML/DOM simplified
The code is now (slightly) less cursed and makes a bit more sense
Currently in the middle of a complete rewrite of my website.
I'm also going to be retheming a lot of elements, gradients, and some specific sections a lot more than the currently are on the live version. Next devlog will probably be the landing page done
My personal website, featuring a bunch of silly ideas and chaotic posts.
MVP is done! Since the last devlog I added:
- message deletion
- member disabling/re-enabling
- getting information from a message
- renamed to plura
I think I'll be shipping soon. I'm pretty happy with how the bot has turned out so far and I think it is genuinely pretty useful :D
I added much better documentation for all commands and also documented some internals so it's a bit easier to understand what's going on.
Fun fact about the internals: The bot treats slash commands like a CLI. This means I can use clap and get a load of nice features for free, such as this nice formatting for help commands and nice errors in case of a user input error
I added the ability to reproxy already sent messages! On the first test I accidentally swapped a check to see if the user requesting to reproxy sent the message. Oops. After fixing that and a couple other issues it worked!
I added the ability to edit messages! My slack API library currently doesn't support rich text right now which is a bit sad, but it should eventually. So for now, you can edit plain text message.
I reworked triggers to update entirely through commands rather than a modal. This also revealed an issue where prefix were not working correctly. Oops.
I added member aliasing! The bulk of these 3 hours was actually refactoring and updating code to be more refactorable and usable. I also have much better debugging logs, and errors look pretty now when I get them. I've only shown the user-facing feature in the video, but the main work happened behind the scenes
A slack bot to make the lives of plural systems easier, similar to PluralKit. Check the README for the (little) AI usage, A demo video, and more.
This was widely regarded as a great move by everyone.