Top
Best
New

Posted by zlliang 18 hours ago

The federated code forge(tangled.org)
285 points | 85 comments
stryan 16 hours ago|
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.

icy 16 hours ago||
> 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!

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

Someone (or some group) could also in theory go fully content-addressing with their data store, and make content available based on their hash, effectively layering that missing benefit on top of the existing architecture. Someone could probably vibecode this together in some hour(s) :)

tg180 12 hours ago||
Something like radicle? https://radicle.dev/

I do agree that the sweet spot in federated git hosting could be a system merging the features of tangled with the features of radicle

But I have to admit that the design tradeoffs are really different

packetlost 2 hours ago|||
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
nerdypepper 16 hours ago|||
> 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.

stryan 12 hours ago||
Ah, I didn't realize the tarballs on the Tangled site were cached. If it happens again I'll try that :)

But yeah I recognize it's an issue for any package manager. I suppose I just forgot that even something like my local editor is reliant on remote forges now unless I go out of my way to mirror it all.

malte_querier 2 hours ago||
[flagged]
icy 17 hours ago||
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.

kstrauser 17 hours ago||
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?

icy 17 hours ago|||
That's exactly the problem we want to solve. Of course, they still need identity of some kind -- in this case, they'll need an AT Protocol account -- either by self-hosting a Personal Data Server[0], or signing up with a provider such as Tangled or Bluesky/Blacksky, etc. This is the last ever account they'll need (and it's theirs, and portable!). They can then begin contributing; they'll use this same account for all of Tangled and other AT Protocol services.

Your Tangled git server that you'd want to run is a 'knot'[1]. It's not exactly analogous to Forgejo because it's headless, but that makes it super light on resources to run.

[0]: https://atproto.com/guides/the-at-stack#pds [1]: https://tangled.org/docs/knots/self-hosting/

kstrauser 17 hours ago||
Got it. I'm still trying slightly unsuccessfully to wrap my head around this, but I've run a Mastodon instance for about 10 years and it took me a little while to wrap my head around that, too.

This is great. I'm delighted at the idea of having my own knot hosting my projects, talking to my friend's knot, and coordinating on a global project's knot, all without having to lock everyone into one centralized point of failure (even mine). Amazing. I love it!

nerdypepper 17 hours ago|||
all they would need is an atproto account. you can get one of these on Tangled itself, or bring your own. they can then open issues on your repository.

soon, repos will be able to declare a contribution policy: presently its open to all (anybody can open an issue), but owners can choose to limit this to just contributors for example.

kstrauser 17 hours ago||
How soon will that be, do you suppose? It's not a blocker for most of my projects, but I can think of a few that I'd like to keep more closed (while still making them publicly cloneable). That doesn't keep me from using Tangled today for the open repos. It just means I'd need to have at least a couple of sharing setups - Tangled plus Forgejo - going at the same time for a while.

Also, will Tangled support private repos that are only visible or fetchable to specific people? Would that even make sense in its model?

nerdypepper 17 hours ago||
for collaboration policies: its already part of the protocol, just needs to be baked into the flagship client!

private repos are coming very soon, we have a working demo of private repositories.

kstrauser 16 hours ago||
Love it. Thanks!
vaylian 14 hours ago|||
What are your thoughts on https://forgefed.org/?
rapnie 14 hours ago|||
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.
HexDecOctBin 9 hours ago|||
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.
HumanOstrich 17 hours ago|||
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.
nerdypepper 17 hours ago||
don't need to signup for bsky to try out Tangled however, you can directly just signup for an account with Tangled.
theptip 9 hours ago|||
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.

0x457 16 hours ago|||
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)
nerdypepper 16 hours ago||
already exists :)

its undocumented at the moment but you push over https as well.

somebody has set up a git credential helper here: https://tangled.org/pds.dad/tangled-core/blob/feature%2Fgit-...

