What is Tangled
Tangled is a social code forge: you can host git repositories, collaborate on issues and pull requests, follow other devs and star their repos. However, Tangled is different from the rest:
- It is federated: you can self-host a server and still interact with the broader network
- It is open source
- It is entirely self-hostable: you can host a single piece, like the repository storage component, or the CI component, or all of it
- It is hackable
The individual servers talk to each other through public interfaces, so you can replace any of them with your own: people have written knots that store repositories on code.storage, or Cloudflare Artifacts, and spindles that runs CI on Buildkite or Tekton!
That being said, you don’t need to run anything to use Tangled. Sign in, create a repository, and push. Quick start walks through it.
How it is split
Section titled “How it is split”Your account lives with an account provider (a PDS, or Personal Data Server), the same kind of account you might already use for Bluesky. It holds your profile, follows, stars, SSH public keys, and a small entry for each repository you own.
Git data lives on a knot, a git server. Each repository has its own identity (a DID), and its issues, pull requests, comments, reactions and labels are stored next to the code on the knot.
Spindles run CI: they execute the workflows when you push.
The web app saves your changes to your account or to the knot, and shows everything gathered from across the network. No web app holds a privileged copy of your data: it all comes from accounts and knots.
Hosted and self-hosted
Section titled “Hosted and self-hosted”You can host with Tangled, or self-host. Tangled is federated: knots, spindles, accounts and web apps run by different people work together, so you can run all of it, some of it, or none of it.
| Component | What we run | You can run your own |
|---|---|---|
| Account (PDS) | Signup gives you a <name>.tngl.sh account | Any atproto PDS works |
| Knot | Shared knots, the default is knot1.tangled.sh | See Run a knot |
| Spindle | spindle.tangled.sh | See Run a spindle |
| Web app and index | The website at tangled.org | See Run an index and Run a frontend |
Typically, users self-host a knot: your code then lives on a machine you control, while the web app still shows it and accepts issues and pull requests against it. A self-hosted spindle lets you run CI on your own hardware. Run every piece yourself and you have a fully independent Tangled.