Hacker News new | past | comments | ask | show | jobs | submit

The federated code forge

https://tangled.org/blog/forge/
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 was down I can usually find some other instance that's gotten the messages.

> 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.

Pretty much. We want to make running your own git remotes as easy as possible. Lets you scale on your own too.

> ATProto doesn't seem to have the benefit ActivityPub has where if the instance I wanted to view content on was down I can usually find some other instance that's gotten the messages.

It does give you (or anybody) the ability to index this data independently, and not miss messages -- which AP doesn't afford. Different tradeoffs!

loading story #50307234
I started mirroring as much of the core git repos I depend on to my NAS with systemd timers to update from remote, and post-receive hooks to mirror externally if I control the repo. This reminds me that I should expand those efforts
> I really had no backup plans for something like a Neovim plugin's source forge being down

this problem could exist with any package manager, the go package manager is one example, where it allows specifying packages from any git url. we host a mirror of all git repositories on our infra, and serve that when the backing knot is down. you could choose to trust that and pull from there (verifying that the tarball has a known correct hash), the way the go package manager pulls from proxy.golang.org.

loading story #50310082
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.

I’m excited about this direction. I’ve moved most of my own projects onto my own Forgejo, but miss it being easy for remote strangers to open PRs and such without registering in my system, which I have zero desire to allow.

So what’s the state of Tangled today? Say I have a Tangled server (instance? host?) up and running with my repos. Some stranger wants to contribute. What do they have to do before they can open issues or send PRs or whatever?

loading story #50306446
loading story #50306367
Are there any plans to add HTTPS clone/push support? For those who want to self-host their own Knots, an obvious approach is to put them behind Cloudflare. And being SSH only makes that complicated.
Tangled looks great, and I may consider self-hosting a knot. But what I am curious about, and what I weigh in such decision, is what your business model is. Right now it isn't clear from the website, so I hope you are perhaps willing to share a bit on that here.
I wanted to try this but when I signed up for a BlueSky account it was immediately banned by some automation. I appealed but never heard back.
loading story #50306490
Congrats on the release - private repos are going to be huge. How do you see the positioning vs Buzz and Radicle? Do you see them doing anything better now, and are you planning to try to close any specific gaps?

From my very limited testing private repos were the big missing piece; interested in other areas yet to be filled in.

Are there plans to add http(s) support to knot? I was planning on hosting my own knot at home, but didn't want to expose my home IP (I use cloudflared for other services that need to be exposed)
loading story #50307193
One of my biggest questions about the forged about is what kind of CI (and somewhat CD) do they offer?

What can I expect as a developer using Tangled to build (and deploy) my app? What is the native platform? What are typical other CI systems that have been adapted to work on Tangled (Dagger, Drone, whatnot, especially if there are repos to demonstrate the adaption)? What can I expect as enterprise or lone developer using Tangled or self-hosting or federation?

The system is called Spindle, but what about it? What does it take inspiration from, what are things like it that would help us spool up on this?

loading story #50308456
> made self-hosting the entire stack (or parts of it!) incredibly easy

Back when you first launched, I thought running a knot was already pretty easy :) Could you expand on how it's different now, and what part(s) aren't now easy to self-host, if there is any?

loading story #50307404
I hope this takes off!

Some feedback:-

* I found the UI on the homepage/timeline a bit busy - lots going on. Notifications, Recents, Announcements don't seem like they need to live on this page?

* The Activity chart on a users profile page seems a bit wild to me. I'd suggest simplifying it or just using what GitHub/GitLab use with their square grid activity chart - it's what users are most familiar with. It's kind of analagous to all the LLM/Chat applications in recent years - they all converged on the same UI because that's what works - no need to reinvent the wheel when users understand an existing pattern. Plus - it's better for marketing:- people like to share their activity on GitHub/GitLab as it quickly conveys how much work they've done over the year - your current page doesn't.

Finnish startup Tangled raises €3.8M to reinvent code collaboration https://www.vestbee.com/insights/articles/tangled-raises-3-8...
What's the business model here and how do they play to return the investment? It's aint easy to compete with GitHub...
loading story #50308612
loading story #50309919
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.
Afaict that's an issue with your operating system, not with tangled's git implementation. You're trying to check out a file with a colon in its name, and Windows can't handle that because of DOS baggage. If you mirrored that to GitHub or wherever and then tried to clone, you'd probably get the same error again.

