HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
element-hq
synapse
Python2024–2026
element-hq / synapse

synapse

Synapse: Matrix homeserver written in Python/Twisted + Rust

8Distinct people
12Mentions
0Explicit recommenders
4.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Synapse: Matrix homeserver written in Python/Twisted + Rust

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month12 dated mentions

Observed mentions: 2024-12-05 13:28:25 UTC to 2026-09-14 14:52:42 UTC.

012342024-12-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsDec 20242025-01-01 00:00:00 UTC to 2025-02-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-02-01 00:00:00 UTC to 2025-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-03-01 00:00:00 UTC to 2025-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-04-01 00:00:00 UTC to 2025-05-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-05-01 00:00:00 UTC to 2025-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-06-01 00:00:00 UTC to 2025-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-01 00:00:00 UTC to 2025-08-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2025-08-01 00:00:00 UTC to 2025-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-01 00:00:00 UTC to 2025-10-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-10-01 00:00:00 UTC to 2025-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsOct 20252025-11-01 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2026-02-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-02-01 00:00:00 UTC to 2026-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-01 00:00:00 UTC to 2026-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-04-01 00:00:00 UTC to 2026-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-05-01 00:00:00 UTC to 2026-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-06-01 00:00:00 UTC to 2026-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-01 00:00:00 UTC to 2026-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-08-01 00:00:00 UTC to 2026-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-09-01 00:00:00 UTC to 2026-10-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 2026

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Dec 20242024-12-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
Jan 20252025-01-01 00:00:00 UTC2025-02-01 00:00:00 UTC202
Feb 20252025-02-01 00:00:00 UTC2025-03-01 00:00:00 UTC000
Mar 20252025-03-01 00:00:00 UTC2025-04-01 00:00:00 UTC000
Apr 20252025-04-01 00:00:00 UTC2025-05-01 00:00:00 UTC101
May 20252025-05-01 00:00:00 UTC2025-06-01 00:00:00 UTC000
Jun 20252025-06-01 00:00:00 UTC2025-07-01 00:00:00 UTC000
Jul 20252025-07-01 00:00:00 UTC2025-08-01 00:00:00 UTC404
Aug 20252025-08-01 00:00:00 UTC2025-09-01 00:00:00 UTC000
Sep 20252025-09-01 00:00:00 UTC2025-10-01 00:00:00 UTC202
Oct 20252025-10-01 00:00:00 UTC2025-11-01 00:00:00 UTC000
Nov 20252025-11-01 00:00:00 UTC2025-12-01 00:00:00 UTC000
Dec 20252025-12-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
Jan 20262026-01-01 00:00:00 UTC2026-02-01 00:00:00 UTC101
Feb 20262026-02-01 00:00:00 UTC2026-03-01 00:00:00 UTC000
Mar 20262026-03-01 00:00:00 UTC2026-04-01 00:00:00 UTC000
Apr 20262026-04-01 00:00:00 UTC2026-05-01 00:00:00 UTC000
May 20262026-05-01 00:00:00 UTC2026-06-01 00:00:00 UTC000
Jun 20262026-06-01 00:00:00 UTC2026-07-01 00:00:00 UTC000
Jul 20262026-07-01 00:00:00 UTC2026-08-01 00:00:00 UTC000
Aug 20262026-08-01 00:00:00 UTC2026-09-01 00:00:00 UTC000
Sep 20262026-09-01 00:00:00 UTC2026-10-01 00:00:00 UTC101

What Hacker News says

