Graphical PDS migrator for AT Protocol

infoinfoinfo

Changed files
+116
routes
static
.DS_Store

This is a binary file and will not be displayed.

routes/.DS_Store

This is a binary file and will not be displayed.

+104
routes/about.tsx
··· 1 + import { Button } from "../components/Button.tsx"; 2 + 3 + export default function About() { 4 + return ( 5 + <> 6 + <div class="px-2 sm:px-4 py-4 sm:py-8 mx-auto"> 7 + <div class="max-w-screen-lg mx-auto flex flex-col items-center justify-center"> 8 + <div class="prose dark:prose-invert max-w-none w-full mb-0"> 9 + <h1 class="text-3xl font-bold text-center mb-8">About AT Protocol</h1> 10 + 11 + <div class="space-y-6"> 12 + <section> 13 + <h2 class="text-2xl font-semibold mb-4">What is AT Protocol?</h2> 14 + <p class="text-gray-600 dark:text-gray-300"> 15 + AT Protocol (Authenticated Transfer Protocol) is the 16 + foundation of Bluesky and other social apps like 17 + <a href="https://tangled.sh">Tangled</a>, 18 + <a href="https://spark.com">Spark</a>, and more. 19 + Unlike traditional social platforms that lock your 20 + data and identity to a single service, AT Protocol 21 + gives you complete control over your digital presence. 22 + Think of it as an open standard for social networking, 23 + similar to how email works across different providers. 24 + </p> 25 + </section> 26 + 27 + <section> 28 + <h2 class="text-2xl font-semibold mb-4">Key Features</h2> 29 + <ul class="list-disc pl-6 space-y-4 text-gray-600 dark:text-gray-300"> 30 + <li> 31 + <strong>PDS Servers:</strong> PDS servers are where your data is stored. 32 + They can be run by anyone, and they are very lightweight, allowing you to 33 + choose which one to use or run your own. PDS servers just store your data, 34 + meaning you don't have to switch PDS servers to use a different app or service. 35 + You can have one PDS while using many different apps and services with the 36 + same account. 37 + </li> 38 + <li> 39 + <strong>Decentralized Identity:</strong> Your account is tied to a DID 40 + (Decentralized Identifier) rather than your handle/username. 41 + This means you can move your entire account, including your followers 42 + and content, to any PDS by changing where your DID points. 43 + It's also the reason you can use any domain as your handle, because 44 + your identity is not tied to your handle. Your handle can change, 45 + but your DID will always remain the same. 46 + </li> 47 + <li> 48 + <strong>Portable Content:</strong> All your posts, likes, and other social 49 + data are stored in your Personal Data Server (PDS). 50 + You can switch PDS providers without losing any content or connections. 51 + </li> 52 + <li> 53 + <strong>Architecture:</strong> The protocol uses a three-tier architecture: 54 + Personal Data Servers (PDS) store your content, 55 + relays broadcast a stream of all events on all PDSes, 56 + and AppViews process and serve that stream into content for users. 57 + This means when you make a post, the content is stored on your PDS, 58 + picked up by relays, and AppViews listen to those relays to deliver 59 + that post to all users. 60 + </li> 61 + <li> 62 + <strong>Algorithmic Choice:</strong> You're not locked into a single algorithm 63 + for your feed. Different services can offer different ways of curating content, 64 + and you can choose which one you prefer. Bluesky offers a way to make custom 65 + feeds, but even if it didn't, different apps could still offer their own 66 + algorithms for curating content. 67 + </li> 68 + </ul> 69 + </section> 70 + 71 + <section> 72 + <h2 class="text-2xl font-semibold mb-4">Learn More</h2> 73 + <div class="space-y-4"> 74 + <p class="text-gray-600 dark:text-gray-300"> 75 + Want to dive deeper into AT Protocol? Check out these resources: 76 + </p> 77 + <ul class="list-none space-y-2"> 78 + <li> 79 + <a href="https://atproto.com" class="text-blue-500 hover:underline">Official AT Protocol Docs</a> - The main source for protocol specs and information 80 + </li> 81 + <li> 82 + <a href="https://github.com/bluesky-social/atproto" class="text-blue-500 hover:underline">GitHub Repository</a> - View the protocol implementation 83 + </li> 84 + <li> 85 + <a href="https://atproto.wiki" class="text-blue-500 hover:underline">AT Protocol Wiki</a> - Community-driven documentation and resources 86 + </li> 87 + </ul> 88 + </div> 89 + </section> 90 + </div> 91 + 92 + <div class="mt-8 text-center"> 93 + <Button 94 + href="/" 95 + color="blue" 96 + label="Back to Home" 97 + /> 98 + </div> 99 + </div> 100 + </div> 101 + </div> 102 + </> 103 + ); 104 + }
routes/api/.DS_Store

This is a binary file and will not be displayed.

+6
routes/index.tsx
··· 36 36 <p class="font-mono text-lg sm:text-xl mb-4 mt-4 sm:mb-6 text-center text-gray-600 dark:text-gray-300"> 37 37 Airport is made with love by <a class="text-blue-500 hover:underline" href="https://bsky.app/profile/knotbin.com">Roscoe</a> for <a class="text-blue-500 hover:underline" href="https://sprk.so">Spark</a>, a new short-video platform for AT Protocol. 38 38 </p> 39 + <div class="text-center mb-4"> 40 + <a href="/about" class="inline-flex items-center text-blue-500 hover:text-blue-600 transition-colors"> 41 + <img src="/icons/info_bold.svg" alt="Info" class="w-5 h-5 mr-2" /> 42 + <span class="font-mono">Learn more about AT Protocol</span> 43 + </a> 44 + </div> 39 45 <SocialLinks /> 40 46 </div> 41 47 </div>
+6
static/icons/info_bold.svg
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3 + <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 4 + <path d="M12 16V12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 5 + <path d="M12 8H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6 + </svg>