NixCon 2026 Workshop - Joining the Tangled Network
On this page
Why the session caught my eye
At NixCon 2026 I caught a session by Akshay Oppiliappan. He is one of the developers behind Tangled. The sessions was not quite a workshop, more of a presentation. I signed up for Tangled when it launched and waited for it to develop a little more. Then I got busy and never returned to it, so this was a nice reminder.
Oddly enough I was first attracted to the project from the federated software community rather than the Nix community. Even though I don't use social media, I still like the idea of federation a lot. This blog is even federated through Ghost.
Why use Tangled over other options?
To collaborate with people you do not personally know you need to combine Git with some form of communication. At first this was git+email. Currently, we use git with a code forge. There are FOSS players like Forgejo and GitLab, but GitHub is the dominant player due to network effects. GitHub is centralized and it's starting to crumble under load.
Cory Doctorow talks about this issue a lot and how the solution is interoperability: reducing switching costs means users are no longer trapped. Tangled wants to break free from the monoculture of GitHub. You can use a federated protocol for the communication layer with git. That way users can both host their own instances and still collaborate with other nodes at the same time. Essentially, federation aims for the best of both worlds.
Why ATProto?
There are lots of federation protocols like ActivityPub and Nostr. So why did Tangled go with ATProto? Akshay worked alongside Martin Kleppmann at the University of Cambridge and learned about ATProto there. That's why he initially picked it. Then ATProto blew up with the growth of Bluesky. That makes new user onboarding a lot easier. No account signup is needed since they can log in with their identity from Bluesky.
The other upside is that in the future other developers can create clients compatible with the protocol. You are not locked to the official clients. Think of Matrix for comparison: you can use Element X or any other client you want.
Some tangled exclusive features
Tangled has first class Jujutsu support. That means that when you force push with Jujutsu changes Tangled will use the change IDs for extra context. Instead of clobbering your change history you can switch between different versions of the PR from each force push using interdiff code reviews. Tangled might be the only forge (that Akshay knows) that detects the change ID headers from JJ.
Tangled also has a vouching system designed to help combat LLM PR spam. This allows you to vouch or denounce with a text field. If a user lobs a slop grenade at your project you can attach the PR as evidence to a denouncement. Nothing happens automatically with a denouncement, the user is not blocked, but a red label is attached to the user. Also, you do not have to worry about global denouncements. They are limited to your direct circle of users.
Self-Hosting Tangled
Tangled has three different components: knots, spindles and the AppView. Knots are the headless git servers. Spindles are CI workflow runners. The AppView is the web view of the entire network. You can self-host both knots and spindles. There is an open PR for self-hosting the AppView. All features on the official Tangled server are available for self-hosting.
Think of knot servers like a Matrix homeserver. There is a NixOS module available for everything you need to enable a knot. Knots also include LFS support so you can have better limits than GitHub. Knots will handle auto announcement and federation for you.
There is also a NixOS module for spindles. Spindles can run workflows sandboxed with Nixery, QEMU microVMs or Docker. Akshay prefers microvms for safety. With Tangled you still define your workflows with yaml, but their syntax is Tangled specific. Worker images can use NixOS and support the full nix module config you are used to. That means you can run Postgres as a service using the module and avoid needing a sidecar. You can even pull in any dependency from nixpkgs and Spindle will bundle a VM image for you.
I'm looking forward to trying out Tangled
The slides for the presentation were gorgeous. Akshay made them using a tool his brother wrote. The audience also had a lot of questions and was really interested in Tangled.
With the NixOS support now available for Tangled I'm thinking of spinning up a knot and spindle using Clan. The only blocker for me is the lack of private repositories. The good news is it sounds like there will be a big announcement regarding that in four to five weeks. That should give me just enough time to get everything set up before the launch.