A vibe coded tangled fork which supports pijul.
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
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
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
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.