fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

10K
active users

search.jabber.network

🥳 Big news! While half of Europe is hanging out in Hamburg at 38c3, we got bored and accidentally our web frontend.

It comes with a bunch of new features, which we'll post about in the next couple hours and days, but the one which will probably be most obvious is that we now feature a built-in, automatic dark mode based on your browser / OS preferences 🌙 .

Check it out at search.jabber.network !

search.jabber.networkAll channels - search.jabber.networkThe top 25 public chat rooms on the Jabber network.

This release also marks the implementation of a feature people have been asking since forever: Search / channels by language. You can now do that!

To search for all channels in french, you could type "lang:fr" in the search bar. Like this: search.jabber.network/search?q

"lang:foo" can be combined with other search terms.

More information on how to search by language is found in the FAQ: search.jabber.network/docs/faq

search.jabber.network"lang:fr" - search.jabber.networkSearch for public Jabber channels matching lang:fr on search.jabber.network.

The "search by language" feature is also available via our API. Apps such as and already support it automatically.

Another bit you may have noticed, especially if you visit the home page regularly, is that avatars now always load correctly.

The old website had a weird fun Python runtime type error which occurred sometimes when the browser had an avatar in the cache already.

Because we deleted the almost 10k lines of Python code and replaced it with Rust, that can't happen anymore \o/.

(Also, it's now faster and less memory use, which is nice.)

You can now add hashtags to your / channels on search.jabber.network! Just add a series of hashtags to the end of your channel's description.

Note that we maintain an allowlist of tags here: search.jabber.network/tags/ Tags which are not on that list are ignored.

Suggest new tags we should add/allow in the replies to this thread!

search.jabber.networkChannel tag index - search.jabber.network

In addition to the dark mode, you may have noticed that the entire theme changed. We thought we should try to bring s.j.n into this decade with a completely rewritten CSS.

Initially, we used bootstrap, but then we were so appalled by the typographical layout bootstrap has by default (unless you slap .mb-something on everything) that we dropped most of it.

We also now use modernfontstacks.com/ , which gives us instantly loading pretty fonts (except on some really slim Android ROMs :|).

modernfontstacks.comModern Font StacksSystem font stack CSS organized by typeface classification for every modern OS. The fastest fonts available. No downloading, no layout shifts, no flashes — just instant renders.

All over all, the entire (HTML+CSS) front page is just 15.17 kB (excluding avatars) transferred size (i.e. gzip'd), which means that you can get a reasonable render of the listing even on a 56kbit/s modem in less than 3 seconds (less than 1.5 seconds if you have the CSS cached).

Avatars unfortunately add 5-8 kB each, so that's that. We might optimize that later.

Speaking of performance: We also tuned our setup. As it turned out, the default storage was not quite suited for what we're doing and switching to sqlite storage made a huge difference.

Maybe you can tell from the graph below when we switched.

At first we thought that the terrible performance was because we had switched to a new server in December, ARM64-based. That turned out to be a red herring though.

Anyway, this server is now dedicated for s.j.n, so no more "Bad Gateway" because a disk got filled with someone's cat pics (yes, that happened. twice. this year.).

(Oh, and also, no more "can't access my cat pics" because someone DoS'd s.j.n. yes, that also happened. twice. this year.)

Have you noticed how we have been saying "channel" in this thread, and not "chat room" anymore?

That's right: search.jabber.network now uses the terminology (see docs.modernxmpp.org/client/gro ) throughout the entire interface.

If you spot a place where we still mention "group chats" or "chat rooms" (aside from the technical explanation at the top of the "for room owners" page), let us know~.

docs.modernxmpp.orgMulti-user Chats - Modern XMPP

Keen observers may have noticed another change.

During the rewrite, we used the opportunity of having produced fresh code to switch licenses.

Before, we used AGPL for everything, now we switched to MPL 2.0.

The reason for that is that we want to open the possibility for deployments (like ourselves) to extend the main code with proprietary extensions. Now why would one want that?

The answer is: fighting abuse.

It is useful for deployments to have algorithmic abuse detection of which neither parameters nor source code are available for attackers to inspect.

We are aware that people are already gaming the listing (the greatest praise a search engine can get, really). We also have received reports about inappropriate (listing-policy-violating) rooms in the past.

In order to act quicker on such things, we have now a set of proprietary extensions as well as a moderator team who can act on such reports.

This is a big step forward and was another driving factor behind the rewrite of the front end. Not just because of the licensing issue, but also because of what we mentioned elsewhere: Keeping two separate code bases (the Rust crawler (since May) and the Python web front end) in sync when accessing the database was a challenge (and not the fun kind).

To (I think) conclude this thread, let's say thanks to a couple open source projects without which none of this would have been possible.

Here's to @prosodyim, diesel.rs (no writing SQL by hand!), xmpp.rs (obviously), Poem (the Rust web framework), minijinja (go check it out if you liked Jinja2 in the Python world! Same author!) and all the infrastructure projects in the Rust ecosystem which underpin these, such as Tokio, Rustls, etc. etc..

Talk about standing on the shoulders of giants.

@sjn
Good job, must have been a lot of work writing it from scratch in Rust. But it's always a good idea to replace Python with another language 😎

@amarok The web frontend was the last bit remaining which was written in Python. The Rust rewrite of the crawler was finished earlier this year already.

It was... an interesting experience developing two independent codebases, accessing the same database via two different ORM implementations.

We certainly won't miss that.

@sjn
Nice feature! These two tags are missing (they should cover plenty of channels) : religion, linux.

@sjn How long should it take for newly added tags to be recognized?

@kris Between 1h and 6h. Has it worked by now or do you need assistance? If you need assistance, please send us the channel's address.

@lorenzo Good question without good answer, except: it's now there :).

@sjn @lorenzo Looks like the gaming tag is semi-broken. It says one channel (which I added a few days ago), but when you click on it there are no channels shown.

@kris Thanks for the report. There is no obvious cause for that, we have to look into that.

@sjn the "fiction-writing" tag is also not being parsed for some reason.

@kris Parsing of fiction-writing should be fixed now.

@kris The gaming tag thing is weird. It seems to have resolved itself, but it's not clear how. Don't hesitate to ping us again when you see the room vanish from the tag page again.

@sjn
What about a tag like #local or #region for channels which are for people of a special town or something?

@eversten Difficult question. Is such a tag truly useful, or would people not rather search for the town/regions name?

I mean otherwise you have a large amount of channels tagged regional or something, but they are about Los Angeles, Houston, Berlin, Paris, Budapest, Kyiv etc. etc.

So not really useful to narrow down, is it?

@sjn
Maybe you are right... regional is more a category and not a hashtag.