⚠️ You probably shouldn't do this.
So.. you're probably wondering how we got here.
In case you're unaware, a PDS is a "Personal Data Server" for ATProtocol. You can learn more about what a PDS is and how to host one on atproto.com. A PDS is practically just an Express webserver responsible for storing an account's data into an SQLite database. The PDS also communicates with the AppViews of ATProto applications to make actions with said applications.
Running a PDS on iCloud is, pretty silly. But... I did it.
I'm simply just running the default compose.yaml Docker Compose file from the official bluesky-social/pds repository, just a bit modified. I'm using OrbStack for running Docker on my Mac.
The main trick here is binding iCloud Drive to Docker. You can see this under volumes:.
Your iCloud Drive is located at /Users/matt/Library/Mobile Documents/com~apple~CloudDocs on your Mac. As you can see, I didn't use that directory in my compose.yaml. Instead, I used a symlink. I'm unsure if this is really needed, but when I tried using the real directory, it just wasn't working.
ln -s "/Users/matt/Library/Mobile Documents/com~apple~CloudDocs/pds" ~/Desktop/pds_shortcut
I simply created a folder on my iCloud Drive called pds, in there I created a pds.env and then blobs and data folders.
For directing traffic to my Mac, I used Tailscale and Caddy. I had my Mac and my Hetzner VPS on the same Tailscale Tailnet, then used Caddy to just reverse proxy from my Hetzner VPS to my Mac through Tailscale's Tailnet. Then I just ran docker compose up on my Mac within the directory where compose.yaml was located, and it was up!
The following is the exact files I used for the whole setup. Please let me know if I missed anything!
Caddyfile{
email [email protected]
on_demand_tls {
ask http://matts-mac-mini:xxxx/tls-check
}
}
*.icloud.mmatt.net, icloud.mmatt.net {
tls {
on_demand
}
reverse_proxy matts-mac-mini:xxxx
}
compose.yamlversion: "3.9"
services:
pds:
container_name: pds
image: ghcr.io/bluesky-social/pds:0.4
network_mode: host
restart: unless-stopped
volumes:
- type: bind
source: /Users/matt/Desktop/pds_shortcut
target: /pds
env_file:
- "/Users/matt/Desktop/pds_shortcut/pds.env"
pds.env# See more env options in src/config/env.ts
# Hostname - the public domain that you intend to deploy your service at
PDS_HOSTNAME="icloud.mmatt.net"
PDS_PORT="xxxx"
# Database config - use one or the other
PDS_DATA_DIRECTORY="/pds/data"
# Blobstore - filesystem location to store uploaded blobs
PDS_BLOBSTORE_DISK_LOCATION="/pds/blobs"
# Private keys - these are each expected to be 64 char hex strings (256 bit)
PDS_REPO_SIGNING_KEY_K256_PRIVATE_KEY_HEX="xxx"
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX="xxx"
# Secrets - update to secure high-entropy strings
PDS_DPOP_SECRET="xxx"
PDS_JWT_SECRET="xxx"
PDS_ADMIN_PASSWORD="xxx"
# Environment - example is for live network
PDS_DID_PLC_URL="https://plc.directory"
PDS_BSKY_APP_VIEW_URL="https://api.bsky.app"
PDS_BSKY_APP_VIEW_DID="did:web:api.bsky.app"
PDS_CRAWLERS="https://bsky.network"
# OAuth Provider
PDS_OAUTH_PROVIDER_NAME="on da icloud"
PDS_OAUTH_PROVIDER_LOGO=
PDS_OAUTH_PROVIDER_PRIMARY_COLOR="#7507e3"
PDS_OAUTH_PROVIDER_ERROR_COLOR=
PDS_OAUTH_PROVIDER_HOME_LINK=
PDS_OAUTH_PROVIDER_TOS_LINK=
PDS_OAUTH_PROVIDER_POLICY_LINK=
PDS_OAUTH_PROVIDER_SUPPORT_LINK=
# Debugging
NODE_TLS_REJECT_UNAUTHORIZED=1
LOG_ENABLED=true
LOG_LEVEL=debug
PDS_INVITE_REQUIRED=0
PDS_DISABLE_SSRF_PROTECTION=0
]]>
This is what the Nintendo Switch 2's Home Menu UI looks like. It's lame as hell. Blank grey background with rounded tiles in the middle for game icons and a plethora of circular menu buttons on a bar below the tiles. It's all in this boring, monotonous, and assumingly silent menu.
To those new here, this is almost identical to how the Switch 1's UI looked. To those who had a Switch 1, welcome back! This is all too familiarly disappointing, isn't it?
It's all so bare and boring. The "Themes" menu in the System Settings just has "Basic Light" and "Basic Dark". After 8 YEARS of speculation, more themes were never available for purchase, like how the 3DS had.
After 8 years of this system theme, hopes were really high for the next system in Nintendo's lineup to go back to the old infinitely replayable menu music of the Wii era, or the lively social landscape of Wara Wara Plaza from the Wii U (that even had its own jingle for when it was your birthday!), or the ever infectious startup sounds for the GameCube, or the iconic jingles and tunes in the Wii's Mii Channel. All of these made opening the console on Day 1 so exciting and fun. I remember opening the Wii U on my birthday, booting it up, setting it up, and then getting into Wara Wara Plaza with that birthday jingle mentioned before, it was so magical and it's something I still think about to this day.
All of this was thrown away in the Switch's UI design! There's no music! There isn't any music when you open the main menu, unlike the amazing ambient soundtracks of the Wii or Wii U era. The ever-evolving eShop themes from the 3DS and Wii U, nor anything like the iconic Wii Shop Channel are present in the Switch's eShop app. Instead, you are met with a (very slow on the Switch 1) baren webapp. Giant sidebar, slowly transitioning into your main content view. Just an unpleasant experience, especially compared to Nintendo's previous home consoles.
Part of the Wii's charm was its system UI. The iconic TV channel layout was easy to understand to ANYONE, gamer or not. The included channels (Mii Channel, Photo Channel, Wii Shop Channel, Weather Channel, and News Channel) were all fun to use! The Mii Channel was infectiously fun and filled with creativity, you can make yourself, your family, celebrities, anybody!! It's always a fun time gathering around the TV and creating a new Mii. You could manipulate and draw on images from your SD card in the Photo Channel, look at your local weather forecast in the Weather Channel, look at local and worldwide news in the News Channel, and shop WiiWare and the Virtual Console in the Wii Shop Channel. All of these channels had incredible soundtracks, and were fun to play around with! These were included with the console, just on the system UI. The Wii's system software is notable enough to even have its own Wikipedia Article.
All of this has ultimately gone to dust in the Nintendo Switch era. You make Mii's in the System Settings. YOU MAKE MII'S IN THE SYSTEM SETTINGS... The system is practically on mute until you start up a game. It's so sad! I really thought that with the Switch 2 Nintendo was gonna do something more. I think all the UI concepts I kept seeing on Reddit and places alike had me too hopeful. It's sooo boring and sad! The death of the Mii's as branding is just sad to see, like we've seen some glimpses of them using Mii's again (Virtual Game Cards promo video and Tomodachi Life: Living the Dream) but not the abundance of Mii's found in the Wii and Nintendo DS era. Which, okay, makes sense, and yes, I'm incredibly blinded by nostalgia here, but still, I think that use of branding was so fun and flavorful.
All this to say, I really miss how creative Nintendo was with their UI design. These flat muted colors with nothing to have fun with out of the box is so soul-sucking. "So excited to open my new console! What's there to do? Okay... system settings... eShop......... aaand playing the 1 game I could afford. This is kinda sad." I fear this is how I'm gonna think when opening my new $450 console. Oh well, at least Mario Kart will be fun.
]]>⚠️ This is an ongoing blog post. The date listed above is the "last edit" date. This post started being written on April 3rd, 2025. 🚧
Hello, this is going to act as my single link for when someone brings up something that isn't true about the Nintendo Switch 2 launch. This post is going to sound soooooo fanboy-y, so to balance that out you could read my other post criticizing the Switch 2's software pricing.
You've probably seen this screenshot floating around the interwebs, and you're probably (rightfully so if you've been misled) pissed. Thankfully, I am here to correct your worries, and tell you the gospel about the Game-Key Card.
Game-Key cards are NOT replacing the standard Nintendo Switch 2 Game Cart.
(let me repeat that again, it's quite important.)
Game-Key Cards are replacing yester-generation's "Physical Digital Only Games".
Game-Key Cards are actually a good thing for consumers. Instead of having a one-time use download code in these releases, you get a physical key that can be used to unlock that content. This is GREAT for reselling! It's now, for the first time ever on a console, possible to resell a digital release. These are a giagantic step forward from the old release types.
However, these releases are still... very silly. These releases will happen on Nintendo Switch 2 from third party developers cheaping out on game carts, and just going through the eShop instead. Also, when the eShop eventually goes offline, these releases are useless. But again, these aren't replacing the standard game carts, so this problem, of the eShop going offline, would've still been a problem with the old system.
According to this post by Emma (@invoxiplaygames.uk), some of last generation's game cards would only have part of the game and would require you via an online update to download the rest. Also, the Wii Shop is still hosting downloads for games and updates even since the shop was closed in 2019.
See the "Digital Only Physical Games" episode of Scott The Woz
None of Nintendo's first party titles (so far from the Launch) are going to be on these Game-Key Cards. Nintendo first party titles are on standard carts with actual game data on them.
Here's a visual:
A classic Americanism of not understanding other currencies. This was a screenshot from Spain's My Nintendo Store, that shows Mario Kart World priced at 80 Euros for a Digital Copy, and 90 Euros for a Physical release. This has not been confirmed at all for the US as being $90 USD for a physical release.
Best Buy and Target have listings up for physical copies of Mario Kart World listed at $79.99. NOT $90.
⚠️ Conflicting reports, and unreliable (no shade, its just a single tweet) source.
So I saw this tweet and honestly, it made sense to me that it would just be a download code for the upgrade packs. Also, it was "confirmed" by a Nintendo UK Support Rep. Appearently, this isn't the full story.
According to thie email from the My Nintendo Store recieved by Nintendo Prime, the one cartridge you get with the Nintendo Switch 2 Edition physical games (what a mouthfull) is the upgraded version, not the Switch 1 cart.
]]>⚠️ This post was originally posted at 4/3/2025, 4:07:16 PM.
⚠️ As of 4/4/2025, Nintendo has delayed US preorders due to Trump-Tariffs. At this time, it is unclear if the Switch 2's console price has changed from $450. I will keep this section of the post up to date with the latest info on this.
⚠️ As of 4/18/2025, Nintendo Switch 2 will remain $450, Mario Kart World will remain $80, Donkey Kong Bananza will remain $70. Accessories have changed price. All details are in the article linked. With that being said, this post is still relevant as the information I knew then and the information we have now are the same.
⚠️ The originally published post follows below.
Don't buy the Nintendo Switch 2 at launch. There is practically only one first-party launch title, Mario Kart World, and that will be infinitely replayable for years to come, you don't need to play it upon launch. Wait for Holiday, at least.
The only reason I am personally pre-ordering is beacuse I have been waiting for this system for a long time now, and I have never been able to do a Day 1 console launch. I'm in a silly point in my life where I don't have any bills, I have a part time job ($13.10/hour and I work around 4 days a week right now), and I'm going to school for a higher paying job (hopefully) upon graduation. While I should be a smart person and start putting more and more money into savings, I would prefer having fun with the money I earn. I can't wait to go to a midnight launch for a new system, it sounds like so much fun. I watched CND's Switch 1 Launch Vlogs as they were airing, and I've always wanted to do it sense watching those (8+ years ago!!). Again, this is an incredibly stupid decision & I wouldn't recommend anyone doing the same (it's also a very privilleged position too). So, again, do not buy the Nintendo Switch 2 at launch.
The system should fail upon launch. The system's price is, fine. The system's software price is, delusional. I knew we were moving to $70 MSRP for AAA first party games with the release of Tears of the Kingdom for Switch 1, but $80 is pushing it entirely too far. I really hope the consumer market reacts to this push to $80 too, I hope software with this price tag undersell like crazy. I want to see Nintendo backtrack on this so bad, in reality I don't think they will but I would love to see it happen. People keep bringing up the 3DS's poor sales performance at launch and how Nintendo backtracked on that, but that wasn't because of just price. The 3DS had a terrible launch lineup with practically no releases after it, which lead to poor sales and the price cut. The Switch 2 has a brand new Mario Kart game, it's going to sell just fine.
NOBODY SHOULD BUY Nintendo Switch 2: Welcome Tour. No matter the cost, nobody should buy it. End of story, don't pay for a tech demo. It's not even a video game, it's a tech demo, it calls itself a tech demo, don't pay for tech demos.
Mario Kart World is the flagship game for the Switch 2, it's what's going to be the Switch 2's system seller for years to come. At launch, there will be a Nintendo Switch 2 console bundled with the game for $500 USD, with the game valued at $50 in this bundle. This is a no-brainer, obviously everyone should go for this bundle at launch. However, this bundle isn't a guarenteed offer. As seen on the How To Buy Nintendo Switch 2 page on Nintendo's website, "[the Mario Kart World bundle is a] Limited-time production through Fall 2025 (available while supplies last)." Right now, we don't know the confirmed Digital price for the title, except for a Geoff Keighley tweet which I'm taking with a grain of salt. Basically, nobody should be buying this for $80 at launch, just go for the system bundle.
$70 for Donkey Kong Bananza is fine. It'll only be not fine if the game is incredibly short, from the trailer we got at the Direct it seems like it'll be a large enough game to justify the price point.
$80 for some ports??? Actually wild. I understand exactly what they're doing, with Super Mario Party Jamboree for example, they're charging $60 for the base game and adding the "Upgrade Pack" pricing on top of that ($20). But this just feels incredibly scummy to me, I wouldn't even pay $20 on the Switch 1 for the added content in that game, let alone paying $10-$20 for some graphical improvements. Kirby and the Forgotten Land is in the exact same boat. I have a feeling they are justifying these $20 upgrade packs because of these added side story modes that nobody is really fiending for. If there was an option to just pay $10 for only graphical upgrades, I would do that with these two games. I suppose I'll get Super Mario Party Jamboree one day, it seems really fun, but I don't think I'll pay for the upgrade and just play it under the backwards compatibility mode.
Both Breath of the Wild & Tears of the Kingdom's upgrade packs are going to be included with an active Nintendo Switch Online + Expansion Pack membership. This is good, but kinda just wish they were free upgrades in the first place. All the BOTW & TOTK upgrade packs do is improve performance and resolution. I paid for the system to have improved performance and resolution, now I have to double dip on upgrading the software too?
The PlayStation 5 does something similar. I bought Gran Turismo 7 for my PlayStation 4 for $20 (on sale) and that game retails (for the PS4) at $40. The PS5 version retails at $70. This game is cross-gen, and released on PS4 & PS5 simultaniously. I paid $10 to upgrade my PS4 copy to the PS5 version. I was plenty happy to do this upgrade, it felt very cost efficient. Nintendo's way of doing these upgrades don't feel that way at all. They shouldn't force us to pay up for a mandatory $20 DLC to upgrade the software's version to the newest console. Ports should max out at $70 to an upgraded system. These Switch 2 Edition games aren't cross-gen games, these are ports with tacked on DLC. They already ported half of the Wii U's library to Switch, and charged $60 for all of those games, are they about to release upgrade packs for those too?
Anyways, this was kinda a ramble but I just wanted to put all of my thoughts on the Switch 2's pricing in one place, and to start using my Blog more.
]]>
With the recent news of Elon Musk's acquisition of Twitter (-$44 billion) many are thinking of moving away from said platform as Musk isn't someone without controversy. From emerald farms to just weird transphobia(?) and just straight up being a mega-capitalistic rich white man with too much power, of course many people (including yours truly) aren't fond of him.
With this acquisition, people are looking to move away from Twitter. Not just because of "rocket man bad" (a phrase coined by many Elon Musk super-fans), but because of his recent talks of changing the platform itself. An important one many are talking about (and is about to be in effect this Monday according to many) are Musk's changes to verification on the platform.
Verification on Twitter has always been a strange topic. With lots of verified accounts being hacked/stolen to scam people, and some people getting denied and denied over and over again when they are actually in need of the special blue checkmark due to impersonation in the platform. This special blue tick has also been a status symbol on the platform for a long time, so some may feel like others are better (or something, idk anyone who has felt this way) just because they had a blue checkmark on their profile. So Elon's solution? Just pay for it!
So of course Elon "SpaceX, Reddit User, Emerald Miner, Richest Man In The World, Bought Twitter Instead Of Saving World Hunger" Musk's solution to Twitter's problem with supposed "verification elitism" is to let every have a check, for just $8/month! Now of course the real motive behind this is monetization and profit, as Musk has admittedly stated (not necessarily this tweet alone, but it's the first one that came to mind), however there are consequences behind just simply pay-walling the "special" blue checkmark.
As stated by many, scams and impersonation (that runs rampant on the platform) will grow exponentially. Elon's supposed solution is to add previously verified users a "Public Figure" tag like politicians currently have.
This, of course, doesn't solve the issue at all, but puts bandage over the newly created problem, that didn't need to be created in the first place.
Like most news outlets across the world are saying (BBC, CNN Business, USA Today, Forbes), the current move is to go to Mastodon, a decentralized social media platform built on the ActivityPub standard. Now this is great for people that know what those words mean, but saying this to a normal person would confuse them and then cause them not to care and to stay on Twitter.
You should think this is really cool and awesome because it basically means that YOU can own your social media profile. Mastodon is basically just a bunch of different servers talking to each other, kinda like modern email. Email is a bunch of different servers just sending messages to each other. So my Mastodon account is @[email protected], however someone can still reply and talk to me on another server like mastodon.social, and I can talk to them too. This is what makes Mastodon special and what can make it YOURS. This means you can also sign up to servers with specific niche's like art, or technology. Or yourself could setup an instance for a community your are in, or your friends and family. This doesn't mean its just your group of people on your server you can talk to, you can still follow and talk to people all across the "feDiVeRsE" (I don't like that name I'm sorry).
Yes! Because all of Mastodon's servers are built on the "ActivityPub" standard (or at least this is how I think about it), you can move across different servers and keep all your posts, followers, and following!
I get that, finding things like servers and all of this terminology is very confusing at first, however I think looking at Mastodon in a similar vain as email has helped me understand it a lot more. With email, you create an account with whatever provider you want (Gmail, Outlook, iCloud Mail, etc.), and then you can send/receive emails to/from whatever "email provider" out there. This is the same with Mastodon, you create an account with whatever server you want (mastodon.social is a big one, and more can be found here), and you can follow/mention/reply to/from whatever Mastodon server out there.
Mastodon is way too good and "user first" for people to ignore. It's a shame that there is confusion around it because it really is great software. Mastodon really is the best place to move after the Twitter acquisition (if you are considering moving at all) because there isn't a possibility of Mastodon "getting bought out" because you can't just buy Mastodon and all of the servers, because servers are set up by individual users, so ironically Mastodon is real "power to the people" unlike Elon Musk's $8/month Verification on Twitter. This was kinda a ramble and just what I was thinking as I wrote it, but hopefully it made sense to someone, and I hope more people will be able to join Mastodon, if you do end up making an account somewhere I am @[email protected].
]]>
ITL Online 2025 is an online, asynchronous event hosted by the Internation Timing Collective! It is the biggest ITGmania event for all things tech and timing! Compiled of ~200 Community Made Charts from all sorts of packs curated by the talented ITL team, learn and perfect modern ITG Tech from lots of bangers in the pack.
Not an expert? Don't worry too much about competition, just have fun! Charts start at just ITG level 7s for both Singles and Doubles play. Have a fun time collecting Points from completing and perfecting your timing on these charts! It's a super fun event to learn dance gaming.
Old-timer getting back into Dance Games? ITL Online is the best time to come back into the game. With a pletheora of entry level to higher level charts, introducing you to all types of modern 4-Panel tech play. Compete with yourself to see if you can get those Quads! ⭐
Expert Dance Gamer? You probably already know about ITL, hell you are probably on the first page of the Leaderboard, pls don't steal my points <_<!!
Why should you play ITL? It's fun!!! Even if you aren't into competition, getting together with the community to play all these charts together is such a fun experience. I can't just tell you "Its Fun Please Play", so you'll just have to trust me and at least try it out.
⚠️ Play at a public cab? Don't have a GrooveStats account yet? Both of these are covered in a previous blog post of mine.
ITL is all about having fun, so don't forget it!
ITL Online 2025 started on March 14th, 2025 and will end on June 15th, 2025 at 2:59 AM PDT. You'll still be able to play the charts of course, and you'll be able to collect points in the "off-season", but eventually score submissions to ITL will close out.
Thanks to everyone involved in ITL, and thanks to everyone playing. Huge inspirations to me all around. 💙
]]>Any size should work, just make sure its formatted as FAT32.
Most ITG machines run on ITGMania (my arcade specifically runs ITGmania 0.9.0 and Simply Love 5.6.0), and having it on your own computer will be useful for setting up your profile before you get to the arcade. Go ahead and launch it and then close out of it just to make sure everything initializes correctly.
My arcade's cab searches for a folder on your USB drive named StepMania 5 instead of the (new) default as ITGmania, so for setting up your profile we'll need to edit which folder ITGmania is looking for.
C:\Users\[Your Username]\AppData\Romaing\ITGmania\SavePreferences.ini in your text editor of choiceMemoryCardProfileSubdir in Preferences.ini= to be StepMania 5
You should hear a sound effect and a USB icon next to "PRESS START".
Just play any song, you can even use a rate mod to make this go faster. Unsure if this matters, but make sure to hit one note, as far as i remember that might be needed...
(Esc -> "Yes")
You should now see your newly created StepMania 5 folder, congratulations! Everything has succeeded.
Editable.ini file
Here you can put in your display name to show up in game, as well as metrics for a """more accurate""" calorie counter. (not required)
If you have some files you want to play that aren't already on your cab, you can add some here! Just put the song's folder into your /StepMania 5/Songs folder on your USB.
IMPORTANT: Make sure you delete any VIDEO files from your songs folder. This may make the song too large for the limit.
GrooveStats is an online score submission service (similar to e-amusement) that enables you to upload your scores and participate in events!
You can sign up for GrooveStats at GrooveStats.com
After signing in, you can find your GrooveStats API key under "Edit Profile". On the third line you'll find the entry for API key, if you don't have one already go ahead and click Generate, and then Copy to your clipboard.
Make a new file on your USB drive called GrooveStats.ini. In this file, use the following template:
[GrooveStats]
ApiKey=Replace_After_The_Equal_Sign_With_The_API_Key_You_Got_From_GrooveStats
IsPadPlayer=1
Your scores will now be automatically uploaded to GrooveStats! You'll be able to see a leaderboard in the evalutaion screen by hitting the Left (<) or Right (>) controls under the screen.
With events like ITL Online, you'll be able to earn Points and unlock Titles & Charts to play! Just sign into their respective website to register (for example: ITL Online 2024 is over at itl2024.groovestats.com and you can view all the current events on the left side of the GrooveStats homepage) and begin playing!
The USB hub is velcroed to P1's side of the cab. Top slot is P1, bottom slot is P2. It should look something like this:
AI TTS Donations is changing...
This announcement is containing 2 things:
First: The existing v3.x.x AI TTS Donations program is, at this point, deprecated This means that it will not receive new feature updates and such for the time being. This is simply because the script has gotten too out of control and the code base is simply too garbage and spaghetti that it's incredibly hard to keep working on it, and as all of you know, it's incredibly hard to setup for the streamer.
Second: v5 (skipping v4 because i can and v5 looks cooler)
v5 is going to be the new AI TTS Donations future. it's going to be a web app which means no more python, no more downloads, no more configuration. think of regular twitch alerts platforms (streamlabs, streamelements, etc.) nerd stuff: it'll be built using TRPC, Next.js, Prisma, Cloudflare Workers, and Pusher. That's all the info I'm giving out for now :^) AI TTS Donations will remain 100% FREE AND OPEN SOURCE with this update. (more nerd stuff: here is an early little preview of how i'm thinking data will flow in v5: https://arc.net/e/4A91AD3E-43F1-42B6-85AC-D2FB63404B47)
The first glimpse of v5 is available with this new front page! its actually quite old at this point, but im just now making it known https://aittsdonations.mmattdonk.com/
you can sign up for the mailing list at the bottom and you'll get an email when v5 is done!
DO NOT THINK V5 WILL BE DONE SOON. v5 is in the future, probably far future, but i'm just letting you all know the state of the app.
anyways go sign up for the list on https://aittsdonations.mmattdonk.com/ and hopefully the next announcement will be when this whole new thing is out :^)
i will still be providing support for v3.x.x btw
]]>So last week Spark Social announced their Open Beta and with that their separated social graph.
This choice ended up starting a bunch of discussion about how we should be using the social graph in the ATmosphere. More specifically I remember these posts from @dame.is and @iame.li. Between the two posts, I definitely lean towards dame's post. And I hope this post explains my vision behind that reasoning.
This whole debacle sparked a lot of thoughts in my mind about how we do social graphs in the social internet, and how a shared account (your ATProto repository) that you use to login to multiple services (Bluesky, Tangled, Streamplace, Leaflet, etc.) should handle your social graph. One of the benefits we bring up for ATProto's superiority is that you own your social graph, but what happens when the apps decide how your social graph is used? I know this is kinda necroposting but I wanted this out of my mind and onto paper.
Old Social: Different venues, different music.
In old social land, my social graph is separated per account each with a different login. Instagram doesn't know about my YouTube followers, TikTok doesn't know who I'm following on Instagram, etc.
Anecdotally speaking, each of these apps have very different usage for most people. Most people use Instagram for connecting with personal friends and family and sharing moments of their life, they use YouTube for entertainment, and TikTok for short form quick entertainment.
If each of these apps knew about the other's social graph, my Instagram feed gets cluttered with public figures and entertainment, and my TikTok feed gets cluttered with people I know.
To some people that doesn't matter to them, but to me each app is specifically tailored to the content I want to see. If my Instagram social graph is also my YouTube social graph, the little control I have over the content I see starts slipping more and more. Like sure I love LTT videos but I don't need to see their Instagram content too.
New Social: We're all breathing the same air in the ATmosphere.
In old social land, none of these accounts are connected in any way. @mmatt on Twitter isn't connected to @mmattbtw on Twitch which isn't connected to @mmattbtw on YouTube.
In the new social world, your identity holds everything. My Bluesky content is posted by the same identity that posts my Leaflet blogs that is posted by the same identity which chats in Streamplace streams.
When you "Follow" someone on Twitter, you're following the Twitter account, not the person. In the new social world, when you follow someone on Bluesky, technically, you are following the person with the intent of keeping up with them specifically on Bluesky.
For all intensive purposes, these two mean the same thing to the user. But when thinking about it from outside of the apps itself, the relationship made is more interesting.
This person your account is following on Bluesky might also use other apps on that identity, but your "follow" is only intended for Bluesky via the app.bsky.graph.follow lexicon. Your relationship is also visible to these other apps, whether these apps choose to look at this relationship is up to the developer.
So where should the control go? In my eyes, lexicons are intent based, and should be scoped towards the applications they are intended for. This is why lexicon.community never really stuck to me, applications and lexicons to me should be heavily opinionated with how they want their applications shaped.
ON THE OTHER HAND: BLOGS, WRITING, AND OTHER LONG WRITING MEDIUMS.
Something in my brain clicked when standard.site launched however. And I think thats because the writing medium is so standardized. Text on screen with formatting and authors, everything else is on the side. Why shouldn't my WhiteWind posts and Leaflet posts be able to be read in the same place?
Matter of fact, they can! On mmatt.net/writing, this post (on Leaflet), my WhiteWind posts, my Teal Notes post are all viewable in one location. Each of these pieces come from different contexts, so for outside posts not meant for the exact context of publishing onto my site have a little disclaimer saying "this was written over here, view the original." Of course you can still view the post in its entirety on mmatt.net, everything still works just like it would over here on Leaflet.pub.
So, when it comes to writing, I actually flip on the whole social graph take. Being able to "follow" an individual author that might post on one publication via Leaflet, or make a guest post on another publication via Offprint, I should be able to follow my author across the ATmosphere and be able to see all their writing in one place.
What if, site.standard.graph.author.follow, let me follow an individual author across all of their standard.site publications. Writing usually doesn't have the explicit context shifts of long form / short form video, or microblogging, or live streaming, etc. A lot of people consume blogs, news, and other forms of long writing through RSS readers which ultimately eliminates the context of whatever site or platform the piece was written for. And I think this works perfectly for writing.
In the same sense, what if site.standard.graph.publication.follow. Similar to an RSS feed just let me keep up with an entire publication on any reading platform. (I think this is already a thing?)
For some reason, only in this context do shared social graphs make sense to me. When you're all using a standardized lexicon and interop is the default, this just makes sense to do.
The case for "genre based" following instead of global following.
I think the example above with following an author for their writing is a great case for a genre based social graph system instead of a global social graph.
I think this post from @iame.li perfectly frames how I view this. If there are multiple streaming services, let me follow once and view that streamer on all the platforms. If there is an artist I find on plyr.fm, why not be able to keep that relationship to another music platform?
Global following on the other hand still doesn't sit right with me. I appreciate getting updates on some brands on Bluesky, but do I need their livestreams or short videos in their respective apps? Not in my mind.
I think in either situation (genre or global) user control is still key. The UX of that would take some time to plan out, and out of scope for this post (because I want this out asap lol).
AT THE END OF THE DAY, ITS JUST SOCIAL MEDIA RIGHT?
I think I derailed at the end here, but feel free to ask questions about anything in the post, would be more than happy to clarify!
thanks for reading >_>
@mmatt.net
]]>re:
I'm shown as being Live on my Bluesky profile, but I'm not live on the linked stream at all.
Matter of fact, I haven't streamed on Twitch in 4 months.
Penny isn't Vinesauce, Vinesauce is not live on Twitch.
I appreciate this feature, but when you're limiting the feature to just one streaming platform, I'd wish it was "smarter".
Why am I setting exactly how long the status shows for? I don't know how long I'm going to be live for most of the time, and why are there so many options?
I feel that avoiding using the Twitch API for seeing if a said user is live or not for this feature makes using this feature quite mechanical. When starting a livestream, I'm more focused on getting all the streaming part of it than the marketing part of it. Thus, being able to input my Twitch username once into Bluesky, and the service automatically sets my live status on the app when I go live / offline and where I'm live at.
I also wish each live status was verifiably connected to the user. A Twitch OAuth check for just getting the user's Twitch ID that you can use for setting the live status would make this feature much much much more serious. Without anything like that, users will set their live status as anybody, at all times of day, without being live at all. Which can really dumb down the feature, if I'm seeing a bunch of Live statuses and click on them with half of them not actually being live or not actually being them, I'm gonna stop clicking on them.
I understand why you didn't include Stream.place at this time, (see post), but as the native ATProtocol streaming service they implement the above exactly right. Upon going live and announcing your stream, they make the app.bsky.actor.status record for you which inherently is verifiably connected to your Bluesky account. Just add some more trusted streamers for stream.place, thanks.
thanks for reading!
]]>_> @mmatt.net