Tags

All 38 items on Vale.Rocks categorised with the tag 'Stoat'. Content relating to the online communication platform supporting text, voice, and video communication.

Peer-to-peer (P2P) is a networking model where, instead of using a centralised server which all clients connect to, clients all connect to each other in a distributed model. Peer-to-peer is great in that there isn’t anything to host on an instance level. The onus of distribution is handled by users themselves.

So, why doesn’t Stoat use a peer-to-peer approach for voice and video streaming? Peer-to-peer was briefly considered and experimented with but ultimately deemed unsuitable for a few reasons. They are:

  • Privacy and security. As clients are communicating directly, there is high chance of leaking sensitive data, such as IP addresses. It also limits Stoat’s ability to enforce privacy protections.
  • Latency and scale. Real-time peer-to-peer streaming works reasonably well with a handful of people of close geographical proximity, but as it scales the amount of data throughput becomes larger, which increases latency. Streaming to many people is also hard on device performance. Channels can have hundreds of users in them, and peer-to-peer breaks down at that scale. Implementing peer-to-peer for small-scale situations and client-server for large-scale situations is possible, but is a significant amount of work.
  • Usability. Peer-to-peer often works great, but sometimes it doesn’t. Occasionally there will be firewall issues or devices won’t have the performance required to stream smoothly. Features like scaling video for users on lower bandwidth connections, recording chats, transcribing speech, and smoothly handling moderation are all things that become much more difficult or demanding (and in some cases impossible) in a peer-to-peer architecture.
  • Complexity. While it is possible to engineer around some of these issues, doing so introduces a lot of complexity. Stoat has a small team with limited availability, so avoiding additional overhead is important to be able to actually get something out the door that can be maintained. A server-client model is also consistent with Stoat’s behaviour as a whole.

A Complete History of Stoat

Sow discord to reap success.

An in-depth history of the Stoat chat platform. From its precursor Riot, through to all the additions and changes the platform has seen and received as it has grown. Details from when it was once Revolt to the change into Stoat and details of all the bumps and successes along the way.

https://vale.rocks/posts/stoat-history

Each time we see a major influx of users at Stoat, blocks come with it. An influx can see hundreds of thousands of users signing up on the platform over just a few days, so I can understand it looks suspicious. That’s a huge sudden increase in emails going out and a huge increase in traffic to the site. It probably trips some heuristics somewhere which generally do a good job to remove unscrupulous actors. However, sometimes, they get things wrong.

Ideally, if you get incorrectly blocked, you contact the blocker and they remove the block for you. If you’re lucky you get to go through several levels of support until you finally get to the people who can get you unblocked, then they give you a collection of forms and systems and processes to go through. If you’re unlucky, there are no means of escalation, and you’re simply out of luck – there are no means of appeal. If you do manage to get unblocked, then it’ll only be for a little while, because eventually they’ll do it again and you’ll have to do the process over. It is a futile effort.

The most common and aggressive blockers are internet service providers, email providers, email spam lists, and web filtering services provided by anti-malware companies. Companies that maintain filters for profit seem to keep their lists to themselves, so they’re not too much of an issue. ISPs and email providers and spam listers, however, do share their lists around. Once on one block list, you propagate to them all. Then you have to try to remove yourself from them all in quick succession, because the propagation only works one way. Blocks tend to propagate; unblocks do not. If there are blocks still remaining, then they’ll return, because getting a block removed does not add you to an allow list and merely removes you from the explicitly blocked list.

It is just a sad state of affairs. It really hurts little independent operations who can’t do anything about it. It especially hurts as it comes during periods of growth, where the team is preoccupied and users are forming first impressions. Established operations are obviously far less affected, and if anything does go awry, they have greater sway and lines of contact for resolution. The web is not as open as one would hope, especially when you can be arbitrarily blocked without recourse.

It is sad to say goodbye to things, even things that are silly to be sentimental about. I was added as the primary moderator of what was then the Revolt Lounge in mid-2023. It was my ‘in’ to working on Stoat, and as such, is a special server for me, but all things come to an end. Today, after a solid five-year run, the Stoat server upon Stoat is being overhauled to focus exclusively on the platform itself rather than being a general discussion hub.

I’ve long pushed for the server to be kept around as a melting pot of everyone on the platform. It is a great way to keep a finger on the pulse of the community, and it has led to a great deal of valuable discussions leading to great outcomes. However, Stoat is of such a size now (1.4 million users) that it is time for the server to take on a new form.

