13 ms·
Tangled, a Git collaboration platform built on atproto
- idiotsecant 1y agoThis is interesting, what does it give that hosted git doesn't?
- Imustaskforhelp 1y agodecentralization out of the box for the most part. Its built on ATproto protocol which is used by bluesky/created by them
- jpereira 1y agoThe fact that all the data is open means not only that you could plausibly exit to other providers and keep all your projects data, (issues, prs, etc), but also that it's dramatically easier to build other tools that work on that same data. Triage, labelers, bots, etc, I know these are all possible on GitHub today with their API, but I think the programming model of ATProto removes a lot of friction in building and composing them.
- oblio 1y agoI think there is a sort of thing built on top of Git where the wiki and issues are actually part of the repo itself, I forget the name, a bit like the Fossil SCM.
- svieira 1y agoIt's actually its own distinct version control _system_. And yes, it is Fossil SCM: https://fossil-scm.org/ https://fossil-scm.org/
- adastra22 1y agoNo, he’s talking about git-bug.
- sudahtigabulan 1y agoMaybe git-bug[1]? [1]: https://github.com/git-bug/git-bug https://github.com/git-bug/git-bug
- verdverm 1y agogit-annotate uses git notes and embeds a webserver for the frontend Looks like a hobby project that made it out of Google and into open source. Not really worked on, but very cool concept
- nickmonad 1y agoI really like the idea of more decentralized git collaboration. What do people think are the biggest blockers to adoption in this space? Having to run a server or manage some kind of private keys? Is it purely network effect?
- wmf 1y agoGithub is free and decentralization isn't.
- jauntywundrkind 1y agoThe whole point of the submission here is that that's no longer true?
- wmf 1y agoSure, you can mooch off their centralized server for a while. In an actually decentralized network there have to be multiple servers which cost money to run and that money is never recouped.
- jauntywundrkind 1y agoTangled & other folks run their own AppServers for doing Tangled views of the network. Those aren't insanely expensive by any measure. Many of the people on Tangled especially host their own Personal Data Service themself. It's fantastically cheap. This seems like you either don't know much or you are super super cheapening out on credit. Fear uncertainty & Doubt is a low motive.
- necovek 1y agoIt'd be great if you share concrete details: this type of machine on this type of connection, costing X. And what traffic and load does that see?
- 1y ago
- est 1y agosince ATProto had a Merkle Tree of its own, I wonder if tangled utillize this internally to interop with git
- verdverm 1y agoNo, they are very different merkle trees and mixing protocols is hard
- jolux 1y agoLearned recently about their support for Jujutsu at JJ Con last week: https://blog.tangled.org/stacking https://blog.tangled.org/stacking
- IshKebab 1y agoYeah this thing has actual support for stacked PRs which Github has somehow failed to do for decades. If I ever need some self hosting thing I'll definitely check this out. My only hesitation is that I'd want it for private use in a company, and it isn't clear to me how to avoid connecting your Tangled instance to the rest of the public network.
- rtpg 1y agoIs there any story for private/enterprise work here? the tangled stacked diff review flow looks very good for work stuff.
- skybrian 1y agoI don't really get it. What if anything gets stored in your PDS, versus somewhere else?
- danabramov 1y agoOne easy way to tell is to browse lexicons (https://ufos.microcosm.blue/ https://ufos.microcosm.blue/) and filter by "sh.tangled". For example, I can see: - https://ufos.microcosm.blue/collection/?nsid=sh.tangled.repo https://ufos.microcosm.blue/collection/?nsid=sh.tangled.repo - https://ufos.microcosm.blue/collection/?nsid=sh.tangled.publicKey https://ufos.microcosm.blue/collection/?nsid=sh.tangled.publ... - https://ufos.microcosm.blue/collection/?nsid=sh.tangled.repo.issue https://ufos.microcosm.blue/collection/?nsid=sh.tangled.repo... Here's a link to all of them: https://ufos.microcosm.blue/collection/?prefix=sh.tangled https://ufos.microcosm.blue/collection/?prefix=sh.tangled
- ssivark 1y agoHaving a hard time understanding what that website is showing (eg. what is a lexicon?). Could you explain? Is it meant to be some kind of filtered sampling from the stream of ATProto events?
- danabramov 1y agoYes. Think of these as names of tables (or collections) in a distributed database. Or as type definitions. Or as app-defined data formats. Each lexicon is a schema for a model. So you’re looking at a list of such “types” — a “repo”, a “follow”, a “star” etc. There’s a “Tangled repo” lexicon, a “Bluesky post” lexicon, a “Leaflet publication” lexicon, and so on. Lexicons are specified and evolved by developers of each concrete application. Other apps can use those type definitions to read or write that kind of data. See https://www.pfrazee.com/blog/why-not-rdf#lexicon https://www.pfrazee.com/blog/why-not-rdf#lexicon for a short intro. The UFO tool samples the global event stream and keeps stats on which lexicons are showing up in it (i.e. types of JSON that are being created on the network). You can expand the “samples” tab to show a few concrete JSON blobs so you get the idea of what the data represents.
- binary132 1y agoIt doesn’t seem to address this, but I’m curious whether this could be used for trivially relocatable package identifiers.
- qudat 1y agoThis is a really cool project and I’ve been following it for awhile. I’m also keen on breaking up the code forges monopolies. I’ve been dipping my toes into this space mainly because I think code forges as they exist are trying to solve multiple problems at the same time. I think there’s value in splitting this functionality up into discrete services. For example, most forges: host your git repo, web view, collab tool, ci/cd pipeline, and task management. I don’t see why these necessarily need to be bundled together. For example, as long as we are comfortable not having direct access to the git repo, we can have a purely static web viewer for git: https://pgit.pico.sh https://pgit.pico.sh For collab, as long as we are comfortable sharing patchsets and reviewing locally, we can have a collab server that doesn’t need a git repo in order to function: https://pr.pico.sh https://pr.pico.sh Then self hosting your own bare git repo on a VPS is trivial. Git is already decentralized, centralizing it because all the other services require it is the anti pattern
- ozim 1y agoI see you hand waved people who pay money so that forges can operate. If you have a company you don’t want to pay 20 invoices to different vendors. If you have a company you don’t want to deal with debugging integration between your CI/CD and web view and git providers, you want to make a ticket and have it fixed. When you are developing a project you don’t want to spend time figuring out which task management will integrate with other parts. As a developer you also don’t want to jump through 5 different tools and waste time you want integrated and streamlined experience. Git being decentralized doesn’t have value besides the fact that I can have my local copy and work on it separately from whatever is there on the central server my company uses.
- oooyay 1y agoInevitably someone will end up paying for Tangled. Their architecture demands an infrastructure piece that actually hosts the forges and PDSs through BlueSky won't always be free. They're also non-trivial to run.
- hayden_dev 1y ago
- shayief 1y agoFor stacked diffs, check out https://gitpatch.com/ https://gitpatch.com/
- scottgg 1y agoI am obliged to use a public GitHub org for work. Is it “blessed path” to try do the CR part in tangled and sync back to GitHub? I would love to profit from my nice jj habits at the review stage!
- icy 1y agoYou could mirror it, yeah! Perhaps write a spindle pipeline[0] to push back to GitH*b on merge. :) [0]: https://tangled.org/@tangled.org/core/blob/master/docs/spindle/pipeline.md https://tangled.org/@tangled.org/core/blob/master/docs/spind...
- rhgraysonii 1y agoI was in the first ~100 users to sign up for tangled after seeing that they were roadmapping stacked patch style pull request review and being generally impressed with how quickly they were building and shipping features all off the excitement from a budding community in the world of atproto. I am very excited to see where this goes and how they continue shipping. There are a lot of opportunities here that could be levered to offer much better experiences and fundamental control and long term viability if they continue to execute this way.
- npodbielski 1y agoLooks cool but I would really like to have this as a mirror of my local git repo server. If tangled goes down or my internet goes I won't be able to work.
- icy 1y agoNothing preventing that! You can run a knot server[0] on top of your local git server—which I assume you push to using SSH. Knots serve up your git bare repos over an API (and federate over AT Protocol). If Tangled’s appview is down, you can still access your own box as you would. Alternatively, you can mirror using git natively by simply adding a push-only remote. git remote set-url --add --push tangled [repo] [0]: https://tangled.org/@tangled.org/core/blob/master/docs/knot-hosting.md https://tangled.org/@tangled.org/core/blob/master/docs/knot-...
- npodbielski 1y agoAh cool thanks!
- deknos 1y agoi just hope, this is really a thin service and not again running with javascript and also works over tor..
- icy 1y agoHey HN, co-founder of Tangled here! We recently shipped a change to switch out our OAuth library—which introduced a regression, preventing new users from being added to the default knot and spindle (the git hosting server & CI runner). We just discovered this and pushed a fix—please log out and log back in again and you should be able to create repositories! Otherwise, happy to answer any questions!
- sbinnee 1y agoCool product! Knowing a little bit of AT protocol, I can assume that the expression you used, “social-enabled”, is related to that. Does Tangled have plans for more social features or social-enabled simply means AT protocol?
- icy 1y agoWe definitely want to be very social-first down the line! Our focus at present is to nail the core features first, however. The vision is to build Tangled to be a indie/community-focused code forge.
- xeonmc 1y agoFirst Question: is it possible to change your handle or delete your account on the tngl.sh PDS instance? Second Question: how much resource does creating and hosting a new AppView entail? For example let's say I make an appview that's essentially the PDS-hosted equivalent of Cloudflare Pages, where a user upload a folder of a static website and the appview just forwards it verbatim at a hypothetical https://atprotocities.org/@cool.guy/ https://atprotocities.org/@cool.guy/... , would you need to bear the brunt of the traffic cost as an AppView host?
- electricduck 1y agoSince its just a regular ol' PDS, you can simply login to Bluesky and change it there!
- danpalmer 1y agoNew tomorrow: "Spaghetti", a no-code platform to run your business on, and "Lock-in", a vault to keep all your important data safe.
- pm90 1y agoGithub is no longer a trusted nor a reliable platform. Moving at least the oss stack to atproto (or any other open network) is an excellent way to safeguard it against Big Tech, Government censorship etc. Love to see this.
- rurban 1y agoBut nobody will pay for his own servers. Big OSS orgs might, but you cannot even provide PR's other than by email.
- rudderdev 1y agoNot receiving the signup code on email for tangled.org
- Sincere6066 1y agoI'm not touching anything related to atproto with a ten foot pole
- hamandcheese 1y agoI was pleased to see that this has CI pipeline support, but am saddened to see that it looks roughly GitHub-actions shaped. I don't see the point in writing a sequence of serial steps in YAML. A bash script can already do that. YAML configuration for pipelines should be focused on expressing the dependencies of a DAG, not the serial execution of a program. Buildkite got this right.
- IshKebab 1y agoThe point of doing it declaratively is that you can easily expose all that information in the UI, and process it to set up the pipeline in the first place (multiple runners, which OS they run, dependencies between steps). I agree most of your `run` steps should just be one or two lines to call out to another script though, and you shouldn't split things into multiple steps unless necessary. How does Buildkite do it? Their website doesn't seem clear but it looks like it also uses YAML, you can just use a script to generate it. Gitlab supports that somewhat awkwardly, and I've definitely had one project where that would have been useful (though I couldn't convince my colleagues to do it). I don't think it would be difficult to add support for it anyway.
- udev4096 1y agoWhy not improve upon https://radicle.xyz https://radicle.xyz? It's been running for a while now with promising future. From my naive understanding of running a radicle node, it consumes around 40G of storage for the current network of 5k repos
- Zambyte 1y agoThe social factor. As someone who is very active on Bluesky, the social inertia of Tangled is great. I like Radicle too, but it's harder to collaborate with people, because it's harder to sell to people.
- jrm4 1y agoI'm increasingly becoming convinced that atproto is pointless. Federation is good, but this idea of implementing "take everything with you" at the protocol level is unnecessarily complicated and centralizing. With Bluesky it might make a little more sense, but with Git? So many better, easier options here. Archive your repo and a) learn how to the do the real decentralized thing OR b) make your own centralized thing OR c) just move to Gitlab or similar. "Take everything with you" is just downstream from "find or be a trustworthy node."
- icy 1y agoWhat’s the “real decentralised thing”? You can already archive your repo—Tangled doesn’t prevent that. AT Protocol is great for when you’re working with the data surrounding your code: issues, pulls etc. which are much harder to move around, or even just archive from GitHub. Case in point: Gitea (ironically), they’re stuck on GitHub because their 30k+ issues and PRs cannot be migrated from GitHub due to API rate limits.
- jrm4 1y ago"Real decentralised thing" here I meant 'using Git in that way that was kind of invented for but no one seems to do,' aka distributed/decentralized with no central server at all.
- childintime 1y agoI'm reminded of Brett Victor and his tangle library (2013). https://worrydream.com/Tangle/ https://worrydream.com/Tangle/