-
Mo
chevron_right
Timothée Jaussoin • pubsub.movim.eu / Movim • 15 December 2025
Some of you might have experienced difficulties to open Movim as a Progressive Web App on your Android device.
There is a know issue on Chrome related to that https://issues.chromium.org/issues/466790291 , lets hope its being fixed soon
#android #movim #xmpp #bug #pwa
- label
-
Mo
chevron_right
Here comes Movim 0.32, codename Wilk!
Timothée Jaussoin • pubsub.movim.eu / Movim • 16 November 2025 • 5 minutes
Make your profile public or private on the Movim instance you're on, with the possibility to define a local nickname. This will allow other users of the instance to find you in the Global Search feature.
Make your blog public or private to only restrict its content to your contacts... or open it to everyone.
-
Mo
chevron_right
Timothée Jaussoin • pubsub.movim.eu / Movim • 9 November 2025
Movim is (finally!) having a members bar in its chatroom view
This will allow you to know who is online in a glance... and set the bases of upcoming exciting features!
Feature after feature Movim is becoming a serious alternative to centralized services such as Discord, Telegram or Slack ♥️
You can already try it out on https://mov.im/!
#movim #xmpp #feature #chatroom #federated -
Mo
chevron_right
The difference between XMPP and ActivityPub, explained through the Blog feature 🗒️
Timothée Jaussoin • pubsub.movim.eu / Movim • 4 November 2025 • 8 minutes
- An XMPP account or an XMPP service (a subpart of an XMPP server) can host nodes.
- Accounts can follow those nodes.
- Accounts can publish items on those nodes.
- Items that are published on those nodes are articles that can have different forms but are all valid Atom 1.0 elements (yes the same thing you can find in the RSS/Atom feeds online, we are not reinventing things, just reusing widely available technologies 😜.)
-
chevron_right
Clarifications and answers about this little "complain list" about Movim
Timothée Jaussoin • 11 September 2025 • 2 minutes
-
reply
Original post deleted
-
Mo
chevron_right
Here comes the new Movim release, Encke 0.30.1
Timothée Jaussoin • pubsub.movim.eu / Movim • 23 April 2025 • 1 minute
-
Mo
chevron_right
Good news everyone, Movim 0.30 Encke is there
Timothée Jaussoin • pubsub.movim.eu / Movim • 4 April 2025 • 4 minutes
- One to allow declaring an SFU server in a Muji Call
- One to allow chatrooms to have permanent call rooms to join
-
Mo
chevron_right
Timothée Jaussoin • pubsub.movim.eu / Movim • 27 March 2025 edit
Today Movim just reached 10K commits
, and this year we will celebrate the 15th anniversary of the project
The upcoming 0.30 will also be a huge milestone with plenty of exciting features, stay tuned#milestone #release #birthday #anniversary #xmpp #movim
This might be the largest #Movim #release for many years, and it includes numerous fixes and new features in the 3 major topics Movim offers: instant messaging, social networking, and video conferencing.
Let's cut the blabla and dive directly into the exciting things you can find in this release. 😸
Blog and Communities
Follow everyone!
As explained with plenty of details in our previous article, The difference between XMPP and ActivityPub, explained through the Blog feature, we completely changed the way you can follow someone on the XMPP network to get notified about their blog publications.
Until now, blog subscriptions were "implicit" in the sense that you needed to send an invitation and have the contact in your contact list to allow the blog subscription to be effective.
In the new flow you now have two buttons, one to add a contact in your contacts list and one to follow its publications, and they are fully independent. 👌