It is good and healthy for Stoat as a platform to avoid centralisation of users in one server. It lowers it as an attack vector for undesirable behaviour, freeing up more resources for platform moderation, and it also prompts users to disperse around the platform. More individual thriving servers is good. More niches, more communities, greater variety.

It is sad to see it change, but it is time for change to happen. My thanks to everyone I’ve had pleasant conversations with over the years.

I’ve been asked what framework I used to make the dashboard for my Stoat bot AutoMod so fast and snappy.

It is genuinely just slick HTML/CSS/JS that communicates with an API layer I developed. The dashboard itself doesn’t depend on even a single external library.

The framework-addled mind simply can’t comprehend not reaching for a bloated framework and a handful of libraries for everything.

AutoMod used to have a red accent, but the logo was rainbow-ified for pride month a few years ago and it stuck.

Sometimes people are critical of it which weeds them out, and sometimes people message me because they appreciate the representation and it makes them feel safe.

Another pride month has come and gone, but AutoMod will remain as colourful as ever. True pride is deeper than recolouring a logo for a month.

Nothing like opening Bluesky to see NSFW furry artwork featuring the new Stoat icon/mascot I designed.

Lovely to see that rule 34 of the internet is alive and well…

I’ve been smashing out 12+ hour days to handle the new user influx at Stoat over the past week. I’m absolutely knackered. Gonna take a bit of a break.

To everyone who has tried to contact me about something, I’m sorry for my tardiness. I’m not trying to ignore you; I’m merely lacking the mental bandwidth to respond right now.

Launching new branding is always a tad stressful. Will people like it? Will they reject the new in favour of the old?

However, the launch of the new Stoat icon I designed has been a resounding success. People love the new icon!

They love it so much, in fact, that since launching yesterday it has already been named ‘Toast’ by the community. 🍞

Thousands of people have liked the announcements of the new icon across social media, and many more have reached out to me personally to express their fondness.

Already I’ve seen fan art of the new logo across a few platforms, and it really is wonderful to see everyone embrace it so openly.

In our moderation panel over at Stoat, we have a button to deploy bees.

We don’t want to have to deploy bees, but sometimes that is the only viable option. Releasing bees as a moderation action is always a difficult call to make, but sometimes bees are the only tool for the job.

Vale's user inspected in the internal Stoat admin panel. There are actions including 'Suspend', 'Ban', 'Wipe Messages', and 'Bees'.

We have strict policies in place regarding bee usage. As it is, of course, a destructive action, we do also have a confirmation modal to avoid accidental bee deployments.

Modal reading 'Release the bees. Are you sure you want to send the bees?'. The two options are 'Cancel' and 'Deploy'.

My Stoat bot AutoMod had a major outage that I’ve spent several hours working to fix. It has eaten half my weekend and been quite the ordeal.

Just now it has started working perfectly again. It is fixed, but I have no idea what broke in the first place nor what fixed it.

There is no code difference between the working and non-working versions. The most awful solution to a problem is one that happens out of chance and for reasons unknown.

The onset seemed to be related to having some 180K users, 64K channels, and 6K servers cached.

🫠

Today I launched a new blog for my Revolt bot AutoMod! Given the many thousands of users that rely on the bot, I decided that a central location for news, updates, technical details, and general information was necessary.

I’m really pleased with how it turned out visually, though I’m sure I’ll be tweaking and refining it for the rest of eternity. The rainbow mesh gradient behind the header came out particularly nicely, in my opinion.

https://automod.vale.rocks/blog/introducing-the-automod-blog

A blog page. At the top is a translucent navbar which is followed by a rainbow mesh gradient behind a header which reads 'Introducing the AutoMod Blog'. Underneath that is the text of an article.

Just wanted to say that everything is going really well with development of new features for my Revolt bot AutoMod.

Message from AutoMod Testing bot saying, 'Something went wrong: AxiosError: Request failed with status code 403', followed by me replying, 'You are my own creation and you will obey me'. To the many thousands of users that rely on it, you didn’t see anything, and everything is fine.

Sorry for being MIA these past few days. Russia and Turkey both banned Discord, so I’ve been tied up with Revolt. We’ve had some 250K users join in the past 4 days, bringing us to over 450K users total!

If you aren’t aware, Revolt is a FOSS chat platform and decent alternative to Discord that I work on.

You can check it out at https://stoat.chat if you’re interested.