Written by (owns too many domains)


Preface

I first mentioned bitchsky.app last month when getting annoyed about how a couple prominent AT Protocol apps heavily relied on app.bsky lexicons instead of using their own, and how Bluesky isn't that great for sharing media recommendations (to also find later).

xan surnamehere's avatar
xan surnamehere
@xan.lol

it's called bitchsky.app

I almost immediately purchased the domain alongside bitchsky.social, thinking the former would make for a great client and that the latter would be perfect for the Personal Data Server that I had wanted to start (in place of puter.group, which I felt didn't fit).

xan surnamehere's avatar
xan surnamehere
@xan.lol

can u just do that

xan surnamehere's avatar
xan surnamehere
@xan.lol
gonna make a social-app fork that calls them skeets

A month passed of me using Bluesky every day on Kittibyte's fork of the official web/Android app, where I got to use features like hiding Like counts and clicking usernames to bring me to linked domains!

I didn't really like the domain that it used though, as it seemed really long. I had some other minor nitpicks, like the custom Kitty settings screen with some errors (mostly from the original upstream soft-fork, deer.social), and not having all the features of some other forks, but it had a nice logo and colors :3

Don't get it twisted, I absolutely loved using Kitty! But I wanted to add my own preferred features and make it a bit more professional while still being fun. So I forked it!

Actually, I only did that after Daniela followed me back on 2025-11-04 and I DMed it, explaining how I had wanted to put a social-app fork on bitchsky.app.

It told me that I could just fork its fork and host the site on Cloudflare Pages for free. I was amazed to learn that Bluesky's website was basically just a static site, and that I could host my own version without having to put it on any of my own servers!

I just inputted the relevant build configuration options and then added the environment variable NODE_VERSION, setting it to 20.19.4.

Daniela 🐱's avatar
Daniela 🐱
@daniela.lol

this is all i did

Build command: ./pages_build.sh
Build output: web-build
Root directory:
Build comments: Enabled

Then I was suddenly hosting Kitty on my own domain! It was still the exact same though, so I spent a few days finding the relevant strings, icons, and colors to change it into my own.

Current state

Bitchsky.app now has red/brown (kinda orange ig?) theming and a witch hat for its logo! The default dark mode (Dim) has poor contrast links and the background feels a little too gray, but those should be fixed in a future update.

All instances of posts have been replaced with skeets in the UI for English language users. (Sorry bri**sh ppl. Or really anyone else? Translations are sadly not top priority nor easy to maintain in this soft-fork, so it's made with primarily English users in mind.)

The fork also has updated repost icons, options to visit original links of bridged posts, a toggle to show every avatar as a square, and supports stream.place embeds.

In preparation for official releases on mobile app stores, the name should probably be changed from Bitchsky to something that the Apple App Store and Google Play Store would allow. So....

Future plans

Bitchsky will be renamed to Witchsky!!! I already got the domains and have moved the git hosting to a repository on tangled.org. (Give it a star! And if you know how to code, maybe see if you can implement a feature request in the issues 🐈)

Builds of the app will be pushed to both major app stores and hopefully third-party app stores, like a Jollywhoppers F-Droid App Repository, F-Droid's official repo, IzzyOnDroid, &/or Accrescent.

When witchsky.app and witchsky.social are both fully operational, bitchsky.app will redirect links to the former, and bitchsky.social will be available as a subdomain for handles on the Witchsky PDS. Stay tuned for that!

  • Animated profile pictures

  • Display join date, PDS host, and other metrics on profiles

  • Additional labelers added for users signing up through the client, like meowderation, kickflip, khronos, pronouns, and skywatch

  • Toggle to switch to more compact account switcher (available in older Bluesky versions) on the sign-in page (from new)

  • OAuth login + Own PDS as the default (for email addresses/fallback input) automatic detection otherwise (fastest for own)

  • PR at-wormhole-webextension to add Witchsky and other Bluesky frontend forks and clients (settings have ability to set default app, which would show up in the column with a tiny dropdown button to the side to show all the others).