12 sources
This will be referring to enforcing MSC4311 (https://github.com/matrix-org/matrix-spec-proposals/pull/431...) stripped state validation. Synapse announced a 1 year compatibility window to avoid ecosystem fragemtnation: https://github.com/element-hq/synapse/issues/19943. However, due to MSC4311 not better outlining how to handle compatibility, another server implementation chose to enforce the MSC more rapidly, breaking compatibility with everyone who hadn't yet implemented the MSC - including Synapse, which hadn't actually implemented it yet. Speaking as the lead of the Matrix Spec Core Team, we should have handled this better. https://github.com/element-hq/synapse/pull/19723 is the Synapse implementation which is now in the process of landing.
In Registration without a phone number on Signal will use zero-knowledge proofs
I'm using Element Synapse with the Mautrix bridges. They're all a pain to setup, with a ton of required configuration options each, but once setup, it's mostly transparent where any one chat originates. Reactions, emojis, media, it all just works. The downside, of course, is that voice and video will not work. Oh, and perhaps a ton of initial invitations, one for every conversation you have open. There are open servers you can join, with the bridges enabled, but of course, that kind of defeats the purpose. At that point you might as well use a commercial, closed-source offering, as, ironically, a corporation with a large footprint you can sue. Average Joe with an AWS instance you might not be able to track down, should your data leak. https://github.com/element-hq/synapse https://github.com/mautrix/meta
In BirdyChat becomes first European chat app that is interoperable with WhatsApp
Speaking as project lead for Matrix, I obviously feel pretty gutted when someone gives up like this. Doubly so when the straw that broke their back wasn't even a Matrix problem, but really gnarly postgres corruption (see https://news.ycombinator.com/item?id=44618702). Firstly, I'm sorry they had such a bad time, and as per https://news.ycombinator.com/item?id=44621077 there's a tonne of things we've (i've) done wrong. That said, there's a bunch of points raised here which aren't fully accurate. So for the sake of completeness: > The official Matrix homeserver, Synapse, was built with a tech stack ill-suited for its long-term goals and scale These days Synapse is hybrid Rust for the fast paths (https://github.com/element-hq/synapse/tree/develop/rust) and Python 3 + mypy for the rest. Huge servers like matrix.org (150K concurrent users) r
Read the rest
un fine on it. I'm not convinced the "ill-suited tech stack" crit holds. > Community projects like Dendrite emerged to rewrite the homeserver more sensibly Dendrite is not a community project and never has been; it was written by the core Matrix team, and then when we realised Synapse had critical mass we backported most of its architectural improvements to Synapse. > New Vector seems to be chasing too many goals simultaneously, with no clear direction No? we killed all the sidequests in order to just do Element Web, Element X, Element Call and Synapse. > Just a few months ago, they migrated to the Matrix Authentication Service (MAS), which was supposed to be a leap forward, yet lacks even essential security features like 2FA/MFA. No? the whole point of MAS is that it lets you delegate straight through to a proper IDP which provides 2FA/MFA/Passkeys etc. > Launching the app requires network synchronization that hampers responsiveness No? Turn off your network, launch Element X, and see that it launches fine? Obviously it does need to talk to the server to retrieve new data. I guess there was the https://github.com/element-hq/element-x-ios/issues/4102 issue, but that was fixed 3 weeks ago. > The Matrix.org service, especially its matrix.org homeserver, is also slow matrix.org feels pretty good to me these days, even on my mammoth account (other than when talking in Matrix HQ) > On my laptop, I’ve been using iamb, a TUI Matrix client, and even there I experience delays of tens of seconds when launching it, and a lag of several seconds between pressing Enter and seeing the message actually appear in the chat room. I'm assuming that's because iamb hasn't enabled sliding sync, and/or hasn't implemented local echo, or has some other perf bug. Or perhaps you're on an old build. Given it's using the same matrix-rust-sdk as Element X it should in theory be instant. > And that’s certainly not iamb’s fault, because it’s written in Rust, btw™. ... > the lack of proper first-party libraries for 3rd-party developers to build on top of, it became visible that the once-vibrant ecosystem, does no longer look so healthy This is really weird. It's not clear that the Matrix Foundation should publish software at all, to be honest - it's effectively a standards body. W3C doesn't write browsers or web servers any more, for instance. As it happens, we have invested a huge amount of effort into publishing a flagship first-party client SDK anyway: matrix-rust-sdk. And matrix-js-sdk is still there too. We very deliberately have handed off other SDKs to the broader community to maintain, which they do a great job of. Surely the fact that go-matrix got surpassed by Tulir's superior go-mautrix fork is a good thing, not a bad thing? > Development on Synapse alternatives has stagnated The conduits seem as active as ever, from what I can see, even if there's been forking. Dendrite development has stalled, but this reflects lack of funding rather than the ecosystem failing, and the core team at Element having to put all its effort it into one server (Synapse) rather than splitting between two. > Other clients like SchildiChat are faced with the dilemma of continuing their existing work or starting over by forking Element X That's just false? SchildiChat seems to have quite happily forked EX into SchildiChat Next years ago and looks to be doing a great job of it; ahead of EX itself with many features (e.g. it already has spaces!) > Speaking of SDKs, New Vector appears to lack a coherent technology strategy. They’ve built infrastructure in Python and Node.js/TypeScript, moved into Go for the Synapse replacement, and now maintain a Rust-based client SDK, while abandoning their Go client library (which is now community-maintained). NV's stack is Python+Rust and Node/TS on the serverside, and Rust + (TS/Swift/Kotlin) on the clientside. It's true that over 11 years of work we've also sprouted a few Go projects (e.g. complement), and there's even some Perl (sytest), but that is very much the minority. > Especially for an organization that appears perpetually cash-strapped. New Vector’s approach feels more like indecisiveness than the right tool for the right job when looking through their repositories on GitHub. It feels unfortunate that the OP is complaining that NV doesn't provide enough 1st party implementations in different languages any more, while also complaining NV has too many languages in use. > Matthew, if you’re reading this: We both know that naming things is one of the hardest problems in computer science, right after cache invalidation. I totally get the geeky, 31337 thrill a name like Matrix might evoke, but believe me when I say that using generic names is a bad idea. Things would have been a lot easier for everyone involved if you had at least rebranded Riot to something more distinctive. For future rebrandings, I highly recommend using the Synthwave Band Name Generator and some good old human creativity. :-) Honestly Matrix & Element seem to get quite a lot of traction and successful press despite the generic names. For instance, I just spun up Tor and googled the word Element, and Element.io came up as the 2nd hit after the skateboard brand (and the whole sidebar). The data just doesn't back up this particular criticism. Overall, though, I get why the OP is frustrated and has given up. All I can say is that we're working away on getting Element X to parity with Element as fast as we can so we can retire the 'classic' app, at which point I think much of the pain people are experiencing will go away. It's taking longer than I'd like given the work is entangled with building and deploying government messaging systems as a way to keep the lights on, but if anything all the negativity here makes me more determined and stubborn to keep plugging away to dig out of the transitional period we're in, and get back on track.
In Giving Up on Element and Matrix.org
To add to the pile: - The web client doesn't load any images/media anymore for me in new sessions. I log in, I cross authenticate with another client, no images load. At work I've a very old browser session going and everything works. - We host synapse at work to explore feasibility. Been going on for about 9 months now. Public profile lookup is disabled. This breaks inviting anyone from our company from another server, when the inviting user is using element. Because element tries to query the user info first, and if that fails with an unexpected error code, it will not allow you to continue sending the invitation. There's obviously an issue open for months now, where multiple people suggested they just add a warning that it couldn't check if the user exists, with a "continue anyways" button, but the devs prefer to come up with idiotic e
Read the rest
xcuses why that would be a bad idea. I did some quick research myself then, and it looks like the profile lookup is relayed through the server of the inviting user to the server of the user to be invited. The inviter's server converts any http error code from the invitee's server that is "not valid" to a generic error, that element then chokes on, here: https://github.com/element-hq/synapse/blob/1920dfff40ad10780... i.e. Only 404 is valid, according to code and comment there. But IN THE SAME FUCKING SOURCE FILE, they return a 403 if profile lookup is disabled: https://github.com/element-hq/synapse/blob/1920dfff40ad10780... Can't get any better than this I guess. Cobbled together bullshit. I hope my company will consider this experiment failed soon and switch to slack or something. Anything.
In Giving Up on Element and Matrix.org
The issue of broken rooms was reportedly the database having gotten corrupted indexes, which affected a bunch of rooms (2/55 of ones I was in): https://github.com/element-hq/synapse/issues/18606#issuecomm.... Not much a protocol/implementation can do about that. It did take over 2 weeks for it to be resolved though, which is a rather long period of time. Also on the status page - https://status.matrix.org/incidents/8gljb3gtlv11 (shows start at Jul 2, but I noticed it on Jun 28) After that was resolved, messages that were sent and received by/on other homeservers during that time never ended up on matrix.org, so much for federation :/
In Giving Up on Element and Matrix.org
You’ve totally misunderstood me - probably my fault; sorry. There is no trickle-down happening here: *these issues will be fixed directly in FOSS synapse, which is the core project*. They are nothing to do with rust worker implementations in Synapse Pro, and FOSS will get them first. The only reason they haven’t been fixed before is due to the freerider nightmare meaning there hasn’t been $ to fund the work. FOSS Synapse has had Rust in it for years now: https://github.com/element-hq/synapse/tree/develop/rust/src > Your own blog post about the pro version (and the one about forking synapse) basically said that you wouldn't be working on the community version at all anymore? WHAT?! It’s the opposite! We’re trying to fund the FOSS dev!! Where did it say that?!
In Nation-scale Matrix deployments will fail using the community version of Synapse
Currently it seems easy enough to write clients/servers using the protocol and the Synapse server can easily be forked (https://github.com/element-hq/synapse) if you find the need to do so. It does seem to be mainly worked on by Element, so there's always a risk that they might stop working on it and instead work on a closed source implementation. That does seem unlikely though as it goes against their goals and the idea of an open, secure communication standard.
In US Senators implore Department of Defense to expand the use of Matrix

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.