From 7b9c16ad4682adbade0029eb7425efc4ef98509c Mon Sep 17 00:00:00 2001 From: Ayo Date: Tue, 18 Nov 2025 09:38:19 +0100 Subject: [PATCH] feat: publish /tech-bsky-fedi --- src/pages/showcase.astro | 5 + src/pages/showcase/tech-bsky-fedi.astro | 218 ++++++++++++++++++++++++ 2 files changed, 223 insertions(+) create mode 100644 src/pages/showcase/tech-bsky-fedi.astro diff --git a/src/pages/showcase.astro b/src/pages/showcase.astro index 8a30064..da55161 100644 --- a/src/pages/showcase.astro +++ b/src/pages/showcase.astro @@ -28,6 +28,11 @@ import Card from '../components/Card.astro' title="McFly" body="A meta-framework for building web experiences" /> + { + return content + .split('\n') + .slice(1) + .map((str) => str.split(',')[0]) +} + +const accounts = csvToArray(importedCode) + +let accountObjects = accounts + .map((account) => { + const bskyHandle = account?.replace('@bsky.brid.gy', '') + const url = `https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile/?actor=${bskyHandle}` + + return account + ? { + bskyHandle, + fediHandle: account, + url, + } + : null + }) + .filter((acct) => !!acct) + +const urls = accountObjects.map((account) => account.url) +const promises = urls.map((url) => fetch(url)) +const responses = await Promise.all(promises) +let data = await Promise.all(responses.map((response) => response.json())) + +// filter accounts with error (e.g., AccountDisabled) +accountObjects = accountObjects.filter((acct, index) => { + const hasNoError = !data[index].error + if (!hasNoError) + console.log(`>>> ${acct.bskyHandle} has error: ${data[index].error}`) + return hasNoError +}) +data = data.filter((datum) => !datum.error) + +const title = 'Tech Bsky ↔ Fedi' +const description = + 'Celebrating bsky folks who bridged their accounts to the fediverse!' +--- + + +
+

{title}

+ +

{description}

+ +

+ A lot of tech accounts are now active in Bsky. Some of them opted to be + bridged to the Fediverse via fed.brid.gy + -- so we can also follow them from any ActivityPub powered social platforms. +

+ +

+ On this page, I upload my handpicked tech Bsky accounts that are currently + bridged to the Fedi. Feel free to send me a mail to request adding accounts I missed. +

+ +

+ If you are on bsky and want to be bridged too, please follow @ap.brid.gy. +

+ +

+ If you are on fedi and want to follow the accounts here, scroll to the bottom of the page for a handy `.csv` file you can upload to your chosen fedi platform. +

+ +

+ Note that for the bsky accounts to see your replies and likes from fedi, + you have to bridge your account as well by following @bsky.brid.gy@bsky.brid.gy +

+ +

Accounts ({accountObjects.length})

+ +

Ordered in terms of my time of discovery.

+ +
+ + + + + + + { + accountObjects.map((account, index) => ( + + + + + + )) + } +
 FediBsky
+ {`${account.bskyHandle}'s + + + + {account.fediHandle} + + + + + + {account.bskyHandle} + + +
+
+ +

How how how?

+ +

+ Download the .csv file + or copy the content below and save in a file. Then, upload + to your fedi account provider. +

+ +

If you're on Mastodon, this functionality is found in:

+

+ PreferencesImport and export → + Import +

+ +

Full .csv content

+
+ + + +
+
+
+ +