Tangled launches the first truly federated code forge
The Federated Code Forge

Tangled is a federated code forge built on the AT Protocol: self-host just the Git hosting or CI runners you want, or the whole stack, and still collaborate with everyone else. Issues, pull requests, and comments now live inside the repo itself as Git objects, with attestations written to your own PDS so a host can't put words in your mouth. The rewrite adds a Rust in-memory indexer across 11+ regions, a Svelte edge frontend, org accounts, and stacked PRs for plain Git users.
A project's issues and pull requests are as much a part of it as its code, so they should live with it, wherever you choose to host it.
- stryan
Really looking forward to seeing Tangled develop! I've got a side project that's main repo and CI is on my self-hosted Gitea but code and releases are mirrored to Github; I'm hoping to move it off Gitea and onto Tangled for code/releases/potentially CI and just keep Github for discoverability/backups/namespace "squatting".
Just need git-bug to add a Tangled bridge so I can keep issues synced and (ideally) for there to be instructions for running the client self-hosted. It doesn't have to be a full featured client but I also don't want to be SOL for web visibility if the main Tangled appview is down.
One musing: I did run into my first "issue" with federated Git hosting the other day while setting up Neovim on a new machine. One of the plugins I use is hosted on Tangled and I guess its backing Knot was down. This was awkward for two reasons:
1. It as unclear to me from the Tangled website the backing knot was the issue (for a while I thought it was something on my end)
2. I really had no backup plans for something like a Neovim plugin's source forge being down and, clearly, neither did the Neovim package manager as it just kept showing an error on every session I started with no way to fix it :).
I suppose in the long run we really shouldn't be assuming that code storage is just Always There or easily cached somewhere, but I anticipate some growing pains in the mean time. ATProto doesn't seem to have the benefit ActivityPub has where if the instance I wanted to view content on […]
- icy
Hi! Tangled co-founder here. We're super stoked with this launch -- we've stabilized our AT Protocol lexicons, completely overhauled our architecture and UI, and made self-hosting the entire stack (or parts of it!) incredibly easy. We've also shipped support for organizations, and have private repos rolling out in the following couple weeks.
Happy to answer any questions at all.
- ivanjermakov
Finnish startup Tangled raises €3.8M to reinvent code collaboration https://www.vestbee.com/insights/articles/tangled-raises-3-8...
- pksunkara
I see in the post that lexicon has been finalized. Does that include putting the issue, pr & comment records under the repo scope instead of the user scope?
I am asking because I have been waiting for that change. I intend to make all the public repos from https://juju.bi (code forge I am building) interoperable with Tangled and basically behave as knot server.
- eterm
I tried to run:
git clone https://tangled.org/tangled.org/core
And it failed?
Cloning into 'core'...
warning: redirecting to https://knot1.tangled.sh/did:plc:j5hmlfdrwkvtxm7cjmu7j2is/
remote: Thanks for using knot1.tangled.sh!
remote: Enumerating objects: 99191, done.
remote: Total 99191, done.
Receiving objects: 100% (99191/99191), 122.19 MiB | 39.12 MiB/s, done.
Resolving deltas: 100% (49286/49286), done.
error: invalid path 'localinfra/fixtures/blobs/did:plc:igzuueb63dytyy3tpaweofuu bafkreieify5bix4cmrj4iuxiceb6srr2boltkbbf7yizwtgwurqv42sltm'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
and retry with 'git restore --source=HEAD :/'
You can inspect what was checked out with 'git status'
It's not a great look when the very first thing I'd want to try to do:
1. Redirects from .org to .sh suspiciously
2. falls over.
I now have to try to work out whether that other domain is deliberate or compromised.