this repo has no description
1{{ define "title" }}tangled · tightly-knit social coding{{ end }}
2
3{{ define "extrameta" }}
4 {{ $desc := "Collaborate on code with decentralized git hosting, modern contribution and review workflows, and lightweight CI/CD pipelines." }}
5 {{ $title = "tangled · tightly-knit social coding" }}
6
7 <meta name="description" content="{{ $desc }}" />
8 <meta property="og:title" content="{{ $title }}" />
9 <meta property="og:type" content="website" />
10 <meta property="og:url" content="https://tangled.org" />
11 <meta property="og:description" content="Decentralized git hosting with improved pull requests and lightweight CI/CD. Host repositories on your own infrastructure." />
12 <meta property="og:image" content="https://assets.tangled.network/tangled_og.png" />
13 <meta property="og:image:width" content="1200" />
14 <meta property="og:image:height" content="630" />
15
16 <meta name="twitter:card" content="summary_large_image" />
17 <meta name="twitter:title" content="{{ $title }}" />
18 <meta name="twitter:description" content="{{ $desc }}" />
19 <meta name="twitter:image" content="https://assets.tangled.network/tangled_og.png" />
20
21 <!-- Enhanced Structured Data for Homepage -->
22 <script type="application/ld+json">
23 {
24 "@context": "https://schema.org",
25 "@type": "WebSite",
26 "name": "Tangled",
27 "alternateName": "Tangled",
28 "url": "https://tangled.org",
29 "description": "{{ $desc }}",
30 "potentialAction": {
31 "@type": "SearchAction",
32 "target": "https://tangled.org/?q={search_term_string}",
33 "query-input": "required name=search_term_string"
34 }
35 }
36 </script>
37 <script type="application/ld+json">
38 {
39 "@context": "https://schema.org",
40 "@type": "SoftwareApplication",
41 "name": "Tangled",
42 "applicationCategory": "DeveloperTool",
43 "offers": {
44 "@type": "Offer",
45 "price": "0",
46 "priceCurrency": "USD"
47 },
48 "operatingSystem": "Web",
49 "description": "{{ $desc }}"
50 }
51 </script>
52{{ end }}
53
54{{ define "canonical" }}https://tangled.org{{ end }}
55
56
57{{ define "content" }}
58 <div class="flex flex-col gap-4">
59 {{ template "timeline/fragments/hero" . }}
60 {{ template "features" . }}
61 {{ template "timeline/fragments/goodfirstissues" . }}
62 {{ template "timeline/fragments/trending" . }}
63 {{ template "timeline/fragments/timeline" . }}
64 <div class="flex justify-end">
65 <a href="/timeline" class="inline-flex items-center gap-2 text-gray-500 dark:text-gray-400">
66 view more
67 {{ i "arrow-right" "size-4" }}
68 </a>
69 </div>
70 </div>
71{{ end }}
72
73
74{{ define "feature" }}
75 {{ $info := index . 0 }}
76 {{ $bullets := index . 1 }}
77 <div class="flex flex-col items-center gap-6 md:flex-row md:items-top">
78 <div class="flex-1">
79 <h2 class="text-2xl font-bold text-black dark:text-white mb-6">{{ $info.title }}</h2>
80 <ul class="leading-normal">
81 {{ range $bullets }}
82 <li><p>{{ escapeHtml . }}</p></li>
83 {{ end }}
84 </ul>
85 </div>
86 <div class="flex-shrink-0 w-96 md:w-1/3">
87 <a href="{{ $info.image }}">
88 <img src="{{ $info.image }}" alt="{{ $info.alt }}" class="w-full h-auto rounded shadow-sm" />
89 </a>
90 </div>
91 </div>
92{{ end }}
93
94{{ define "features" }}
95 <div class="prose dark:text-gray-200 space-y-12 px-6 py-4 bg-white dark:bg-gray-800 rounded drop-shadow-sm">
96 {{ template "feature" (list
97 (dict
98 "title" "lightweight git repo hosting"
99 "image" "https://assets.tangled.network/what-is-tangled-repo.png"
100 "alt" "A repository hosted on Tangled"
101 )
102 (list
103 "Host your repositories on your own infrastructure using <em>knots</em>—tiny, headless servers that facilitate git operations."
104 "Add friends to your knot or invite collaborators to your repository."
105 "Guarded by fine-grained role-based access control."
106 "Use SSH to push and pull."
107 )
108 ) }}
109
110 {{ template "feature" (list
111 (dict
112 "title" "improved pull request model"
113 "image" "https://assets.tangled.network/pulls.png"
114 "alt" "Round-based pull requests."
115 )
116 (list
117 "An intuitive and effective round-based pull request flow, with inter-diffing between rounds."
118 "Stacked pull requests using Jujutsu's change IDs."
119 "Paste a <code>git diff</code> or <code>git format-patch</code> for quick drive-by changes."
120 )
121 ) }}
122
123 {{ template "feature" (list
124 (dict
125 "title" "run pipelines using spindles"
126 "image" "https://assets.tangled.network/pipelines.png"
127 "alt" "CI pipeline running on spindle"
128 )
129 (list
130 "Run pipelines on your own infrastructure using <em>spindles</em>—lightweight CI runners."
131 "Natively supports Nix for package management."
132 "Easily extended to support different execution backends."
133 )
134 ) }}
135 </div>
136{{ end }}