{{ define "title" }}tangled · tightly-knit social coding{{ end }} {{ define "extrameta" }} {{ end }} {{ define "content" }}
{{ template "timeline/fragments/hero" . }} {{ template "timeline/fragments/preview" . }} {{ template "features1" . }} {{ template "features2" . }} {{ template "recentUpdates" . }} {{ template "community" . }}
{{ end }} {{ block "topbarLayout" . }}
{{ if .LoggedInUser }}
{{ end }} {{ template "layouts/fragments/topbar" . }}
{{ end }} {{ block "footerLayout" . }} {{ end }} {{ block "bodyClasses" . }} bg-transparent bg-gradient-to-b from-white to-slate-100 dark:bg-none dark:bg-gray-900 {{ end }} {{ block "mainLayout" . }}
{{ block "contentLayout" . }}
{{ block "content" . }}{{ end }}
{{ end }} {{ block "contentAfterLayout" . }}
{{ block "contentAfter" . }}{{ end }}
{{ end }}
{{ end }} {{ define "features1" }} {{ $labelStyle := "normal-case cursor-pointer w-auto md:w-full p-4 md:px-6 rounded bg-white dark:bg-gray-800 font-medium text-base md:text-lg opacity-50 border border-gray-200 dark:border-gray-700 relative overflow-hidden" }} {{ $spanStyle := "z-10 items-center justify-between gap-2 w-full" }} {{ $connectorStyle := "w-0.5 h-6 bg-gray-300 dark:bg-gray-600 opacity-0 mx-auto" }} {{ $contentStyle := "hidden bg-white dark:bg-gray-800 rounded shadow-sm border border-gray-200 dark:border-gray-700 grid-cols-1 animate-fadein" }} {{ $progressOverlayStyle := "absolute inset-0 bg-gray-600/10 dark:bg-gray-100/10 w-0 transition-none" }}
{{ $titleStyle := "text-2xl md:text-6xl my-2 md:mb-4 text-black dark:text-white font-medium" }} {{ $textContentStyle := "p-4 md:p-6 md:text-xl" }} {{ $imgContentStyle := "w-full overflow-hidden place-content-center bg-gradient-to-b from-slate-50 to-slate-100 dark:from-gray-800 dark:to-gray-900 border-t border-gray-200 dark:border-gray-700" }} {{ $linkDesktopStyle := "hover:no-underline items-center gap-2 p-3 text-base btn" }}

Pull requests, reimagined

Break down large features into small, reviewable chunks. Stack pull requests on top of each other and ship faster with round-based code reviews. Tangled natively supports stacking using Jujutsu.

Learn more {{ i "arrow-right" "size-4" }}

Run it at home

Host your repositories on your own infrastructure with knots. Run CI on your own machines with spindles.
Don't want to self-host? All are welcome on our hosted instances.

Learn more {{ i "arrow-right" "size-4" }}

Nix-powered CI

Pick and choose dependencies for your CI pipelines from nixpkgs, one of the biggest package repositories.
Support for Docker and MicroVM based runners coming soon!

Learn more {{ i "arrow-right" "size-4" }}
{{ end }} {{ define "features2" }} {{ $cardStyle := "bg-white dark:bg-gray-800 rounded shadow-sm border border-gray-200 dark:border-gray-700" }} {{ $cardInnerStyle := "flex flex-row items-center gap-4 md:gap-6 p-4 md:p-6 md:pt-8 relative" }} {{ $contentStyle := "flex-1 flex flex-col" }} {{ $titleStyle := "text-xl md:text-2xl font-bold mb-2 md:mb-3 text-gray-900 dark:text-gray-100" }} {{ $descriptionStyle := "text-gray-600 dark:text-gray-300 text-sm md:text-base leading-relaxed mb-5 md:mb-0" }} {{ $linkMobileStyle := "hover:no-underline inline-flex md:hidden items-center gap-2 text-sm text-black dark:text-white font-medium" }} {{ $iconContainerStyle := "relative shrink-0 w-24 h-24 md:w-48 md:h-48" }} {{ $iconCircleStyle := "rounded-full flex items-center justify-center border border-gray-200 dark:border-gray-700" }} {{ $linkDesktopStyle := "hover:no-underline hidden md:inline-flex absolute -bottom-10 -right-14 items-center gap-2 p-3 text-base btn" }}
{{ $moreLink := "https://docs.tangled.org/quick-start-guide.html#login-or-sign-up" }}

