Open Free and open source, read the code Get it Donate App help Contact
Messenger
The app
Developers
Project
Legal

A flamenet.io account is not a Flamenet Messenger account. The two sign-ins are separate.

What's new

Every release of the apps and the relay, newest first. Written for people using Flamenet Messenger; the parts that only matter if you run your own relay are at the bottom of each release.

2026-09-21

android 0.29

Messages stop disappearing when a contact reinstalls, a lost phone can be erased from another one, and conversations start carrying a second signature chosen to outlast the arrival of a quantum computer.

  • Fixed, When a contact reinstalled, everything they sent before you accepted their new keys was destroyed. The relay had marked those messages delivered and forgotten them, this phone refused them because the keys had changed, and the refusal was swallowed instead of held. Tapping Accept new keys brought nothing back: they saw delivered messages and you saw an empty conversation under a security warning. Refused messages are now held and delivered once you accept. The check that refused them was right and has not changed; throwing them away was the mistake.
  • New, A lost Android phone can now be erased from another device you own. The relay and the iPhone have been able to do this for a while and Android had no part of it, so an Android phone was the one that could not be wiped at all. Erasing also asks before it happens now, because it was previously one tap with nothing in the way.
  • New, Stories can go to a group, and one story can hold more than one picture. Both were built and neither could be reached: the composer had no way to choose a group, so nothing could produce a group story even though arriving ones were already checked against the group roster. Posting to a group replaces the audience rather than filtering it, so a group story reaches the group and only the group.
  • New, Account settings has Invite a friend. It asks the relay for a code, shows it large, and shares a link to a page with the code and the store buttons on it. If you have run out of invites the relay's own sentence now reaches the screen, so you are told you already have five unused ones rather than just being told you hit a rate limit.
  • New, Every device now publishes a second identity key alongside its existing one, and signs with both. The existing key is safe against anything that exists today but not against a quantum computer, which could forge one and be believed as somebody else. The new one is built to survive that. You will not see any of this: there is nothing to turn on, and nothing in the app yet tells you whether a particular conversation is using both signatures or only the old one. Two cases are still on the old key alone, a phone that has not taken this update, and a phone restored from a backup made before this release, which keeps the identity it was restored with rather than being given a new one behind your back.
  • Fixed, Swiping the app out of Recents hung up a call you were on. That was written when removing the app also stopped the call anyway, and it stopped being true when the app started surviving the swipe to stay reachable. The call now survives it too.
  • Fixed, When a server started signing with a key this app had never agreed to, you were told that something went wrong reaching that server. The app already knew exactly what had happened and had a warning written out naming the server, and that warning was being thrown away on the way to the screen. You now get the warning, the name of the server, and both of the things it can mean: a change the operator made on purpose, or something else answering in its place. The app cannot tell those apart and does not pretend to.
  • Fixed, Blocking or removing someone left them able to ask the relay whether you were online. Both now revoke that, and revoking the last one actually reaches the relay, which it previously did not.

If you run your own relay

  • The post-quantum identity is optional on the wire. A device that publishes none is treated as classical rather than refused, so a relay serving a mixed fleet needs no change and nothing is cut off mid-upgrade.
  • A relay that strips or substitutes a published post-quantum identity is now refused by the app rather than silently accepted. The app pins the identity itself and not merely the fact that one existed.

2026-09-18

android 0.28 ios 0.28.0

The conversation stops looking like a stack of boxes, and every screen on the iPhone finally says which screen it is.

  • Changed, Messages sat in square boxes. They are rounded now on both phones, except for one corner, which stays square and points at whoever wrote the message: yours at the bottom right, theirs at the top left. A bubble rounded all the way round is the shape every other messenger draws, and that corner is what keeps this one telling you which side a message came from without reading it.
  • Fixed, On the iPhone, Calls and Stories had no heading. Each was a tall band of blue with a single button floating in it and no words at all, so there was nothing on screen saying which tab you were on. Both have a title now, and so does every other tab, drawn the same way as on Android: the name of the screen and the buttons that act on it side by side rather than on separate lines. The headings also take up considerably less room than they did.
  • Fixed, Search on the iPhone was dark blue text on a dark blue bar, which is to say invisible. It is legible, and it is still where it was.
  • Fixed, The devices screen printed a limit it had not been told, so an account at the limit could read "6 of 3 registered". It shows the number the server actually gives it.
  • Fixed, A history the app can no longer read used to be a dead end. It can be discarded from the banner that explains it, which loses the old messages on this device and lets the account be used again.

