pages/garden/fedi-v2/index.html

44 lines
No EOL
43 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Fedi v2 | The Paper Pilot</title>
<meta name="description" content="The Paper Pilot's Digital Garden">
<meta name="generator" content="VitePress v1.2.2">
<link rel="preload stylesheet" href="/assets/style.KmWSyZ-T.css" as="style">
<script type="module" src="/assets/app.CiQ1dbbV.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.BIC8H_hJ.js">
<link rel="modulepreload" href="/assets/chunks/theme.CCpcF4Lc.js">
<link rel="modulepreload" href="/assets/chunks/git.data.CyBiH_4j.js">
<link rel="modulepreload" href="/assets/garden_fedi-v2_index.md.CbH0Icbw.lean.js">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Itim&amp;family=Roboto+Mono:ital,wght@0,400;0,600;1,400&amp;display=block">
<link rel="manifest" href="/site.webmanifest">
<link rel="alternate" type="text/mf2+html" href="/changelog">
<link rel="alternate" type="application/rss+xml" title="Changelog" href="/changelog/rss">
<link rel="alternate" type="application/atom+xml" title="Changelog" href="/changelog/atom">
<link rel="alternate" type="application/json+xml" title="Changelog" href="/changelog/json">
<link rel="me" href="mailto:thepaperpilot@incremental.social">
<link rel="me" href="https://incremental.social/u/thepaperpilot">
<link rel="me" href="https://matrix.to/#/@thepaperpilot:incremental.social">
<link rel="me" href="https://code.incremental.social/thepaperpilot">
<link rel="me" href="https://www.linkedin.com/in/anthony-lawn/">
<link rel="me" href="https://mastodon.gamedev.place/@thepaperpilot">
<link rel="me" href="https://beehaw.org/u/thepaperpilot">
<link rel="me" href="https://www.reddit.com/user/ThePaperPilot/">
<link rel="me" href="https://github.com/thepaperpilot">
<link rel="me" href="https://twitter.com/ThePaperPilot">
<meta name="og:description" content="The Paper Pilot's Digital Garden">
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-bec31a4f data-v-5d98c3a5><!--[--><!--[--><!--]--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-ccf7ddec><div class="wrapper" data-v-ccf7ddec><div class="container" data-v-ccf7ddec><div class="title" data-v-ccf7ddec><div class="VPNavBarTitle has-sidebar" data-v-ccf7ddec data-v-ab179fa1><a class="title" href="/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>The Paper Pilot</span><!--[--><!--]--></a></div></div><div class="content" data-v-ccf7ddec><div class="content-body" data-v-ccf7ddec><!--[--><!--]--><div class="VPNavBarSearch search" data-v-ccf7ddec><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://moddingtree.com" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Profectus</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://incremental.social" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Incremental Social</span><!--]--></a><!--]--><!--]--></nav><!----><!----><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://code.incremental.social/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Forgejo</title><path d="M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z"/></svg></a><a class="VPSocialLink no-icon" href="https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Matrix</title><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg></a><a class="VPSocialLink no-icon" href="https://incremental.social/u/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Fediverse</title><path d="M4.589 7.91a2.295 2.295 0 01-2.416 2.166A2.295 2.295 0 01.005 7.66a2.295 2.295 0 012.418-2.167A2.295 2.295 0 014.589 7.91zm1.876 11.995a2.295 2.295 0 01-2.417 2.167 2.295 2.295 0 01-2.166-2.417 2.295 2.295 0 012.416-2.166 2.295 2.295 0 012.167 2.416zm11.993 1.925a2.295 2.295 0 01-2.416 2.167 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.417-2.167 2.295 2.295 0 012.167 2.418zm5.537-10.807a2.295 2.295 0 01-2.417 2.168 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.418-2.165 2.295 2.295 0 012.167 2.415zm-8.57-8.603a2.295 2.295 0 01-2.419 2.168A2.295 2.295 0 0110.84 2.17 2.295 2.295 0 0113.256.003a2.295 2.295 0 012.168 2.418zM4.79 7.407a2.525 2.525 0 01.028.516 2.525 2.525 0 01-.263.99l3.716.595.731-1.425zm6.368 1.022l-.73 1.425 8.777 1.41a2.525 2.525 0 01-.025-.502 2.525 2.525 0 01.27-1.002zm3.118-3.887a2.525 2.525 0 01-1.283.274 2.525 2.525 0 01-.22-.023l.58 3.712 1.58.254zm-.588 6.12l1.37 8.775a2.525 2.525 0 011.245-.254 2.525 2.525 0 01.264.03l-1.296-8.297zm-3.046-7.96L4.098 6.02a2.525 2.525 0 01.688 1.36l6.545-3.317a2.525 2.525 0 01-.688-1.358zm4.725.76a2.525 2.525 0 01-1.08 1.074l5.177 5.197a2.525 2.525 0 011.08-1.075zm4.56 9.23l-3.343 6.524a2.525 2.525 0 011.355.695l3.344-6.525a2.525 2.525 0 01-1.357-.695zm-13.26 6.716a2.525 2.525 0 01.025.51 2.525 2.525 0 01-.266.995l7.243 1.163a2.525 2.525 0 01-.027-.508 2.525 2.525 0 01.267-.997zm-3.245-9.366a2.525 2.525 0 01-1.26.264 2.525 2.525 0 01-.245-.026l1.132 7.244a2.525 2.525 0 011.262-.264 2.525 2.525 0 01.243.025zm7.935-5.954l-3.83 7.474 1.13 1.135 4.055-7.914a2.525 2.525 0 01-1.355-.695zm-4.826 9.418l-1.94 3.786a2.525 2.525 0 011.356.696l1.715-3.348zm12.682-2.2l-3.355 1.7.247 1.583 3.797-1.925a2.525 2.525 0 01-.689-1.36zm-5.305 2.687l-7.935 4.02a2.525 2.525 0 01.69 1.36l7.494-3.797zM4.534 8.95a2.525 2.525 0 01-1.08 1.075l5.93 5.95 1.43-.724zm7.821 7.85l-1.43.724 3.004 3.014a2.525 2.525 0 011.08-1.075z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-ccf7ddec data-v-d0bd9dde data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><!----><!--[--><!--[--><!----><!----><div class="group" data-v-d0bd9dde><div class="item social-links" data-v-d0bd9dde><div class="VPSocialLinks social-links-list" data-v-d0bd9dde data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://code.incremental.social/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Forgejo</title><path d="M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z"/></svg></a><a class="VPSocialLink no-icon" href="https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Matrix</title><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg></a><a class="VPSocialLink no-icon" href="https://incremental.social/u/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Fediverse</title><path d="M4.589 7.91a2.295 2.295 0 01-2.416 2.166A2.295 2.295 0 01.005 7.66a2.295 2.295 0 012.418-2.167A2.295 2.295 0 014.589 7.91zm1.876 11.995a2.295 2.295 0 01-2.417 2.167 2.295 2.295 0 01-2.166-2.417 2.295 2.295 0 012.416-2.166 2.295 2.295 0 012.167 2.416zm11.993 1.925a2.295 2.295 0 01-2.416 2.167 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.417-2.167 2.295 2.295 0 012.167 2.418zm5.537-10.807a2.295 2.295 0 01-2.417 2.168 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.418-2.165 2.295 2.295 0 012.167 2.415zm-8.57-8.603a2.295 2.295 0 01-2.419 2.168A2.295 2.295 0 0110.84 2.17 2.295 2.295 0 0113.256.003a2.295 2.295 0 012.168 2.418zM4.79 7.407a2.525 2.525 0 01.028.516 2.525 2.525 0 01-.263.99l3.716.595.731-1.425zm6.368 1.022l-.73 1.425 8.777 1.41a2.525 2.525 0 01-.025-.502 2.525 2.525 0 01.27-1.002zm3.118-3.887a2.525 2.525 0 01-1.283.274 2.525 2.525 0 01-.22-.023l.58 3.712 1.58.254zm-.588 6.12l1.37 8.775a2.525 2.525 0 011.245-.254 2.525 2.525 0 01.264.03l-1.296-8.297zm-3.046-7.96L4.098 6.02a2.525 2.525 0 01.688 1.36l6.545-3.317a2.525 2.525 0 01-.688-1.358zm4.725.76a2.525 2.525 0 01-1.08 1.074l5.177 5.197a2.525 2.525 0 011.08-1.075zm4.56 9.23l-3.343 6.524a2.525 2.525 0 011.355.695l3.344-6.525a2.525 2.525 0 01-1.357-.695zm-13.26 6.716a2.525 2.525 0 01.025.51 2.525 2.525 0 01-.266.995l7.243 1.163a2.525 2.525 0 01-.027-.508 2.525 2.525 0 01.267-.997zm-3.245-9.366a2.525 2.525 0 01-1.26.264 2.525 2.525 0 01-.245-.026l1.132 7.244a2.525 2.525 0 011.262-.264 2.525 2.525 0 01.243.025zm7.935-5.954l-3.83 7.474 1.13 1.135 4.055-7.914a2.525 2.525 0 01-1.355-.695zm-4.826 9.418l-1.94 3.786a2.525 2.525 0 011.356.696l1.715-3.348zm12.682-2.2l-3.355 1.7.247 1.583 3.797-1.925a2.525 2.525 0 01-.689-1.36zm-5.305 2.687l-7.935 4.02a2.525 2.525 0 01.69 1.36l7.494-3.797zM4.534 8.95a2.525 2.525 0 01-1.08 1.075l5.93 5.95 1.43-.724zm7.821 7.85l-1.43.724 3.004 3.014a2.525 2.525 0 011.08-1.075z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-ccf7ddec data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-ccf7ddec><div class="divider-line" data-v-ccf7ddec></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-575e6a36><div class="curtain" data-v-575e6a36></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-575e6a36><span class="visually-hidden" id="sidebar-aria-label" data-v-575e6a36> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-575e6a36><section class="VPSidebarItem level-0" data-v-575e6a36 data-v-b8d55f3b><div class="item" role="button" tabindex="0" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><h2 class="text" data-v-b8d55f3b>Recommended Pages</h2><!----></div><div class="items" data-v-b8d55f3b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/the-small-web" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>The Small Web</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/guide-to-incrementals" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Guide to Incrementals</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/my-projects" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>My Projects</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/garden/fedi-v2" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Fedi v2</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-575e6a36><section class="VPSidebarItem level-0" data-v-575e6a36 data-v-b8d55f3b><!----><div class="items" data-v-b8d55f3b><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/about" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>About Me</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/now" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>/now</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b8d55f3b data-v-b8d55f3b><div class="item" data-v-b8d55f3b><div class="indicator" data-v-b8d55f3b></div><a class="VPLink link link" href="/changelog" data-v-b8d55f3b><!--[--><p class="text" data-v-b8d55f3b>Site Changelog</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div class="h-entry vp-doc _garden_fedi-v2_" data-v-39a288b8><div><h1 class="p-name">Fedi v2</h1><p>1274 words, ~7 minute read. <span>Planted <a href='https://code.incremental.social/thepaperpilot/pages/commit/fe175090d3fc0cfa81754ec5b19a184005e31d8c' title='Mon Jun 3 22:59:20 2024 -0500'><time class='dt-published' datetime='Mon Jun 3 22:59:20 2024 -0500'>2024-06-03</time></a>
. Last tended to <a href='https://code.incremental.social/thepaperpilot/pages/commit/14a570c17b9fb881c611ae5e1aad8e4200ca8b30' title='Tue Jun 18 02:32:30 2024 -0500'><time class='dt-updated' datetime='Tue Jun 18 02:32:30 2024 -0500'>2024-06-18</time></a>
.</span></p><hr><blockquote><p>Referenced by: <a href="/garden/social-media/">Social Media</a>, <a href="/garden/weird/">Weird</a></p></blockquote><p>A placeholder name for a theoretical new federated network that is client-centric, in contrast to the server-centric <a href="/garden/fediverse/">Fediverse</a></p><p>There are further discussions about actually implementing all this within the <a href="/garden/weird/">Weird</a> community</p><h2 id="inspiration" tabindex="-1">Inspiration <a class="header-anchor" href="#inspiration" aria-label="Permalink to &quot;Inspiration&quot;"></a></h2><ul><li><a href="https://raphael.lullis.net/a-plan-for-social-media-less-fedi-more-webby/" target="_blank" rel="noreferrer">A Plan for Social Media - Rethinking Federation</a><ul><li>This article doesn&#39;t address many implementation details: <ul><li>If the server is a relay, can content not be viewed anonymously?</li><li>How to handle storing large amounts of data on every client?</li><li>Don&#39;t you still need to associate with a server for people to direct their messages to?</li></ul></li></ul></li><li><a href="https://mull.net/mastodon" target="_blank" rel="noreferrer">Single-user Mastodon Instance is a Bad Idea</a><ul><li>Focuses on the non-feasibility of self hosting, contributing to <a href="/garden/fediverse/">Federated Social Media</a> not actually having all the upsides it should theoretically have by virtue of being <a href="/garden/decentralized/">Decentralized</a></li></ul></li><li>The <a href="/garden/commune/">Commune</a> community</li><li>Existing protocols: <ul><li><a href="https://nostr.com" target="_blank" rel="noreferrer">Nostr</a><ul><li>Currently suffers a culture problem by being associated with alt right and crypto users, making broad adoption more difficult</li></ul></li><li><a href="https://atproto.com" target="_blank" rel="noreferrer">ATProto</a><ul><li>Focused on a few large instances, to be run by large corporations. Still requires associating your identity with a server you don&#39;t own</li></ul></li></ul></li><li>A lot of these ideas are learned lessons from the usenet days</li></ul><h2 id="identity" tabindex="-1">Identity <a class="header-anchor" href="#identity" aria-label="Permalink to &quot;Identity&quot;"></a></h2><ul><li><a href="/garden/federated-identity/">Federated Identity</a></li><li>Private and public keys anyone can create and store how they want <ul><li>Fully free to create and store with no server dependencies</li></ul></li><li>Profile information <ul><li>Sent as a signed message through all the relays</li><li>How would you trust a username? <ul><li><a href="https://spritely.institute/static/papers/petnames.html" target="_blank" rel="noreferrer">Petnames</a> could be used to display human readable names via contacts or decentralized &quot;naming hubs&quot;</li><li>In most conversations online, you can trust their display name and add them as a contact as that display name <ul><li>You only need to verify they are the same person you interacted with previously</li><li>You only need to trust people you want to send money to or otherwise &quot;important identities&quot;</li><li>For important identities, you can trust your contacts forming a chain of trust, or a authoritative naming hub <ul><li>E.g. a white house ran naming hub that verifies the identities of the president and people of Congress</li><li>People typically wouldn&#39;t reach out to a naming hub, as it&#39;s not typically necessary</li></ul></li><li>Contacts supercede naming hubs, so if a naming hub is breached, anyone I&#39;ve previously added as a contact is still the source of truth <ul><li>This only fails if the private key itself was breached</li></ul></li><li>I&#39;m just thepaperpilot, my display name. For most online communication, this is sufficient <ul><li>My website can have a nameserver saying this publickey is the same as the site owner</li><li>If I write a paper at a scientific journal, they can say the author of x paper is my publickey</li></ul></li></ul></li></ul></li></ul></li><li>How to handle losing your private key <ul><li>If you do have a naming hub you can verify with, they can say the identity has a new publickey</li><li>Contacts can &quot;vouch&quot; for a identity having a new publickey</li><li>Clients can decide to trust the new publickey based on contacts and naming hubs saying to</li><li>Also applies to stolen or compromised keys</li></ul></li></ul><h2 id="servers" tabindex="-1">Servers <a class="header-anchor" href="#servers" aria-label="Permalink to &quot;Servers&quot;"></a></h2><ul><li>Act as relays, merely storing messages and sending them to any clients or servers that have subscribed</li><li>May decide to publicly display messages its received <ul><li>These servers are how discovery would work</li><li>Different servers may offer unique displays, filters, etc.</li></ul></li><li>Users can send their content to any server - no authentication or account required, as the identity suffices <ul><li>Even replies can work this way - no need to know from where a given message originated</li></ul></li><li>Private servers could require some password when sending messages or subscribing to things <ul><li>Useful for a school or other entity that wants an internal social network</li></ul></li><li>Different ways to subscribe to a server&#39;s messages <ul><li>All messages the relay hears about (new relays essentially subscribe like this to some existing relay)</li><li>All messages from a specific poster ID</li><li>Any replies to a message created with a specific poster ID</li><li>Shallow subscriptions, to lighten the load when subscribing to communities</li></ul></li></ul><h2 id="content" tabindex="-1">Content <a class="header-anchor" href="#content" aria-label="Permalink to &quot;Content&quot;"></a></h2><ul><li>Protocol should dictate how to convey text, image, audio, video, and binary content</li><li>Protocol should include reacting to content with arbitrary text, including a URL <ul><li>Upvotes and downvotes are implemented with this system</li></ul></li><li>Each message contains fields for the poster&#39;s ID (public key) and a signature that verifies the content was made by that poster <ul><li>That signature serves as an ID for the message itself <ul><li>Anything can be replied to using the ID as the &quot;parent&quot; property in a new post</li></ul></li></ul></li><li>Edits are handled as replies with some flag to indicate it&#39;s updating the parent messages&#39; content <ul><li>Naturally, this reply would only be respected if it matches the same creator ID</li><li>Servers should replace the original message entirely with this one and indicate its an edited message <ul><li>Some servers will inevitably keep a full history though</li></ul></li></ul></li><li>Groups/communities are just specially flagged messages <ul><li>Posting to a community is just replying to that message</li><li>Subscribing to a community is just subscribing to that message</li><li>The original message creator effectively owns the group</li></ul></li><li><a href="/garden/the-small-web/">IndieWeb</a> pages could publish these messages as well, effectively serving as clients within the network <ul><li>Perhaps use a bit to actually send those messages to other relays within the network</li></ul></li></ul><h2 id="moderation" tabindex="-1">Moderation <a class="header-anchor" href="#moderation" aria-label="Permalink to &quot;Moderation&quot;"></a></h2><ul><li>In general, edits and delete requests are made by replying with a specially flagged message</li><li>Edit and deletion messages are ignored unless they have the correct public key and signature <ul><li>Parent messages form a hierarchy of permission - if someone replies to your message, you can send a delete request for that message</li><li>Relay owners cannot fully delete messages, but can choose to stop relaying replies etc. of messages as the server owner wishes</li></ul></li><li>Posts can be publicly reported with a specially flagged reply <ul><li>How to make anonymous reports?</li></ul></li><li>Users can send deletion or edit messages even without a matching public key, and clients (or relays) can choose to respect those messages if that public key is whitelisted as a moderator <ul><li>Messages (and by extension, groups) can have replies granting or removing permission to other public IDs at that hierarchy level</li><li>People can setup accounts with their desired heuristic for sending delete messages, such as looking at public reports or analyzing the content with AI <ul><li>This way clients can effectively customize their preferred moderation</li></ul></li></ul></li><li>Clients can also choose to add additional rules for hiding content, such as any reports by followed users</li><li>Perhaps delete messages pull double duty as public reports in and of themselves?</li></ul><h2 id="problems-to-solve" tabindex="-1">Problems to solve <a class="header-anchor" href="#problems-to-solve" aria-label="Permalink to &quot;Problems to solve&quot;"></a></h2><ul><li>No anonymity <ul><li>All upvotes, downvotes, etc. are linked to your public key</li><li>Perhaps a client could generate new keypairs for every action for anonymity, but then it&#39;d be hard to determine if such an account and action was a genuine user or a bot</li></ul></li><li>Servers could probably determine the identity of clients sending their messages to them <ul><li>A client that only ever sends messages with a specific public key is unlikely to be a server</li><li>A client that doesn&#39;t subscribe to all messages is unlikely to be a server</li><li>Perhaps clients and servers can be identified as such, and subscribing to new messages is something you only do to servers, not clients</li></ul></li><li>Illegal material will likely be placed on the hard drive at least temporarily <ul><li>Messages will be downloaded and, even if you follow a moderator bot that looks for illegal material, there&#39;s likely to be a delay between receiving the initial message and receiving the bots delete message</li></ul></li><li>You have to download all spam messages <ul><li>For redundancy, you&#39;d likely subscribe to multiple relay servers</li><li>You cannot trust several relay servers to have identical rules on not relaying messages that don&#39;t pass whatever moderation heuristic</li><li>Therefore, the filtering out of spam has to be done by the client, after downloading it all</li></ul></li></ul></div></div></main><!----><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><footer class="vp-doc" data-v-bec31a4f><div data-v-bec31a4f>CC 2024 <a class="h-card" rel="me" href="/about" data-v-bec31a4f><img src="/me.jpg" alt="" data-v-bec31a4f>The Paper Pilot</a>. <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" data-v-bec31a4f>CC BY-NC-SA 4.0</a>.</div><div data-v-bec31a4f>Any and all opinions listed here are my own and not representative of my employers; future, past and present.</div><div data-v-bec31a4f><a href="https://resume.incremental.social/thepaperpilot/thepaperpilot" data-v-bec31a4f>Resume</a> (not actively seeking new opportunities).</div><div data-v-bec31a4f>Site built from <a href="https://code.incremental.social/thepaperpilot/pages/commit/66f0b98e2010e2b3660c78b8372949450f8e2506" data-v-bec31a4f>this commit</a> on <time data-v-bec31a4f>Tuesday, June 18, 2024 at 19:21:38</time>.</div></footer><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"garden_decentralized_index.md\":\"BNrKx4xJ\",\"garden_planar-pioneers_index.md\":\"ODGu0wpW\",\"garden_the-indieweb_signature-blocks_index.md\":\"Bcm_IItL\",\"garden_the-small-web_index.md\":\"DO1eNNcI\",\"garden_garden-rss_index.md\":\"DNabJiFS\",\"garden_guide-to-incrementals_appeal-to-developers_index.md\":\"BTxU4tZF\",\"garden_activitypub_index.md\":\"xXb3KYxg\",\"garden_my-personal-website_index.md\":\"Dyb2N-cK\",\"garden_mbin_index.md\":\"C_7HYqMn\",\"garden_the-beginner-s-guide_index.md\":\"Ua8nldhQ\",\"garden_the-indieweb_amplification_index.md\":\"DqEcHpr5\",\"garden_v-ecs_index.md\":\"Ct-Rvfyx\",\"garden_cinny_index.md\":\"PesSZHlk\",\"guide-to-incrementals_ludology_appeal-gamers_index.md\":\"C-yq_Mr7\",\"garden_the-cozy-web_index.md\":\"l1jFjYIQ\",\"garden_guide-to-incrementals_what-is-content_index.md\":\"BMH-94jG\",\"guide-to-incrementals_ludology_content_index.md\":\"dgppcs45\",\"now_index.md\":\"BW_X-t75\",\"public_gamedevtree_2.0-format-changes.md\":\"Ln8OHXLK\",\"public_gamedevtree_readme.md\":\"BfpG_Bbp\",\"public_gamedevtree_changelog.md\":\"BEzzFifp\",\"garden_fediverse_index.md\":\"wup7DFUP\",\"garden_weird_index.md\":\"D4cAamzi\",\"garden_commune_index.md\":\"O_rk0wNz\",\"garden_profectus_index.md\":\"DNDwVhYD\",\"garden_game-dev-tree_index.md\":\"CqK59AXb\",\"garden_this-knowledge-hub_index.md\":\"zIVk6ZvO\",\"garden_incremental-social_index.md\":\"Ci5B6zNg\",\"guide-to-incrementals_index.md\":\"DindWN65\",\"garden_guide-to-incrementals_index.md\":\"Cmakbc4a\",\"garden_matrix_index.md\":\"DlO__w7G\",\"garden_freeform-vs-chronological-dichotomy_index.md\":\"CnBt21Gv\",\"garden_wanderstop_index.md\":\"BdysmYpZ\",\"garden_forgejo_index.md\":\"DuspREZy\",\"garden_artificial-intelligence_index.md\":\"DCAk7A6T\",\"garden_advent-incremental_index.md\":\"CjWOOmdy\",\"garden_synapse_index.md\":\"BgoRUW7Y\",\"garden_guide-to-incrementals_navigating-criticism_index.md\":\"DZayBKvJ\",\"garden_command-palettes_index.md\":\"LToXmYxG\",\"public_gamedevtree_docs_!general-info.md\":\"BEe1QWpT\",\"garden_federated-identity_index.md\":\"MK2Pksig\",\"garden_digital-gardens_index.md\":\"DXcsBqlU\",\"garden_chat-glue_index.md\":\"Ct8hR47l\",\"garden_video-game-monetization_index.md\":\"2fcCHO0j\",\"garden_babble-buds_index.md\":\"DHYFB3uo\",\"garden_my-projects_index.md\":\"DcibZ0jU\",\"garden_ivy-road_index.md\":\"Bo0rj56a\",\"garden_vitepress_index.md\":\"BFZ_VdS3\",\"garden_dice-armor_index.md\":\"DF7VFbui\",\"garden_guide-to-incrementals_defining-the-genre_index.md\":\"KHo4YLaV\",\"garden_chronological_index.md\":\"C4i2P9BR\",\"garden_atproto_index.md\":\"Bf4CcRl9\",\"guide-to-incrementals_ludology_definition_index.md\":\"jfYqtxyx\",\"garden_logseq_index.md\":\"CPRdRSM5\",\"garden_life-is-strange_index.md\":\"BhIQG6tl\",\"garden_premium-currency_index.md\":\"DkiPaMt_\",\"garden_opti-speech_index.md\":\"jHvJF1fg\",\"garden_freeform_index.md\":\"pInKdBMW\",\"garden_social-media_index.md\":\"C-EtjrwC\",\"garden_nostr_index.md\":\"BzYZ3tFO\",\"garden_capture-the-citadel_index.md\":\"5ZP53JnJ\",\"garden_guide-to-incrementals_appeal-to-players_index.md\":\"DdJBqVOM\",\"about_index.md\":\"DjSStWqg\",\"garden_kronos_index.md\":\"r66f1AZV\",\"garden_fedi-v2_index.md\":\"CbH0Icbw\",\"garden_webrings_index.md\":\"Dvj4THMC\",\"changelog_index.md\":\"Jut0LxqM\",\"garden_mtx_index.md\":\"miGiVj1t\",\"guide-to-incrementals_design_criticism_index.md\":\"KqwK59ZN\",\"garden_davey-wreden_index.md\":\"CgXPBk_2\",\"garden_pre-order-bonuses_index.md\":\"BOT1cWUG\",\"index.md\":\"3muxv5ry\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"B9R3rct9\",\"public_gamedevtree_docs_buyables.md\":\"VV-nsBv-\",\"public_gamedevtree_docs_achievements.md\":\"Dws6AERf\",\"public_gamedevtree_docs_challenges.md\":\"DVS5W4rR\",\"public_gamedevtree_docs_clickables.md\":\"Dm3kZIsz\",\"public_gamedevtree_docs_bars.md\":\"CH1CktIT\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"Cb49LWxc\",\"public_gamedevtree_docs_milestones.md\":\"D0RVnIvR\",\"public_gamedevtree_docs_getting-started.md\":\"CKgytkrs\",\"public_gamedevtree_docs_layer-features.md\":\"BPBdbh-z\",\"public_gamedevtree_docs_infoboxes.md\":\"DnPfTXHt\",\"public_gamedevtree_docs_main-mod-info.md\":\"bkhR0WSc\",\"public_gamedevtree_docs_updating-tmt.md\":\"BeVNV-Mx\",\"public_kronos_readme.md\":\"DYr6QcoT\",\"public_gamedevtree_docs_upgrades.md\":\"D8Eo_Cnp\",\"public_kronos_old things_2.0-format-changes.md\":\"BtPYjwI8\",\"public_kronos_docs_achievements.md\":\"DrCW15Xk\",\"public_kronos_docs_bars.md\":\"BvYvqoBs\",\"public_kronos_docs_basic-layer-breakdown.md\":\"DGppoFrI\",\"public_kronos_docs_buyables.md\":\"yYFkZBbk\",\"public_kronos_docs_!general-info.md\":\"5rkaQMOp\",\"public_kronos_docs_challenges.md\":\"DWFXxR37\",\"public_kronos_docs_clickables.md\":\"D4xqtHCs\",\"public_kronos_docs_custom-tab-layouts.md\":\"jdv_HNa6\",\"public_kronos_docs_getting-started.md\":\"D_Kei6xe\",\"public_kronos_docs_grids.md\":\"dVNUAZqL\",\"public_lit_docs_milestones.md\":\"BuFl4guY\",\"guide-to-incrementals_ludology_appeal-developers_index.md\":\"DhNXF4Tk\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"CILgz0_s\",\"public_lit_docs_basic-layer-breakdown.md\":\"B9dO-Py7\",\"public_lit_docs_infoboxes.md\":\"D-I-8bE6\",\"public_lit_docs_bars.md\":\"DUUCdWTB\",\"public_lit_docs_upgrades.md\":\"D5WUVAIu\",\"public_kronos_docs_particles.md\":\"Bl9JEYco\",\"public_kronos_docs_subtabs-and-microtabs.md\":\"xn1GwguC\",\"public_kronos_changelog.md\":\"Dvl4pkUG\",\"public_kronos_docs_updating-tmt.md\":\"D7j5-Gml\",\"public_kronos_docs_upgrades.md\":\"BJh7DmUt\",\"public_lit_docs_clickables.md\":\"DOdKRGUh\",\"public_lit_readme.md\":\"D7v9HqFL\",\"public_kronos_docs_infoboxes.md\":\"C8vJg96j\",\"public_kronos_docs_trees-and-tree-customization.md\":\"BVCDgYnD\",\"public_lit_old things_2.0-format-changes.md\":\"D2j9ILHH\",\"public_lit_docs_!general-info.md\":\"D9elUAAf\",\"public_lit_docs_achievements.md\":\"6W7i-5zk\",\"public_kronos_docs_milestones.md\":\"EJNENSVA\",\"public_lit_changelog.md\":\"vHJaqGAk\",\"public_lit_docs_challenges.md\":\"CXR-LYbd\",\"public_kronos_docs_layer-features.md\":\"z0yuKiFe\",\"public_lit_docs_updating-tmt.md\":\"5Wwn7JmT\",\"public_lit_docs_custom-tab-layouts.md\":\"CKAQik3E\",\"public_lit_docs_trees-and-tree-customization.md\":\"xH_hxECk\",\"public_lit_docs_subtabs-and-microtabs.md\":\"C4r4aVZy\",\"garden_open-source_index.md\":\"DFaw4jk6\",\"public_lit_docs_layer-features.md\":\"BDedzAxr\",\"public_kronos_docs_main-mod-info.md\":\"BiS8GkQO\",\"public_lit_docs_main-mod-info.md\":\"DINWj5SN\",\"public_lit_docs_getting-started.md\":\"D0wSP6E1\",\"public_lit_docs_buyables.md\":\"B_QAHdTD\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"The Paper Pilot\",\"description\":\"The Paper Pilot's Digital Garden\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":false,\"themeConfig\":{\"search\":{\"provider\":\"local\",\"options\":{}},\"outline\":\"deep\",\"nav\":[{\"text\":\"Profectus\",\"link\":\"https://moddingtree.com\"},{\"text\":\"Incremental Social\",\"link\":\"https://incremental.social\"}],\"socialLinks\":[{\"icon\":{\"svg\":\"<svg role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Forgejo</title><path d=\\\"M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z\\\"/></svg>\"},\"link\":\"https://code.incremental.social/thepaperpilot\"},{\"icon\":{\"svg\":\"<svg role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Matrix</title><path d=\\\"M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z\\\"/></svg>\"},\"link\":\"https://matrix.to/#/@thepaperpilot:incremental.social\"},{\"icon\":{\"svg\":\"<svg role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><title>Fediverse</title><path d=\\\"M4.589 7.91a2.295 2.295 0 01-2.416 2.166A2.295 2.295 0 01.005 7.66a2.295 2.295 0 012.418-2.167A2.295 2.295 0 014.589 7.91zm1.876 11.995a2.295 2.295 0 01-2.417 2.167 2.295 2.295 0 01-2.166-2.417 2.295 2.295 0 012.416-2.166 2.295 2.295 0 012.167 2.416zm11.993 1.925a2.295 2.295 0 01-2.416 2.167 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.417-2.167 2.295 2.295 0 012.167 2.418zm5.537-10.807a2.295 2.295 0 01-2.417 2.168 2.295 2.295 0 01-2.168-2.418 2.295 2.295 0 012.418-2.165 2.295 2.295 0 012.167 2.415zm-8.57-8.603a2.295 2.295 0 01-2.419 2.168A2.295 2.295 0 0110.84 2.17 2.295 2.295 0 0113.256.003a2.295 2.295 0 012.168 2.418zM4.79 7.407a2.525 2.525 0 01.028.516 2.525 2.525 0 01-.263.99l3.716.595.731-1.425zm6.368 1.022l-.73 1.425 8.777 1.41a2.525 2.525 0 01-.025-.502 2.525 2.525 0 01.27-1.002zm3.118-3.887a2.525 2.525 0 01-1.283.274 2.525 2.525 0 01-.22-.023l.58 3.712 1.58.254zm-.588 6.12l1.37 8.775a2.525 2.525 0 011.245-.254 2.525 2.525 0 01.264.03l-1.296-8.297zm-3.046-7.96L4.098 6.02a2.525 2.525 0 01.688 1.36l6.545-3.317a2.525 2.525 0 01-.688-1.358zm4.725.76a2.525 2.525 0 01-1.08 1.074l5.177 5.197a2.525 2.525 0 011.08-1.075zm4.56 9.23l-3.343 6.524a2.525 2.525 0 011.355.695l3.344-6.525a2.525 2.525 0 01-1.357-.695zm-13.26 6.716a2.525 2.525 0 01.025.51 2.525 2.525 0 01-.266.995l7.243 1.163a2.525 2.525 0 01-.027-.508 2.525 2.525 0 01.267-.997zm-3.245-9.366a2.525 2.525 0 01-1.26.264 2.525 2.525 0 01-.245-.026l1.132 7.244a2.525 2.525 0 011.262-.264 2.525 2.525 0 01.243.025zm7.935-5.954l-3.83 7.474 1.13 1.135 4.055-7.914a2.525 2.525 0 01-1.355-.695zm-4.826 9.418l-1.94 3.786a2.525 2.525 0 011.356.696l1.715-3.348zm12.682-2.2l-3.355 1.7.247 1.583 3.797-1.925a2.525 2.525 0 01-.689-1.36zm-5.305 2.687l-7.935 4.02a2.525 2.525 0 01.69 1.36l7.494-3.797zM4.534 8.95a2.525 2.525 0 01-1.08 1.075l5.93 5.95 1.43-.724zm7.821 7.85l-1.43.724 3.004 3.014a2.525 2.525 0 011.08-1.075z\\\"/></svg>\"},\"link\":\"https://incremental.social/u/thepaperpilot\"}],\"sidebar\":[{\"text\":\"Recommended Pages\",\"items\":[{\"text\":\"The Small Web\",\"link\":\"/garden/the-small-web\"},{\"text\":\"Guide to Incrementals\",\"link\":\"/garden/guide-to-incrementals\"},{\"text\":\"My Projects\",\"link\":\"/garden/my-projects\"},{\"text\":\"Fedi v2\",\"link\":\"/garden/fedi-v2\"}]},{\"text\":\"About Me\",\"link\":\"/about\"},{\"text\":\"/now\",\"link\":\"/now\"},{\"text\":\"Site Changelog\",\"link\":\"/changelog\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true,\"contentProps\":{\"class\":{\"h-entry\":true}}}");</script>
</body>
</html>