+90
-46
pages/blog/6-months.md
+90
-46
pages/blog/6-months.md
···
2
2
atroot: true
3
3
template:
4
4
slug: 6-months
5
-
title: 6 months of tangling
6
-
subtitle: new domain, a quick recap, and notes on the future
7
-
date: 2025-09-18
8
-
image: /static/img/logo_with_text.jpeg
5
+
title: 6 months of Tangled
6
+
subtitle: a quick recap, and notes on the future
7
+
date: 2025-10-21
8
+
image: /static/img/6-months.png
9
9
authors:
10
10
- name: Anirudh
11
-
email: anirudh@tangled.sh
12
-
handle: icyphox.sh
11
+
email: anirudh@tangled.org
12
+
handle: anirudh.fi
13
13
- name: Akshay
14
-
email: akshay@tangled.sh
14
+
email: akshay@tangled.org
15
15
handle: oppi.li
16
-
draft: true
16
+
draft: false
17
17
---
18
18
19
19
Hello Tanglers! It's been over 6 months since we first announced
20
-
Tangled, so we figured we'd do a quick retrospective on what we built so
20
+
Tangled, so we figured we'd do a quick retrospective of what we built so
21
21
far and what's next.
22
22
23
-
But before that, we've got a big announcement!
24
-
25
-
## tangled.sh is now tangled.org!
26
-
27
-
[Chris Maytag](https://bsky.app/profile/cpm5280.bsky.social) very kindly
28
-
let us have the tangled.org domain!
29
-
30
-
We're still in the process of migrating and there may be stray
31
-
references to the .sh domain in places so bear with us. Rest assured:
32
-
your current links to tangled.sh will be redirected to tangled.org.
23
+
If you're new here, here's a quick overview: Tangled is a git hosting
24
+
and collaboration platform built on top of the [AT
25
+
Protocol](https://atproto.com). You can read a bit more about our
26
+
architecture [here](/intro).
33
27
34
28
## new logo and mascot: dolly!
35
29
36
30
Tangled finally has a logo! Designed by Akshay himself, Dolly is in
37
-
reference to the first ever *cloned* mammal.
31
+
reference to the first ever *cloned* mammal. For a full set of brand assets and guidelines, see our new [branding page](https://tangled.org/brand).
38
32
39
33

40
34
41
35
With that, let's recap the major platform improvements so far!
42
36
43
-
### pull requests
37
+
## pull requests: doubling down on jujutsu
44
38
45
-
One of the first major features we built was our pull requests system,
46
-
which follows a unique round-based submission & review approach. This
47
-
was really fun to innovate on -- it remains one of Tangled's core
48
-
differentiators, and one we plan to keep improving.
39
+
One of the first major features we built was our [pull requests
40
+
system](/pulls), which follows a unique round-based submission & review
41
+
approach. This was really fun to innovate on -- it remains one of
42
+
Tangled's core differentiators, and one we plan to keep improving.
49
43
50
44
In the same vein, we're the first ever code forge to support [stacking
51
45
pull requests](/stacking) using Jujutsu! We're big fans of the tool and
52
46
we use it everyday as we hack on
53
-
[core](https://tangled.sh/@tangled.sh/core). Ultimately, we think
54
-
PR-based collaboration should evolve beyond the traditional model, and
55
-
we're excited to keep experimenting with new ideas that make code review
56
-
and contribution easier!
47
+
[tangled.org/core](https://tangled.org/@tangled.org/core).
57
48
58
-
### spindle
49
+
Ultimately, we think PR-based collaboration should evolve beyond the
50
+
traditional model, and we're excited to keep experimenting with new
51
+
ideas that make code review and contribution easier!
52
+
53
+
## spindle
59
54
60
55
CI was our most requested feature, and we spent a *lot* of time debating
61
56
how to approach it. We considered integrating with existing platforms,
62
57
but none were good fits. So we gave in to NIH and [built spindle
63
-
ourselves](/ci)! This turned out great -- we could go all in on Nix and
64
-
make it "atproto native".
58
+
ourselves](/ci)! This allowed us to go in on Nix using Nixery to build
59
+
CI images on the fly and cache them.
65
60
66
-
Spindle is still early but designed to be extensible. The current
67
-
Docker-based engine is limiting -- we plan to switch to micro VMs
68
-
eventually. Meanwhile, if you've got ideas for other spindle backends
69
-
(Kubernetes?!), we'd love to [hear from you](https://chat.tangled.sh).
61
+
Spindle is still early but designed to be extensible and is AT-native.
62
+
The current Docker/Nixery-based engine is limiting -- we plan to switch
63
+
to micro VMs down the line to run full-fledged NixOS (and other base
64
+
images). Meanwhile, if you've got ideas for other spindle backends
65
+
(Kubernetes?!), we'd love to [hear from you](https://chat.tangled.org).
70
66
71
-
### XRPC APIs
67
+
## XRPC APIs
72
68
73
69
We introduced a complete migration of the knotserver to an
74
70
[XRPC](https://atproto.com/specs/xrpc) API. Alongside this, we also
···
80
76
81
77
[lexicons]: https://tangled.sh/@tangled.sh/core/tree/master/lexicons
82
78
83
-
### issues rework
79
+
## issues rework
84
80
85
81
Issues got a major rework (and facelift) too! They are now threaded:
86
82
top-level comments with replies. This makes Q/A style discussions much
···
88
84
89
85

90
86
91
-
### hosted PDS
87
+
## hosted PDS
92
88
93
89
A complaint we often recieved was the need for a Bluesky account to use
94
90
Tangled; and besides, we realised that the overlap between Bluesky users
95
91
and possible Tangled users only goes so far -- we aim to be a generic
96
-
code forge after all, atproto just happens to be an implementation
92
+
code forge after all, AT just happens to be an implementation
97
93
detail.
98
94
99
95
To address this, we spun up the tngl.sh PDS hosted right here in
···
102
98
experience as a generic PDS host, but we're still working out details
103
99
around that.
104
100
101
+
## labels
102
+
103
+
You can easily categorize issues and pulls via labels! There is plenty
104
+
of 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
+
112
+
The 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="static/img/labels_vignette.webp">
117
+
<img class="my-1 w-full h-auto cursor-pointer" src="static/img/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="static/img/new_label_modal.png">
124
+
<img class="my-1 w-full h-auto cursor-pointer" src="static/img/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
+
133
+
In-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
+
141
+
All of this can be fine-tuned in [/settings/notifications](https://tangled.org/settings/notifications).
142
+
143
+

144
+
145
+
105
146
## the future
106
147
107
148
We're working on a *lot* of exciting new things and possibly some big
108
-
announcements to come:
149
+
announcements to come. Be on the lookout for:
109
150
110
-
* labels
111
-
* notifications: both in-app and emails
151
+
* email notifications
112
152
* preliminary support for issue and PR search
113
-
* total federation
114
-
* network playback
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
115
157
116
-
That's all for now; we'll see you in the atmosphere!
158
+
That'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.
static/img/6-months.png
static/img/6-months.png
This is a binary file and will not be displayed.
static/img/labels_vignette.webp
static/img/labels_vignette.webp
This is a binary file and will not be displayed.
static/img/new_label_modal.png
static/img/new_label_modal.png
This is a binary file and will not be displayed.
static/img/notifications.png
static/img/notifications.png
This is a binary file and will not be displayed.
-2
templates/index.html
-2
templates/index.html
···
25
25
<ul class="px-0">
26
26
{{ $posts := .Extra.blog }}
27
27
{{ range $posts }}
28
-
{{ if .Allowed }}
29
28
<li class="mt-5 bg-white dark:bg-gray-800 py-4 px-6 rounded drop-shadow-sm list-none">
30
29
{{ $dateStr := .Meta.date }}
31
30
{{ $date := parsedate $dateStr }}
···
38
37
<p class="italic mt-1 mb-0">{{ .Meta.subtitle }}</p>
39
38
</div>
40
39
</li>
41
-
{{ end }}
42
40
{{ end }}
43
41
</ul>
44
42
</section>