2026-09-18

android 0.27

Android kept missing messages and calls because swiping the app away switched off the part that receives them.

  • Fixed, There is no push on Android, by choice: no Firebase, no Play Services, nothing that needs a Google account. The service inside the app is the delivery path, so whether it is running is whether the phone can be reached at all. Swiping the app out of Recents destroyed it, and nothing brought it back, so the phone went quiet until somebody opened the app again. One handset was seen forty-two messages behind thirteen hours later. It now survives the swipe.
  • Fixed, No call path ever asked for the microphone. Only the voice-note button did, so anybody who had never recorded one had never granted it, and every call they placed or answered started without a microphone and carried on anyway. The far end heard nothing and the call looked like it had simply gone away. The app asks now, and if you say no the call is not placed, because a call nobody can hear is worse than no call.
  • Fixed, A reaction or a poll vote that never reached the server looked exactly like one that had: the screen redrew and the reaction was just not there afterwards. Failures are shown.
  • Fixed, The devices screen printed a device limit it had not been told, so an account at the limit could read "6 of 3 registered". It shows the number the server actually gives it.
  • Changed, Groups and recents sit in the same boxes as the rest of the screen rather than floating loose on the background, several screens that had lost their margins have them back, and the send button finally has a name for anybody using a screen reader.

2026-09-15

ios 0.25.0 android 0.26

Your app now proves who may see you, instead of the server keeping a list of who knows whom.

  • New, Whether somebody sees you as online used to depend on the server holding your contact list, because that is what it checked against. Your app now gives each contact a token of their own, sent inside the encrypted channel, and the server is given nothing but a hash of it. Presenting the token is what shows a presence, so the server does not need to know who your contacts are to answer.
  • Changed, The server still keeps the contact list itself, and still answers from it for any pair whose apps have not both updated. Taking that list off the server is the next step and it needs everybody on this version first. Until then this is groundwork, and the honest description of what it buys is that a copy of the database stops being a copy of everybody's contacts once the list goes.
  • Fixed, A story posted to a group was filed as the sender's own story with no group on it. Two branches of the same code both handled stories and the first one took every group story before the second could see it.

If you run your own relay

  • Presence by token needs a relay carrying the roster_tags table, added in the same release. An older relay refuses the two new routes and the apps fall back to the contact list, which is the behaviour anyone mid-upgrade gets and is not an error.
  • Nothing is removed from the buddies table by this release. An operator who wants the contact graph gone still has to wait for the release that drops it.

2026-09-15

android 0.25 ios 0.24.0

Sign out is reachable again, the keyboard stops covering what you are answering, and the app can show you its own crashes.

  • Fixed, On iPhone, Sign out sat under the floating tab bar and could not be tapped. The bar was told to leave room and it did, on every screen built one way and on none built the other, and Account is the one built the other way. Every screen leaves room for it now.
  • Fixed, On Android, opening the keyboard pushed the newest messages up behind the box you type in, so the keyboard hid the ones you had just opened it to answer. The conversation follows the keyboard now.
  • New, Both apps can show you what your phone recorded when the app crashed or froze: what stopped, when, and which build it was. None of it is sent anywhere. There is no upload behind a setting and no upload on a timer. If you want us to see one you save it and send it, and the screen names the address.
  • New, A Donate row in Account, which opens the page on our site. It pays for the server, an outside audit, and Apple's developer fee. Nothing in the app is unlocked by giving and nothing is held back without it.
  • Changed, Picking a username somebody already has says so in the same words whichever kind of server you are joining. One of the two used to call it a handle, which is not the word on the field you just typed into.

If you run your own relay

  • The Android crash screen reads the record Android keeps itself and writes nothing of its own, so there is no new file on the device and nothing new for an operator to hold. The iPhone side keeps its own file, because iOS delivers a crash report once and then forgets it.
Free and open source · No ads · No phone number · Your own server if you want one