The new "Follow the Contact" feature is then close to what you could find for many years with the "Follow the Community" one.
A couple of tickets were opened on the ejabberd and Prosody bug trackers to complete their XEP-0060: Publish-Subscribe implementation (the XMPP extension that defines the bases of all the social features on XMPP; see the article linked above for all the details). Once those features are implemented server-side, Movim will be able to notify you about a new follower and give you follower statistics on all the blogs (including yours in real-time).
Improved post publications
Movim now allows #PeerTube videos to be embedded in your articles; to do so, just attach a PeerTube link to your article, and Movim will take care of embedding the video directly in your publication.
When publishing a post, Movim allows you to write your article in Markdown to format it. Movim now supports GitHub Flavored Markdown that allows you to format your articles, like including tables, advanced links, and images customizations, and even more!
Know Your Privacy Settings
Movim allows you to configure in detail how you want to share your content with the world, with two important settings:
In this release some information cards were added to ensure that the user is aware of the current configuration while browsing their own profile.

Share, like, and comment on articles more easily.
You can now pick several friends or chatrooms you're in when sharing an article.
Articles are now better embedded in the chats, and the likes and comments flows and layout have been completely redesigned to be more practical, especially on mobile.
The articles' footers were redesigned to improve and simplify all the interactions you can have with them.

Chats and Chatrooms
Message history navigation and search
Browsing and searching in your chat conversation history is now simpler than ever!
Many message history issues were fixed. In this release, Movim is keeping track of the earliest message received in your discussions and then knows exactly when it needs to request your #XMPP server for more messages (or not) when scrolling up.
If you use PostgreSQL, each message is now indexed and can be searched instantaneously using keywords in our new Search History feature.
On the screenshot below, the user is browsing old messages and can go "back to the future" easily with the bottom right button.
You can also see the new "chat navigation bar" that is listing the currently connected users in chatrooms; this sets the base for many upcoming exciting features around chat administration and user exploration and discovery 😉.

End-to-End Encryption and Bridges Integration
On a more technical note, the OMEMO-related code was completely redesigned and simplified. This fixes numerous issues we had with key synchronization and message decryption. There are still some improvements to do, especially on the encryption library itself (but it looks like Converse.js is working on it) but this is already a huge step in the right direction. 😎
During the summer a lot of work was also done with the Slidge developers to improve the bridges' integration in Movim, including many fixes around stickers and GIF integration, chatroom management, and account linking administration.
Video-conferencing
A lot of optimizations were done in the video-conference stream management. Movim is now adapting and compressing more of your video streams if it detects that the network is degrading during the call. The resolution and frame rate are also reduced on some low-end devices to allow them to handle the calls properly.
Movim now also proposes H.264 streams first when negotiating with your contacts. Lots of devices, including mobiles, can encode and decode video with dedicated hardware, drastically reducing power consumption and overheating while doing so. Naturally it falls back to other formats (VP9, VP8) if it's not possible to have H.264.
This also improves the general video quality during a call for a generally lower bitrate.

Some tests are planned to push the next generation video format, AV1, that will push those boundaries even further 😋.
Internal changes and general changes
The core internal code was also heavily refactored and simplified the past few months. A lot of hacks and workarounds were removed with the redesign of the interaction of the Movim user-interface part and the XMPP handling part. This also improves some performances during navigation and when interacting with your content.
The Movim architecture was also redesigned to simplify the container integration. You can now build and deploy a Podman container on your machine for testing purposes in one unique console command; check out the related documentation.
In this release, Movim dropped the php-curl dependency by relying on reactphp/http, which was already offering similar features.
When uploading a file or picture, Movim gives you detailed feedback on every step of the upload, compressing the picture, sending the file to Movim, and Movim sending the file to your XMPP server.
And to finish, lots of details in the layout and interface were improved and redesigned to fit with the Material Design 3 design system, this allows Movim to integrate even better with Android devices.
What's next?
Movim 0.32 set the bases of lots of very exciting things for 2026.
We are planning to work on many exciting things including chat discussion threads, persistent video conference calls, chatroom roles, Spaces, scaling up video conference calls, and many other things ✨.
Releases after releases Movim is becoming a coherent, simple, and feature-complete platform for all your social interactions while being federated and 100% built on standards.
We really need your help to free up more time to work on it and integrate all the upcoming more exciting features, as well as cover our existing expenses (servers, travelling to technical meetups, goodies...). You can support us in many way by joining our Patreon, doing a single donation or becoming a, official sponsor of the project.
Of course, you can also share the good news around, join Movim and invite all your friends on it 😸!
That's all, folks. ❤️
Blogs are one of the historical features of Movim, the upcoming 0.32 release will redefine how you interact with them and how you can follow them.
In this short article you'll discover how they are handled in #Movim by also learning the particularities of the #XMPP Network compared to the #Fediverse one.
XMPP and ActivityPub: Two Different Approaches
Movim is only relying on the XMPP #protocol to store and exchange the information it manages. When you authenticate with your account (for example, john@movim.eu), Movim will directly connect to your XMPP server (movim.eu in our example) and will then provide a complete social and chat experience on top of it. Everything you will do will be stored on it: chat messages, uploaded files, profile pictures, publications and many other things.
It is then the role of your XMPP server to contact the other servers to spread and receive the information to your contacts and followers.

