A vibe coded tangled fork which supports pijul.
at master 160 lines 6.6 kB view raw view rendered
1--- 2atroot: true 3template: 4slug: 6-months 5title: 6 months of Tangled 6subtitle: a quick recap, and notes on the future 7date: 2025-10-21 8image: https://assets.tangled.network/blog/6-months.png 9authors: 10 - name: Anirudh 11 email: anirudh@tangled.org 12 handle: anirudh.fi 13 - name: Akshay 14 email: akshay@tangled.org 15 handle: oppi.li 16draft: false 17--- 18 19Hello Tanglers! It's been over 6 months since we first announced 20Tangled, so we figured we'd do a quick retrospective of what we built so 21far and what's next. 22 23If you're new here, here's a quick overview: Tangled is a git hosting 24and collaboration platform built on top of the [AT 25Protocol](https://atproto.com). You can read a bit more about our 26architecture [here](/intro). 27 28## new logo and mascot: dolly! 29 30Tangled finally has a logo! Designed by Akshay himself, Dolly is in 31reference to the first ever *cloned* mammal. For a full set of brand assets and guidelines, see our new [branding page](https://tangled.org/brand). 32 33![logo with text](https://assets.tangled.network/blog/logo_with_text.jpeg) 34 35With that, let's recap the major platform improvements so far! 36 37## pull requests: doubling down on jujutsu 38 39One of the first major features we built was our [pull requests 40system](/pulls), which follows a unique round-based submission & review 41approach. This was really fun to innovate on -- it remains one of 42Tangled's core differentiators, and one we plan to keep improving. 43 44In the same vein, we're the first ever code forge to support [stacking 45pull requests](/stacking) using Jujutsu! We're big fans of the tool and 46we use it everyday as we hack on 47[tangled.org/core](https://tangled.org/@tangled.org/core). 48 49Ultimately, we think PR-based collaboration should evolve beyond the 50traditional model, and we're excited to keep experimenting with new 51ideas that make code review and contribution easier! 52 53## spindle 54 55CI was our most requested feature, and we spent a *lot* of time debating 56how to approach it. We considered integrating with existing platforms, 57but none were good fits. So we gave in to NIH and [built spindle 58ourselves](/ci)! This allowed us to go in on Nix using Nixery to build 59CI images on the fly and cache them. 60 61Spindle is still early but designed to be extensible and is AT-native. 62The current Docker/Nixery-based engine is limiting -- we plan to switch 63to micro VMs down the line to run full-fledged NixOS (and other base 64images). Meanwhile, if you've got ideas for other spindle backends 65(Kubernetes?!), we'd love to [hear from you](https://chat.tangled.org). 66 67## XRPC APIs 68 69We introduced a complete migration of the knotserver to an 70[XRPC](https://atproto.com/specs/xrpc) API. Alongside this, we also 71decoupled the knot from the appview by getting rid of the registration 72secret, which was centralizing. Knots (and spindles) simply declare 73their owner, and any appview can verify ownership. Once we stabilize the 74[lexicon definitions](lexicons) for these XRPC calls, building clients 75for knots, or alternate implementations should become much simpler. 76 77[lexicons]: https://tangled.sh/@tangled.sh/core/tree/master/lexicons 78 79## issues rework 80 81Issues got a major rework (and facelift) too! They are now threaded: 82top-level comments with replies. This makes Q/A style discussions much 83easier to follow! 84 85![issue thread](https://assets.tangled.network/blog/issue-threading.webp) 86 87## hosted PDS 88 89A complaint we often recieved was the need for a Bluesky account to use 90Tangled; and besides, we realised that the overlap between Bluesky users 91and possible Tangled users only goes so far -- we aim to be a generic 92code forge after all, AT just happens to be an implementation 93detail. 94 95To address this, we spun up the tngl.sh PDS hosted right here in 96Finland. The only way to get an account on this PDS is by [signing 97up](https://tangled.sh/signup). There's a lot we can do to improve this 98experience as a generic PDS host, but we're still working out details 99around that. 100 101## labels 102 103You can easily categorize issues and pulls via labels! There is plenty 104of customization available: 105 106- labels can be basic, or they can have a key and value set, for example: 107`wontfix` or `priority/high` 108- labels can be constrained to a set of values: `priority: [high medium low]` 109- there can be multiple labels of a given type: `reviewed-by: @oppi.li`, 110`reviewed-by: @anirudh.fi` 111 112The options are endless! You can access them via your repo's settings page. 113 114<div class="flex justify-center items-center gap-2"> 115 <figure class="w-full m-0 flex flex-col items-center"> 116 <a href="https://assets.tangled.network/blog/labels_vignette.webp"> 117 <img class="my-1 w-full h-auto cursor-pointer" src="https://assets.tangled.network/blog/labels_vignette.webp" alt="A set of labels applied to an issue."> 118 </a> 119 <figcaption class="text-center">A set of labels applied to an issue.</figcaption> 120 </figure> 121 122 <figure class="w-1/3 m-0 flex flex-col items-center"> 123 <a href="https://assets.tangled.network/blog/new_label_modal.png"> 124 <img class="my-1 w-full h-auto cursor-pointer" src="https://assets.tangled.network/blog/new_label_modal.png" alt="Create custom key-value type labels."> 125 </a> 126 <figcaption class="text-center">Create custom key-value type labels.</figcaption> 127 </figure> 128</div> 129 130 131## notifications 132 133In-app notifications now exist! You get notifications for a variety of events now: 134 135* new issues/pulls on your repos (also for collaborators) 136* comments on your issues/pulls (also for collaborators) 137* close/reopen (or merge) of issues/pulls 138* new stars 139* new follows 140 141All of this can be fine-tuned in [/settings/notifications](https://tangled.org/settings/notifications). 142 143![notifications](https://assets.tangled.network/blog/notifications.png) 144 145 146## the future 147 148We're working on a *lot* of exciting new things and possibly some big 149announcements to come. Be on the lookout for: 150 151* email notifications 152* preliminary support for issue and PR search 153* total "atprotation" [^1] -- the last two holdouts here are repo and pull records 154* total federation -- i.e. supporting third-party appviews by making it 155 reproducible 156* achieve complete independence from Bluesky PBC by hosting our own relay 157 158That's all for now; we'll see you in the atmosphere! Meanwhile, if you'd like to contribute to projects on Tangled, make sure to check out the [good first issues page](https://tangled.org/goodfirstissues) to get started! 159 160[^1]: atprotation implies a two-way sync between the PDS and appview. Currently, pull requests and repositories are not ingested -- so writing/updating either records on your PDS will not show up on the appview.