+5
pages/blog/_index.md
+5
pages/blog/_index.md
+33
-11
pages/blog/intro.md
+33
-11
pages/blog/intro.md
···
9
9
---
10
10
11
11
12
-
[Tangled](https://tangled.sh) is a new social-enabled Git collaboration platform, built on top of the [AT Protocol](https://atproto.com). We envision a place where developers have complete ownership of their code, open source communities can freely self-govern and most importantly, coding can be social and fun again.
12
+
[Tangled](https://tangled.sh) is a new social-enabled Git collaboration
13
+
platform, built on top of the [AT Protocol](https://atproto.com). We
14
+
envision a place where developers have complete ownership of their code,
15
+
open source communities can freely self-govern and most importantly,
16
+
coding can be social and fun again.
13
17
14
-
There are several models for decentralized social networks, ranging from ActivityPub's federated model, to Radicle's entirely P2P model. Our approach attempts to be the best of both worlds by adopting atproto -- a protocol for building decentralized social applications with a central identity.
18
+
There are several models for decentralized social networks, ranging from
19
+
ActivityPub's federated model, to Radicle's entirely P2P model. Our
20
+
approach attempts to be the best of both worlds by adopting atproto -- a
21
+
protocol for building decentralized social applications with a central
22
+
identity.
15
23
16
24

17
25
18
-
Our addition to this model is the idea of "knots". Knots are lightweight, headless servers that enable users to host git repositories with ease. Knots are designed for either single or multi-tenant use which is perfect for "community" servers. By default, Tangled provides managed knots where you can host your repositories for free.
26
+
Our addition to this model is the idea of "knots". Knots are
27
+
lightweight, headless servers that enable users to host git repositories
28
+
with ease. Knots are designed for either single or multi-tenant use
29
+
which is perfect for "community" servers. By default, Tangled provides
30
+
managed knots where you can host your repositories for free.
19
31
20
-
The [App View][appview] at [tangled.sh](https://tangled.sh) acts as a consolidated "view" into the whole network, allowing users to access, clone and contribute to repositories hosted across different knots -- completely seamlessly.
21
-
22
-
Tangled is still in its infancy, and we're still building out several of its core features as we dogfood it ourselves. We developed these three core tenets to guide our decisions:
32
+
The [App View][appview] at [tangled.sh](https://tangled.sh) acts as a
33
+
consolidated "view" into the whole network, allowing users to access,
34
+
clone and contribute to repositories hosted across different knots --
35
+
completely seamlessly.
23
36
24
-
1. **Ownership of data**
25
-
2. **Low barrier to entry**
26
-
3. **No compromise on user-experience**
37
+
Tangled is still in its infancy, and we're still building out several of
38
+
its core features as we dogfood it ourselves. We developed these three
39
+
core tenets to guide our decisions:
27
40
28
-
Collaborating on code isn't easy, and the tools and workflows we use should feel natural and stay out of the way. Tangled's architecture enables common workflows to work as you'd expect, while remaining decentralized.
41
+
1. Ownership of data
42
+
2. Low barrier to entry
43
+
3. No compromise on user-experience
29
44
30
-
We believe that atproto has greatly simplfied one of the hardest parts of social media: having your friends on it. We're rolling out invite-only access to Tangled -- join us on IRC and we'll get you set up.
45
+
Collaborating on code isn't easy, and the tools and workflows we use
46
+
should feel natural and stay out of the way. Tangled's architecture
47
+
enables common workflows to work as you'd expect, while remaining
48
+
decentralized.
31
49
50
+
We believe that atproto has greatly simplfied one of the hardest parts
51
+
of social media: having your friends on it. We're rolling out
52
+
invite-only access to Tangled -- join us on IRC and we'll get you set
53
+
up.
32
54
33
55
[pds]: https://atproto.com/guides/glossary#pds-personal-data-server
34
56
[appview]: https://docs.bsky.app/docs/advanced-guides/federation-architecture#app-views
+38
-38
templates/index.html
+38
-38
templates/index.html
···
2
2
<html lang=en>
3
3
<head>
4
4
{{ template "partials/head.html" }}
5
-
<meta name="description" content="{{ .Meta.subtitle }}">
5
+
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://tangled.sh/blog/feed.xml">
6
+
<meta name="description" content="{{ index .Meta "subtitle" }}">
6
7
</head>
8
+
7
9
<title>
8
-
{{ .Meta.title }}
10
+
{{ .Meta.title }} — {{ .Cfg.Title }}
9
11
</title>
12
+
10
13
<body class="bg-slate-100">
11
-
<main class="container mx-auto px-1 pt-4 min-h-screen flex flex-col">
12
-
<div class="sidenav">
13
-
{{ template "partials/nav.html" }}
14
-
</div>
15
-
<article>
16
-
<section class="tagline">
17
-
{{ .Body }}
18
-
</section>
14
+
<div class="prose mx-auto px-1 pt-4 min-h-screen flex flex-col">
15
+
<main>
16
+
<header class="px-12">
17
+
<h1 class="mb-0">{{ index .Meta "title" }}</h1>
18
+
<h2 class="font-light mt-1 mb-0 text-lg">{{ index .Meta "subtitle" }}</h2>
19
+
</header>
19
20
20
-
<hr>
21
+
{{ .Body }}
21
22
22
-
<section class="posts">
23
-
<h2>writing</h2>
24
-
<ul>
25
-
{{ $posts := .Extra.blog }}
26
-
{{ range slice $posts 0 3 }}
27
-
<li>
28
-
<div class="post">
29
-
<a href=/{{ .Meta.slug }}>{{ .Meta.title }}</a>
30
-
{{ if .Meta.draft }}
31
-
(<span class="draft">draft</span>)
32
-
{{ end }}
33
-
<p class="subtitle">{{ .Meta.subtitle }}</p>
34
-
</div>
35
-
{{ $dateStr := .Meta.date }}
36
-
{{ $date := parsedate $dateStr }}
37
-
<div class="index-date">{{ $date.Format "02 Jan, 2006" }}</div>
38
-
</li>
39
-
{{ end }}
40
-
</ul>
41
-
<a style="border-bottom: unset;" href="/blog/"><span>more →</span></a>
42
-
</section>
43
-
</article>
44
-
</main>
45
-
<footer>
46
-
{{ template "partials/footer.html" }}
47
-
</footer>
48
-
</body>
23
+
<section class="py-4">
24
+
<ul class="px-6">
25
+
{{ $posts := .Extra }}
26
+
{{ range $posts }}
27
+
<li class="mt-5 bg-white py-4 px-6 rounded drop-shadow-sm list-none">
28
+
<div>
29
+
<a class="title mb-0 text-lg" href="/{{ .Meta.slug }}.html">{{ .Meta.title }}</a>
30
+
{{ if .Meta.draft }}
31
+
(<span class="draft">draft</span>)
32
+
{{ end }}
33
+
<p class="italic mt-1 mb-0">{{ .Meta.subtitle }}</p>
34
+
</div>
35
+
{{ $dateStr := .Meta.date }}
36
+
{{ $date := parsedate $dateStr }}
37
+
<div class="post-date py-1 mb-0 text-sm">{{ $date.Format "02 Jan, 2006" }}</div>
38
+
</li>
39
+
{{ end }}
40
+
</ul>
41
+
</section>
42
+
</div>
43
+
</main>
44
+
<footer>
45
+
{{ template "partials/footer.html" }}
46
+
</footer>
47
+
</body>
48
+
49
49
</html>