Try cloning on WSL, in the VM's filesystem, and let us all know how that goes.

loading story #50309189
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.

Indeed. Repos own issues and pulls now! We will publish a post on how we do this very soon (hint: we store them as git objects within the repository and project them as an AT Protocol MST -- hence making knots PDS-like).
Tangled, a Git collaboration platform built on atproto (332 points, 2025, 86 comments) https://news.ycombinator.com/item?id=45543899
tangled.org has potential.

Pre-update, code review UI was horrific compared to GitHub. Post-update, code review is much better, but "Comments" section without a "Comment" button is unforgivable. People are probably closing PRs right and left without knowing it. Shift-Enter is a submit action.

I'm a keyboard-first user, but for something which can end up in somebody's inbox notifications, UI button is the way to go.

I just don't understand how such a prolific pattern is being ignored.

In the self hosting docs…

    atcr.io/tangled.org/knot:2
Does anyone know if ‘tangled.org’ is verified / guaranteed to be owned by tangled.org?
Is the private repo support possible when self hosted?
Not currently, Tangled's data model is entirely built around Atproto, which at least at the moment assumes everything posted is public. There's work in progress at the moment to layer access controlled data on top of that which I think Tangled could use with time though.
loading story #50307062
Is it actually smart to self-host when all those CVEs are dropping right and left? Sounds like a lot of maintenance for some marginal gains.
For a federated system they sure talk a lot about their struggles around scaling centralized infrastructure. ATProto seems like it's entirely the wrong protocol for this sort of application.
ATProto is the right protocol for the social elements imo
loading story #50308121
> For a federated system they sure talk a lot about their struggles around scaling centralized infrastructure. ATProto seems like it's entirely the wrong protocol for this sort of application.

Huh that's surprising to hear? What makes you think that? It feels like the whole point of this release is to make it easier to allow people to self host or federate whatever parts they want? That's what I got from their intro/opener!:

> But the centralised forge is crumbling. Relying on someone else for uptime, for features, and to be a good steward of your code hasn’t played out well. What has stood the test of time is email: Git to move the code, and email — an open protocol — to talk about it. At the cost of user experience, however.

> But the centralised forge is crumbling. Relying on someone else for uptime, for features, and to be a good steward of your code hasn’t played out well. What has stood the test of time is email: Git to move the code, and email — an open protocol — to talk about it. At the cost of user experience, however.

> Tangled aims to give you the best of both: the longevity of an open protocol, with the convenience and polish of a proper forge.

> It’s the first truly federated code forge — you can host code on your own servers and still collaborate seamlessly with others. Our approach is pragmatic: self-host just the parts you want, like Git hosting or CI runners, or all of it, including the API server and UI. Whatever you choose, you can still talk to everyone else.

The comment here from @icy emphasizes similar ability to let whomever host whatever parts of this they please:

> 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!) https://news.ycombinator.com/item?id=50306205

I don't see any mention of "their struggles around scaling centralized infrastructure". Is that just typical run of the mill low grade slander attack we see against atproto, more reflexive negativity? Or is there some actual interesting point here, that is perhaps even relevant to this tangled release?

loading story #50308598
I'm disappointed that issue tracking inside the VCS (probably as a separate repository, or at least a special branch) never got popular. That would reduce the importance of web-based code forges and make moving between them easy.
yeah, it would be nice to have pages, issues, and pulls branches. git is an database after all.
Fossil has you covered!
I really like ATProto as an interoperable protocol for social applications !
Didn't know they were Finnish, I wonder if they are planning to join https://koodiasuomesta.fi
Could this not use ActivityPub instead of ATProto?
Forgejo was supposed to, but that feature has been in limbo forever. For better or worse, ATProto is easier to implement, because most of the important details of ActivityPub are undocumented compatibility details of implementations like Mastodon (the spec alone isn't very useful for a working, compatible implementation).

AI would make it easier to implement and test complex protocols like this, but the community using Forgejo is mostly against it, which means it'll likely stay in limbo for a long time.

I honestly love Tangled.

At this point it's really the only forge I want to use going forward, considering that it sits nicely alongside all my other social data with ATProto.

I would really love to use it but when are you going to support SHA256? I have SHA256 repo and I don’t want to rewrite all history especially when Git 3 is moving to SHA256 anyway.
We already do.
loading story #50310538
selfhosted knots default to sha256.
Congrats on the launch, tangled team!
still don't understand what this is and the koolaid is so offputting