0x457 16 hours ago||
I wish I knew this before I setup mirroring of my personal forge to github haha.
jauntywundrkind 15 hours ago|||
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?

hauleth 15 hours ago||
Tangled has its own CI named Spindle. However it is not limited to that as there is for example https://tangled.org/mitchellh.com/tack which allows connecting different CIs to Tangled.
embedding-shape 16 hours ago||
> 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?

nerdypepper 16 hours ago||
self-hosting the appview was a bit trickier back then, but we have worked towards making that trivial. it now runs entirely in-memory, and is completely stateless (rebuilds the state of the network from scratch each time).

https://tangled.org/docs/self-hosting/indexer/

we have also stabilized lexicons, so if you are a selfhoster, you can expect to not require a breaking upgrade!

bluerooibos 11 hours ago||
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.

ivanjermakov 15 hours ago||
Finnish startup Tangled raises €3.8M to reinvent code collaboration https://www.vestbee.com/insights/articles/tangled-raises-3-8...
paaloeye 15 hours ago|
What's the business model here and how do they play to return the investment? It's aint easy to compete with GitHub...
sp4cec0wb0y 13 hours ago|||
Probably "org" only pricing tier like github.
IshKebab 14 hours ago|||
Especially if you don't support private repos at all... That's where the money is!
icy 14 hours ago||
We will in the next couple weeks!
operator-name 9 hours ago||
Cool! Will it be based on the spaces alpha?
eterm 14 hours ago||
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.
isityettime 14 hours ago|
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.

eterm 14 hours ago||
Thanks, you've correctly identified the issue, although I wouldn't call it a problem with "my" OS unless it's my configuration.

I just wanted to read the source locally. I know things are getting worse by the month for developers on Windows because other developers are increasingly not giving a shit to support it, but it's odd to have a repo that doesn't even clone on windows.

Not building is common, not passing tests even if it builds is extremely common, but not even cloning is a new one.

I guess eventually I'll give up and switch to linux, but I'm still paid to work on Windows. I guess maybe it's finally time to look into a real dev-container setup for this kind of thing and I can do this all a bit more securely too.

ethin 13 hours ago|||
I feel that people still need to support Windows for a while. I for example am stuck on Windows because it (still) has the best accessibility out of all of the operating systems (and Wine is not a replacement for that). It's unfortunate, and I'm hoping it will change in the future.
willio58 2 hours ago||
I’m surprised to hear that, I don’t often use accessibility options on Mac but i use some on iOS so I always assumed Apple had the best a11y since there are so many options on iOS. Like almost too many, though I get that’s kind of the point.
arjie 6 hours ago||||
The classic two FS errors I’ve seen are MacOS case insensitivity fusing two separate files and Windows reserved chars. Most people build and deploy to Linux so repos are usually sane to that OS. It’s just life though it’s funny to see the shoe on the other foot.
pessimizer 11 hours ago|||
If it's your configuration, it's not a problem with your OS, it's a problem with your configuration. Your problem is specifically that your OS has chosen not to support certain characters in filenames, and you want to write files containing those characters.
pie_flavor 6 hours ago||
That's not a configuration. There is no way to configure Windows to accept files with colons in them. As well say it's a configuration issue if the software hardcodes the assumption of filesystem case-insensitivity.
pksunkara 16 hours ago||
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.

icy 15 hours ago|
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).
gnabgib 17 hours ago||
Tangled, a Git collaboration platform built on atproto (332 points, 2025, 86 comments) https://news.ycombinator.com/item?id=45543899
paaloeye 16 hours ago||
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.

donmcronald 9 hours ago||
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?
huksley 16 hours ago|
Is the private repo support possible when self hosted?
jon-wood 16 hours ago|
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.
nerdypepper 16 hours ago||
we have already got a working demo of private repositories that works very similarly to atproto spaces alpha, but without requiring spaces to be stabilized, we will have something to show off in the next couple weeks :)
More comments...