This architecture is completely different than on the Fediverse (the federated network that is built on the #ActivityPub protocol). In the Fediverse each platform has a specific role (microblogging, picture sharing, publishing and watching videos), and you have to create an account on each of them to use their respective features.
Work is then done by the developers between each of those platforms (Peertube ActivityPub documentation, Mastodon ActivityPub documentation...) to try to standardize their interactions with the others on top of some generic protocols.

In XMPP clients and servers developers are standardizing together the concepts and interactions they want to manage in extensions (called XEPs) before or during their integrations and those concepts are made generic enough to be directly handled easily by the other projects.
For example, there is an #XEP to manage your chat messages history, XEP-0313: Message Archive Management, there is another XEP that explains how you can bookmark and synchronize chatrooms XEP-0402: PEP Native Bookmarks, another one that defines how you can publish Stories XEP-0501: Pubsub Stories, there is one that shows how clients handles emoji reactions bellow chat messages XEP-0444: Message Reactions...
We have today more than 500 XEPs that standardize most of the core features of all the social interactions we can have online. And we are working actively on what is missing. 😉
You can see the complete list on the XMPP Software Foundation website. One useful feature is that by clicking on the buttons on the right column you can see which clients and servers are actually implementing them! It's super useful when you want to integrate one in your own project and you want to test the integration with the others. 🤩

So! It means that the Prosody, Tigase, MongooseIM, OpenFire, ejabberd XMPP servers (yes there are many of them already) that host the millions of accounts, including yours (movim.eu is using ejabberd) can already allow you to do microblogging, publish long articles, photos, messages, do video-conferencing... out of the box. How convenient! ✨
It is then the role of the clients that connect to it to offer a "view" on those features. And Movim is one of those clients. To say it differently, Movim (like all the other XMPP clients) stores no important information; it just caches and displays what it found on the network.
Blogs, a simple news feed on your XMPP account
In Movim blogs are not different from all the features above. They were historically defined in 2008 in an XEP called XEP-0277: Microblogging over XMPP that evolved in 2022 into XEP-0472: Pubsub Social Feed.
This new XEP clarifies and generalizes some concepts of XEP-0277 but the core idea stays the same:
So what is a blog then?
A blog is a node, hosted on your own account, managed by you, where you can publish short articles (called "Briefs" in Movim) or very long ones (like this one ☺️) in the form of Atom 1.0 elements that people can follow!
When you publish a new article on your blog Movim will then simply send it to your XMPP server and store it in your own personal blog node linked to your account. Your friends that follow it will then receive a notification that a new article was published. And... that's it!
So how can I publish an article on my blog?
Some of the Movim users are sometimes asking, "But where is the API to publish blog posts?" Our API is the XMPP standard 😸! By just reading the XEP and using one of the many clients or libraries (that are available in all the main programming languages), you will be able to publish articles in a few lines without even knowing how Movim does it.
But you actually want to see how it's done on the wire, isn't it?
Let's take a small example with john@movim.eu publishing an article on her blog. 😛
<iq id='pub1'
to='john@movim.eu'
type='set'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:microblog:0'>
<item id='1cb57d9c-1c46-11dd-838c-001143d5d5db'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<title type='text'>Trying out Movim ✨</title>
<id>1cb57d9c-1c46-11dd-838c-001143d5d5db</id>
<published>2025-05-08T18:30:02Z</published>
<updated>2025-05-08T18:30:02Z</updated>
</entry>
</item>
</publish>
</pubsub>
</iq>
This is what Movim is actually sending when John publishes an article on her blog. An XMPP library will also be able to do it; if you're motivated, you can also write it by hand (but you don't need to; that's why you have libraries and clients for that! 💪).
More in detail, we can see the actual article in the <entry/> element; it contains a title, an identifier and some dates of publication and update. The example is super simplified but know that you can put way more information (like attached files, tags...). And as you can see it is an actual standard Atom 1.0 element so you can easily take articles from your WordPress blog or any other website that can generate an Atom or RSS feed and publish them on your XMPP blog, natively!
We actually publish this entry in a specific item having a unique ID on the node urn:xmpp:microblog:0(that is the standard identifier for all the blogs on the XMPP network) and we send it directly to the john@movim.eu account.
If John wants to update her article, he just has to publish it again on the same item. If he wants to publish a new one, he publishes another <entry/> in a new item having a new identifier on the same node, super simple!
And how can I subscribe to a blog and be notified?
Movim used to have an implicit subscription system; this means that when John and Yoko were added mutually as contacts they were automatically receiving each other's blog notifications. This wasn't really understood by our users and was quite hard to understand; it also had some limitations.
In Movim 0.32 the subscription will be explicit, with a simple Follow button. This means that you no longer need to be friends mutually to follow each other, and that you can just follow anyone (that has a public blog, you can also restrict your blog to your contacts only if you want) on the network.
Now let's imagine that Yoko wants to follow John's blog. Using her own XMPP client she simply has to send a subscribe message to the node where John is publishing his articles.
<iq type='set'
from='yoko@jabber.fr/movim'
to='john@movim.eu'
id='sub1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<subscribe node='urn:xmpp:microblog:0'/>
</pubsub>
</iq>
And that's it 😎! See how simple XMPP is?
In the future when John publishes a new article his own XMPP server will check all the persons that are subscribed to the node and directly push a message with the fresh article in it (there are some optimizations involved there to reduce the load, but let's keep things simple ☺️). Here Movim is just an interface to write the article and publish it; the XMPP server is actually taking care of handling the article and delivering it to everyone, and they can do it massively with very little resource.
What's next?
Movim 0.32 is bringing a totally new approach to how you blog on the XMPP network. In the upcoming months we are planning to integrate more features around that new Follow button, like being able to list your subscribers, get some general statistics on the amount of followers that an account has, or get notified instantly when someone subscribes to your blog.
We found that some of the XMPP servers we're using were missing some of the standardized features at the moment, some tickets were opened (see ejabberd#4484, prosody#1972, ejabberd#4483, ejabberd#4481 and prosody#1973 and once those features are integrated, Movim will follow up. 😌
In the XMPP community we think that taking time to discuss and work together to standardize all the concepts we want to integrate in the protocol is the best way to make it the best, most modular, reliable and scalable protocol out there to handle all our social interactions online. Don't hesitate to join us (and invite your friends 😸) if you have questions or you want to develop crazy ideas on the protocol.
That's all, folks! 🎉
As this list of complains about Movim was published publicly I wanted to give my point of view and answers publicly as well 🙂
can't list friends, (filter) subscriptions to blogs\pods
The search feature gives the contact list and allow search in it, the Subscriptions page is filtered by Pubsub services, there is plans to clarify this in the upcoming months.
can't @tag name in comments. autosuggestion, autocompletion not exist.
Yes this feature doesn't exist, autocompletion works in the Chat by using the <tab> key. There was some discussions on how to handle @ in XMPP clients, and I personally did a hackaton on it some times ago, but for now the implementation is on pause. If you wan't to help on this topic we would be pleased to invite you in the upcoming discussions 😉
no search function for community
Yes, use the Global Search and type the Community name, its the second section in the results, just bellow the contacts. If it doesn't appear its that its not in the cache. There is no centralized database of all the Community on the network for now so the Communities need to be at least visited once to be fully cached and searchable on a Movim instance.
movim api for custom frond-end (alternative UI) web clients? like mastodon alternative fron ends, web clients. not represented.
The Movim API is defined there https://xmpp.org/extensions/.
Movim is a web frontend and client for XMPP, it was never meant to define a new protocol or API on top as it will be heavily redundant a lot of work. If you want to communicate with Movim use directly XMPP, especially through the XEPs listed there https://xmpp.org/software/movim/ .
can't query list of rooms on other servers .
On the contrary of Communities there is a global search feature for Rooms, if you use the + button in the Chat and start typing any keyword it will search on the https://search.jabber.network/ service.
by default all account microblogs are "Private" & therefore unreadable (unless manual mutual subscription performed) .
This is a decision that was made since the beginning, "Privacy First for Blog content". Users allow to open their blogs to everyone and are by default restricted to their friend.
If you want to change this default privacy setting in the upcoming releases you're welcome to discuss it with us 🙂 I'm not against re-discussing this.
option to hide/filter out some one else unwanted post from feed, doesn't exist.
Yes, it was actually added a few weeks ago, just block the person and you'll not see its publications anymore.
no lookup of bloggers.
?
the only desktop (nonweb) client that support pubsub seems to be only gajim.
Movim is a Progressive Web App and can therefore be "installed" on Desktop and mobile (using Chrome it works best). But its not a Movim issue if other clients doesn't implement what Movim supports.
on the bright side, hey, videocalls seems working! alongside other multimedia rich spa features & animations.
Thanks 🫶
Following last month's 0.30 Encke important upgrade here is the first bug-fix release!
What's new?
Animated pictures support in the image proxy
Movim is proxying all the pictures to recompress and cache them along the way (the cache needs to be configured in your web server, see the dedicated documentation for that).
For animated GIFs, it used to only take the first frame and compress it in WebP, like for all the other pictures. Now Movim tries to turn it into an animated WebP!
The Picture Proxy was also refactored to handle some cases with some buggy picture URLs.
New Avatar and Banner Configuration Panel

The avatar and banner configuration panel was redesigned to give you a nice overview of your final profile page.
XEP-0392: Consistent Color Generation support! 🎨
The internal color palette handling was refactored and slightly adjusted to integrate better with the Accent Color feature introduced in 0.30. A few new colors were added along the way.

Movim is now implementing XEP-0392: Consistent Color Generation. This means that the same user or content will have the same colors on all your different XMPP clients. ✨
Slight adjustment of the ChatroomPings service
Movim is implementing XEP-0410: MUC Self-Ping (Schrödinger's Chat) to ensure that you are still connected to your chatrooms even if there is no activity in them. The ping-pong system was a bit too sensitive and could declare a disconnection in some cases; the timeout was adjusted to prevent most of those unfortunate disconnections from happening.
Dropping MySQL support
Movim had "MySQL" and PostgreSQL support for a while already. The original MySQL database was forked as MariaDB and both started to evolve very differently the past few years. MariaDB finally became the "default" database in most of the Linux distributions.
The two databases were always considered as "flavors" until now, but only MariaDB was extensively tested with PostgreSQL during development.
It seems that the now MySQL DB is not compatible with Movim anymore and will require very specific support to fix all the migrations and some queries that are not working anymore on it.
It was therefore decided to only keep the PostgreSQL and MariaDB support, PostgreSQL still being the (strongly) recommended one.
What's next?
Going back to the multi-participant calls project, lots of exciting things to do! Stay tuned. ☺️
That's all folks!
Only a few months after the previous version here comes Movim 0.30, codename Encke ☄️
This release is actually way bigger than you might think! Indeed, during half a year a lot of work was poured into the part II of the Movim Live project that has been the biggest evolution in Movim for many years. This side project was finally merged and stabilized in the main branch and we are proud to unveil it to you 🤩.
Movim Live, Part II
Funded by NLNet, the Movim Live project's aim is to bring a modern and complete stack of video-call features to Movim and to create a strong alternative to the other proprietary and centralized platforms.
The Part I goal was to modernize the existing one-to-call call stack. Part II was to bring multi-participant calls, and we did it!
How was it done?
Movim is now implementing XEP-0272: Multiparty Jingle (Muji) combined with XEP-0482: Call Invites. The first XMPP extension, called Muji, allows a user to join a temporary chatroom and initiate an audio or video call with any of the participants inside it. The second one allows this user to be invited or invite contacts to join this "Muji Chatroom".
Another client is already implementing those two XEPs, Dino, and it's actually the first time that we have two clients on totally different stacks (one is a desktop client, the other one a web application) that can do multi-participant calls on a standard protocol.
How can I create a group call in Movim?
The flow is quite close to a one-to-one call, except that you start the call in one of your group chats.

The group call will then appear in your chatroom list, similar to what you can find on Discord. The other participants will then get an invitation and will be able to join the group call once their camera and microphone are set up correctly.

What can I do in a group call?
Once you're in, Movim offers a couple of nice features to enjoy the call.

You can toggle between the grid view and the "active-speaker" view (where the actively speaking person is put in front). When using the grid view, the speaking person's microphone is slightly bigger and blinking in green.
The existing screen-sharing feature has also been ported to group calls, allowing you to share your screen with the others. More work will be done on the part to allow you to stream your screen and webcam simultaneously and use Movim as a nice stream-gaming platform or live-conference tool in the future ✨.
A lot of work was also spent on ensuring a proper integration of the call in the user interface and the user flows. When you're in the chatroom, the group call is integrated into the chat view, and when you leave the discussion, it moves automatically in the corner. You can also put the group call in full screen at any time.
And as always, you can toggle your webcam and microphone off any time.
Movim Live, Part III
So what's next? In the upcoming and last part Movim is actively working with the ProcessOne team on a new set of XMPP extensions to bring massively scalable group calls in XMPP.

The current Muji flow is to initiate a one-to-one call with each of the Muji call participants, as you can see it doesn't scale that much. An SFU, or Selective Forwarding Unit allows you to call a specialized server, send your video and audio streams and receive the other participants streams in return.
This should require standardizing two new XEPs:
The current flow is an "invite-based" one; this means that once everyone leaves the group call, it is automatically destroyed. We would like to allow chatroom admins to create one or several "call rooms," name them, and allow their users to join and leave the calls at their convenience. This will bring a more modern experience and bring many new ways of interacting with audio and video calls in XMPP.
Hopefully this Part III should be delivered in the upcoming months; stay tuned!
What else?
The 0.30 is also bringing some other exciting features 🤩.
The reactions are now displayed in the detailed message view.

Some parts of the UI were modernized and simplified, such as the emoji picker view or the navigation bars.
Movim is now supporting Unicode 15.1 with plenty of new emojis to use 🥳.
When one of your contacts is publishing a new Story his avatar will change, allowing you to easily open it.

The Movim UI, and especially color management, was also deeply refactorized and simplified. The Light and Dark modes are better looking and an exciting Accent Color feature is now allowing you to customize your Movim even more 🎨.


See you soon!
So that's all folks ✨.
We hope that you'll really enjoy all those new features. If you're a server admin we invite you to add your server to join.movim.eu and join the federation.
We would also be really pleased if you share Movim around, invite your friends to join, and talk about it. Movim can be a really nice open-source, federated and standard alternative now. Let's grow the community ☺️!
Thanks again to all the contributors, translators, and other bug finders that allowed this exciting version to be launched 💕.
See you next time 😘.