Nicolas Constant - DevBlog

Where I write about Sengi and other thoughts

Little overview of why I started to develop Sengi

(this article was first published on Feb 19 on Medium, I'm just migrating it back here)


Sengi is a desktop client app for Mastodon and Pleroma that will be available for Windows, MacOS, Linux and Web-browser. It will have a strong focus on multi-accounts support.

Some background

I discovered Mastodon in early 2017, at that time, I wasn’t using Twitter and other social medias anymore, mostly by lack of time and the fact that I didn’t like that much the evolution of those platforms. I’ve never been a fan of Facebook, but for Twitter it was quite different, I created my account after I’ve followed internationals events like the Iranian Protests of 2009 via the service, I was amazed to be able to access such uncensored information directly from the field.

At that time, there was also a desktop application named TweetDeck that heavily influenced my way to consume social medias: a never-ending feed of curated information flowing in a part of my screen. It was multi-accounts and multi-feeds and looked like this:

Old TweetDeck

But I mostly used it in “single column” mode (there was even a dedicated button to automatically shrink the windows to this mode):

Old TweetDeck in single column mode

This made it very easy to work/watch video/post-process photos/etc. while keeping an eye to it.

In 2011, TweetDeck was bought by Twitter, the desktop client was killed and replaced by a WebApp (that is what we know today) and was far less functional than the desktop client at that time. And even worse, was completely useless for my usages. Combined with some time-consuming personal projects, I slowly stopped using Twitter and social medias in general. And never really came back, even if years later, TweetDeck finally brought back some of the functionalities I missed.

…and then Mastodon put a foot in the door

Without a doubt, Mastodon brought me back to social networks, I was mostly interested by the technical aspects at first, but I finally stayed, seduced by the community I met there, like in the early days of Twitter, I was discovering people again and not robots and robot-looking users yelling at each other.

Also, the fact that it was FLOSS combined to the decentralized aspect of the network was a very strong warranty that the network will be long-term resilient and not at the mercy of anyone. I saw that I could invest myself again in a social network without worrying to see functionalities taken back and APIs closed after some years. As a developer it was a relief.

The other ActivityPub projects

I found fascinating to see how much projects are evolving around ActivityPub (the protocol that Mastodon revealed). Other micro-blogging platform came along like Pleroma, Youtube-likes as Peertube, Instagram-likes as PixelFed, Medium-likes as Plume (BTW this blog will migrate to a Plume instance when it will be mature enough [June 2019 Edit: well, only fools don't change their minds. :) ]), Grooveshark-likes as Funkwhale, etc.

Also, custom Mastodon and Pleroma clients came along, as Tusky, Fedilab (Mastalab), Toot!, Amaroq, for mobile OS. There are also some desktop projects that are very promising like Whalebird.

All this made me even more interested by this Federation and I started to plan to invest my own skills in this ecosystem. That’s why I started to develop some proof-of-concept tools like Followbot, mastodon API .NET wrapper, or Twitter-to-Mastodon bridge.

So… why creating Sengi?

Since I like what I’m seeing in the Fediverse, and that I believe that it will grow over the years, I feel more and more the need of a desktop client clearly oriented toward my own usages.

Also having my own codebase will makes some experimentation I have in mind easier to test and deploy.

Of course, I guess that I’m not the only one that would like a heavy focused desktop and multi-accounts client app out there, and it will be my own tribute to the current movement.

Here is a list of the core functionalities that are behind Sengi:

Non-exclusive multi-accounts support

Since we saw in the Fediverse the creation of thematic instances, most people open accounts in multiple places like we do with good-old-flavored forums. I would like to be able to browse a hashtag from an instance X, sitting next to a list from an instance Y, and be able to interact with those two with an account from instance Z. It’s really the DNA of Sengi since it impacts all the other functionalities: you can launch a search using an account A and follow the result from account B, etc.

Multi-columns support with a focus on single-column display

I have a heavy usage of lists, hashtags, and local timelines, so I need an easy way to navigate between all those columns, especially when displaying only one column at the time. Also, I don’t want my focus to be lost because I’m looking to an account, a thread, or other operations: I want the columns to move only when needed.

Customized Content-Warnings Policies

While CW is one of the major and loved functionality of Mastodon, it’s also one of the most infuriating part of my experience with it, especially when browsing very long threads and having to click on each messages to read them. I would like to have at least a global and unique button to reveal all CWs at once. Also, since we all have our own sensibilities, I would like to be able to set custom policies so that not all topics gets CWed by default, and other kind of customization (automatically add CW on content that have the word “Z” for example, etc).

More automation awareness

I think that an account tagged as a bot should be displayed more visibly in the timeline. Also I’d like to have more insights on automation from other accounts, if you’re posting statuses from tools like Mastodon Twitter Crossposter or MOA, you might not be as active on the network (replying etc) as you look. Just to be clear, I’m not against automation since I wrote myself equivalent tools, I just want its use to be more explicit in the UI.

Statistics free

I don’t like “social metrics”. Does someone with a lot of followers should change your way to behave with him? Or do you follow only people with thousands of statuses? Do you choose to boost or fav a status based on its boost/fav history? No, because it’s irrelevant. But those metrics makes people changes their behavior: they can try to have a lot of followers to appear “popular”, they can try to post certain kind of content to get engagement, etc. That’s why Sengi will hide most metrics by default to prevent those influences.

It was planned, but I didn't take the time before: migrating from Medium to an ActivityPub publishing platform.

I was mainly publishing about Sengi there, but I have also some other ideas that I would like to write about and make them grow.

Welcome to this new place. :)