Built on AT Protocol

AT Protocol enables federated code-collaboration. Submit pull-requests or bug-reports to any repository hosted on any server.

Bring an existing AT Protocol account (such as your Bluesky account), or signup for one with us.

Learn more {{ i "arrow-right" "size-4" }}
{{ i "at-sign" "size-12 md:size-24" "text-blue-500 dark:text-blue-500" "rotate-12" }}
{{ i "globe" "size-4 md:size-8" "text-blue-500 dark:text-blue-500" }}
Learn more {{ i "arrow-right" "size-4" }}
{{ $moreLink := "https://tangled.org/core" }}

Free and open source

All of Tangled is open source and built with the community! Check out the monorepo and join in on the fun.

We welcome contributions however big or small. You can start contributing by picking up a good-first-issue.

View source {{ i "arrow-right" "size-4" }}
{{ i "package-open" "size-12 md:size-24" "text-green-500 dark:text-green-500" "-rotate-12" }}
{{ i "heart" "size-4 md:size-8" "text-green-500 dark:text-green-500" }}
View source {{ i "arrow-right" "size-4" }}
{{ $moreLink := "/timeline" }}

Social coding is back

Discover trending projects, follow your friends and star your favourite repositories. Coding is better together!

Explore timeline {{ i "arrow-right" "size-4" }}
{{ i "message-circle-heart" "size-12 md:size-24" "text-amber-500 dark:text-amber-500" "rotate-12" }}
{{ i "users" "size-4 md:size-8" "text-amber-500 dark:text-amber-500" }}
Explore timeline {{ i "arrow-right" "size-4" }}
{{ end }} {{ define "changelog" }}

Changelog

{{ range $index := list 0 1 2 3 }}
v1.{{ sub 3 $index }}.0 Feb {{ sub 16 $index }}, 2026

Feature Update {{ sub 4 $index }}

Improvements to the platform including bug fixes, performance enhancements, and new features.

{{ end }}
View full changelog {{ i "arrow-right" "size-4" }}
{{ end }} {{ define "recentUpdates" }}

Recent updates

Follow @tangled.org on Bluesky for more!

{{ range $index, $post := .BlueskyPosts }}
{{ template "post" $post }}
{{ end }}
{{ end }} {{ define "post" }}
{{ template "user/fragments/picHandle" "tangled.org" }} {{ template "repo/fragments/shortTimeAgo" .CreatedAt }}

{{ .Text }}

{{ if .Embed }} {{ if .Embed.EmbedImages_View }}
{{ range .Embed.EmbedImages_View.Images }} {{ .Alt }} {{ end }}
{{ else if .Embed.EmbedExternal_View }} {{ if .Embed.EmbedExternal_View.External.Thumb }} {{ end }}
{{ .Embed.EmbedExternal_View.External.Title }}
{{ .Embed.EmbedExternal_View.External.Description }}
{{ .Embed.EmbedExternal_View.External.Uri }}
{{ else if .Embed.EmbedVideo_View }}
Video embed
{{ end }} {{ end }}
{{ i "heart" "size-4" }} {{ .LikeCount }}
{{ i "repeat-2" "size-4" }} {{ .RepostCount }}
{{ i "message-square" "size-4 -scale-x-1" }} {{ add64 .ReplyCount .QuoteCount }}
{{ i "arrow-up-right" "size-4" }}
{{ end }} {{ define "community" }}

Join the network

You can participate in the Tangled network with an AT account. If you don't know what that is, you can sign up for one below.

{{ end }}