From 647d2415e8d448bbb34305bc42bd00bcb9be7ff9 Mon Sep 17 00:00:00 2001 From: xan.lol Date: Fri, 21 Nov 2025 20:26:48 +0000 Subject: [PATCH] Replace Bitchsky with Witchsky --- .gitignore | 2 +- README.md | 54 +++++++++++++++++++++++++++--------------------------- app.config.js | 28 ++++++++++++++-------------- google-services.json.example | 2 +- justfile | 2 +- package.json | 4 ++-- __e2e__/perf-test.yml | 2 +- __e2e__/setupApp.yml | 4 ++-- bitchsky-static-about/index.html | 24 ------------------------ bitchsky-static-about/normalize.css | 351 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bitchsky-static-about/privacy.html | 54 ------------------------------------------------------ bitchsky-static-about/sakura.css | 283 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bitchsky-static-about/tos.html | 65 ----------------------------------------------------------------- docs/deploy-ota.md | 8 ++++---- web/index.html | 2 +- witchsky-static-about/index.html | 24 ++++++++++++++++++++++++ witchsky-static-about/normalize.css | 351 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ witchsky-static-about/privacy.html | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ witchsky-static-about/sakura.css | 283 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ witchsky-static-about/tos.html | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/bug_report.yml | 64 ---------------------------------------------------------------- .github/ISSUE_TEMPLATE/feature_request.yml | 42 ------------------------------------------ .github/workflows/bitchsky-build.yml | 57 --------------------------------------------------------- .tangled/ISSUE_TEMPLATE/bug_report.yml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .tangled/ISSUE_TEMPLATE/feature_request.yml | 42 ++++++++++++++++++++++++++++++++++++++++++ .tangled/workflows/witchsky-build.yml | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ __e2e__/flows/composer-self-label.yml | 2 +- __e2e__/flows/composer.yml | 2 +- __e2e__/flows/create-account.yml | 2 +- __e2e__/flows/curate-lists.yml | 2 +- __e2e__/flows/feed-reorder.yml | 2 +- __e2e__/flows/home-screen.yml | 2 +- __e2e__/flows/login.yml | 2 +- __e2e__/flows/mod-lists.yml | 2 +- __e2e__/flows/onboarding-avatar-creator.yml | 2 +- __e2e__/flows/onboarding.yml | 2 +- __e2e__/flows/post-report-flow.yml | 2 +- __e2e__/flows/profile-screen-edit.yml | 2 +- __e2e__/flows/profile-screen.yml | 2 +- __e2e__/flows/search-screen.yml | 2 +- __e2e__/flows/shared-prefs.yml | 2 +- __e2e__/flows/thread-muting.yml | 2 +- __e2e__/flows/thread-screen.yml | 2 +- __tests__/lib/string.test.ts | 2 +- bskyweb/templates/base.html | 6 +++--- bskyweb/templates/starterpack.html | 2 +- functions/profile/[handleOrDID].ts | 2 +- modules/BlueskyClip/ViewController.swift | 2 +- modules/BlueskyNSE/BlueskyNSE.entitlements | 2 +- modules/BlueskyNSE/NotificationService.swift | 2 +- modules/Share-with-Bluesky/Share-with-Bluesky.entitlements | 2 +- modules/Share-with-Bluesky/ShareViewController.swift | 2 +- modules/expo-receive-android-intents/expo-module.config.json | 2 +- plugins/notificationsExtension/withAppEntitlements.js | 2 +- plugins/notificationsExtension/withExtensionEntitlements.js | 2 +- plugins/shareExtension/withAppEntitlements.js | 2 +- plugins/shareExtension/withExtensionEntitlements.js | 2 +- plugins/starterPackAppClipExtension/withAppEntitlements.js | 2 +- plugins/starterPackAppClipExtension/withClipEntitlements.js | 2 +- src/components/WelcomeModal.tsx | 2 +- src/lib/constants.ts | 2 +- __e2e__/flows/report-dialog/account.default.yml | 2 +- __e2e__/flows/report-dialog/post.default.yml | 2 +- __e2e__/flows/report-dialog/post.edit-reason.yml | 2 +- __e2e__/flows/report-dialog/post.reason-other.yml | 2 +- bskylink/src/routes/siteAssociation.ts | 4 ++-- bskyweb/cmd/bskyweb/server.go | 2 +- bskyweb/static/.well-known/apple-app-site-association | 4 ++-- bskyweb/static/.well-known/assetlinks.json | 2 +- modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift | 2 +- modules/expo-receive-android-intents/android/build.gradle | 4 ++-- src/components/dialogs/LinkWarning.tsx | 4 ++-- src/lib/notifications/notifications.ts | 2 +- src/lib/strings/embed-player.ts | 4 ++-- src/lib/strings/headings.ts | 2 +- src/lib/strings/starter-pack.ts | 2 +- src/lib/strings/url-helpers.ts | 12 ++++++------ src/screens/Settings/AboutSettings.tsx | 4 ++-- src/screens/StarterPack/StarterPackLandingScreen.tsx | 2 +- src/state/persisted/schema.ts | 2 +- src/state/queries/constellation.ts | 2 +- src/view/screens/PrivacyPolicy.tsx | 4 ++-- src/view/screens/TermsOfService.tsx | 4 ++-- src/view/shell/Drawer.tsx | 4 ++-- functions/profile/[handleOrDID]/post/[rkey].ts | 2 +- modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift | 2 +- modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift | 2 +- src/screens/Settings/NotificationSettings/index.tsx | 2 +- src/screens/Signup/StepInfo/index.tsx | 6 +++--- src/view/com/auth/SplashScreen.web.tsx | 2 +- src/view/shell/desktop/RightNav.tsx | 4 ++-- modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt | 2 +- modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt | 2 +- modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt | 2 +- 94 file(s) changed, 1081 insertion(s)(+), 1081 deletion(s)(-) diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -120,7 +120,7 @@ # ogcard assets bskyogcard/src/assets/fonts/noto-* -# Bitchsky maybe +# Witchsky maybe .direnv .wrangler diff --git a/README.md b/README.md --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ -# Bitchsky Social App πŸ§™ +# Witchsky Social App πŸ§™ (WIP) -Hey, bitches! This is the codebase for the Bitchsky app, based on [social.daniela.lol](https://github.com/kittibytess/deer-social) and prior [Bluesky](https://github.com/bluesky-social/social-app) forks. +Hey, witches! This is the codebase for the Witchsky app, based on [social.daniela.lol](https://github.com/kittibytess/deer-social) and prior [Bluesky](https://github.com/bluesky-social/social-app) forks. Get the app itself: -- **Web: [bitchsky.app](https://bitchsky.app)** -- **iOS: [Soonβ„’](https://large-type.com/#%F0%9F%99%80)?** -- **Android: [Github Releases](https://github.com/jollywhoppers/bitchsky-app/releases/latest)** +- **Web: [witchsky.app](https://witchsky.app)** +- **iOS: [Soonβ„’](https://cat-bounce.com/)?** +- **Android: [F-Droid repo](https://app.jolly.you/fdroid/repo)** - + Get it on Obtainium ## Improvements on Bluesky -- Funner name (still love you tho bsky!) +- Cooler name (still love you tho bsky!) - Nicer colors (kinda like gruvbox? not really) - Posts are called Skeets -- Share links to bitchsky.app or bsky.app +- Choose between sharing witchsky.app or bsky.app links - Embed player works with [stream.place](https://stream.place/) links! -- Open skeets in PDSls and original pages from bridged posts +- Open skeets in PDSls and original pages of bridged posts - Better defaults (alt text required πŸ˜‰) - More unique repost icons - No push notifications (may be added later) @@ -73,28 +73,28 @@ ### TODO: Xan -- [ ] Update branding (especially colors and app icon) to Bitchsky +- [ ] Update branding (especially colors and app icon) to Witchsky - [ ] ./src/components/WelcomeModal.tsx (tab/hover selector) - [ ] ./src/alf/themes.ts (improve contrast, esp. of links) - [ ] ./src/lib/styles.ts (change likes color, remove gradient from new skeet button) - [ ] ./src/style.css (change links color) - [ ] ./src/view/com/util/UserAvatar.tsx (change #0070FF) - - [ ] ./assets/app-icons/ (change new bksy logos to fit Bitchsky -remove from social embed!) - - [ ] social embed stuff (bitchsky logo in image with jollywhoppers logo, use bitchsky icon) + - [ ] ./assets/app-icons/ (change new bksy logos to fit Witchsky -remove from social embed!) + - [ ] social embed stuff (witchsky logo in image with jollywhoppers logo, use witchsky icon) - [ ] Setup App Linking for Android (.well-known w/ app package fingerprint) -- [ ] Automatic PDS detection like other social-app forks (fallback/email addresses to use bitchsky.social) +- [ ] Automatic PDS detection like other social-app forks (fallback/email addresses to use witchsky.social) - [ ] Like of or repost of repost icons in notifications - [ ] Change followed accounts [on onboarding](https://github.com/blacksky-algorithms/blacksky.community/commit/e36ee43efb4999f070860d7f70122e45b28c1e2b) - [ ] Join date & switch accounts from composer from a fork like [deer.aylac.top](https://github.com/ayla6/deer-social-test) -- [ ] Visual replies indicator like the [Firmament userstyle](https://bitchsky.app/profile/did:plc:jwhxcrf5uvl3vyw7nurecgt5/post/3m4rr3vzmak2a) (and likes?) +- [ ] Visual replies indicator like the [Firmament userstyle](https://witchsky.app/profile/did:plc:jwhxcrf5uvl3vyw7nurecgt5/post/3m4rr3vzmak2a) (and likes?) - [ ] Additional translation service providers + setting (Deepl, Kagi) - [ ] Move Mutuals label to the follow button - [ ] Put DeerSettings into separate subpages -- [ ] After subpages for options, add [Outlinks page](https://bitchsky.app/profile/did:plc:q7suwaz53ztc4mbiqyygbn43/post/3m5zjhhshic2g) & +- [ ] After subpages for options, add [Outlinks page](https://witchsky.app/profile/did:plc:q7suwaz53ztc4mbiqyygbn43/post/3m5zjhhshic2g) & - [ ] ShareMenuItems.tsx, ShareMenuItems.web.tsx - [ ] For profile meatball button, Open profile in PDSls & Open bridged OG fedi account page - [ ] ProfileMenu.tsx -- [ ] Bitchsky PDS and .social site (list good songs containing 'bitch' in their titles) +- [ ] Witchsky PDS and .social site (list good songs containing 'bitch' in their titles) ### Even more wishful or far off @@ -110,25 +110,25 @@ This is a [React Native](https://reactnative.dev/) application, written in the TypeScript programming language. It builds on the `atproto` TypeScript packages (like [`@atproto/api`](https://www.npmjs.com/package/@atproto/api)), which are also open source, but in [a different git repository](https://github.com/bluesky-social/atproto). -There is vestigial Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application in the social app deployment. However, it is not used in current Bitchsky deployments. -For Bitchsky, the intended deployment is with a webserver that can serve static files, and reroute to `index.html` as needed. [Bitchsky](https://bitchsky.app) is currently hosted on [Cloudflare Pages](https://pages.cloudflare.com/). +There is vestigial Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application in the social app deployment. However, it is not used in current Witchsky deployments. +For Witchsky, the intended deployment is with a webserver that can serve static files, and reroute to `index.html` as needed. [Witchsky](https://witchsky.app) is currently hosted on [Cloudflare Pages](https://pages.cloudflare.com/). The [Build Instructions](./docs/build.md) are a good place to get started with the app itself. If you use nix (and especially direnv) then `flake.nix` will get you a working environment for the web version of the app. The Authenticated Transfer Protocol ("AT Protocol" or "atproto") is a decentralized social media protocol. You don't *need* to understand AT Protocol to work with this application, but it can help. -You may wish to reference [resources linked in social-app](https://github.com/bluesky-social/social-app#development-resources). However, please don't harass the Bluesky team with issues or questions pertaining to Bitchsky. +You may wish to reference [resources linked in social-app](https://github.com/bluesky-social/social-app#development-resources). However, please don't harass the Bluesky team with issues or questions pertaining to Witchsky. -Bitchsky is a fork of the official Bluesky client, social-app. It encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is `app.bsky.*`. +Witchsky is a fork of the official Bluesky client, social-app. It encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is `app.bsky.*`. ## Contributions -> Bitchsky is a community fork, and we'd love to merge your PR! +> Witchsky is a community fork, and we'd love to merge your PR! -As a rule of thumb, the best features for Bitchsky are those that have a disproportionately positive impact on the user experience compared to the maintenance overhead. Unlike some open source projects, since Bitchsky is a soft fork, any features (patches) we add on top of upstream social-app need to be maintained. For example, a change to the way skeets are composed may be very invasive, touching lots of code across the codebase. If upstream refactors this component, we will need to rewrite this feature to be compatible or drop it from the client. +As a rule of thumb, the best features for Witchsky are those that have a disproportionately positive impact on the user experience compared to the maintenance overhead. Unlike some open source projects, since Witchsky is a soft fork, any features (patches) we add on top of upstream social-app need to be maintained. For example, a change to the way skeets are composed may be very invasive, touching lots of code across the codebase. If upstream refactors this component, we will need to rewrite this feature to be compatible or drop it from the client. For this reason, only features that require changing only a small amount of code from upstream should be considered. -Without an overriding motivation, opinionated features should exist behind a toggle that is not enabled by default. This allows Bitchsky to cater to as many users as possible. +Without an overriding motivation, opinionated features should exist behind a toggle that is not enabled by default. This allows Witchsky to cater to as many users as possible. ### Guidelines @@ -148,17 +148,17 @@ Please be sure to: -- Change all branding in the repository and UI to clearly differentiate from Bitchsky. +- Change all branding in the repository and UI to clearly differentiate from Witchsky. - Change any support links (feedback, email, terms of service, issue tracker, etc) to your own systems. ## Self hosting & personal builds -Self hosting is great! It is our intention that Bitchsky is easy to self host and build on your own. If you host your own instance of Bitchsky, or make your own builds, please make some level of effort to clarify that it is not an "official" build or instance. This can be in the form of a different domain or branding, but can also be as simple as not advertising your hosted instance or builds as "official" releases. +Self hosting is great! It is our intention that Witchsky is easy to self host and build on your own. If you host your own instance of Witchsky, or make your own builds, please make some level of effort to clarify that it is not an "official" build or instance. This can be in the form of a different domain or branding, but can also be as simple as not advertising your hosted instance or builds as "official" releases. ## Security disclosures If you discover any security issues, please privately disclose them to [xan.lol](https://xan.lol/). -If the issue pertains to infastructure, code, or systems outside the scope of Bitchsky, please refer to the [disclosure guidelines on social-app](https://github.com/bluesky-social/social-app#security-disclosures) if it is hosted by Bluesky PBC. Otherwise, reference the security policy of that system as applicable <3 +If the issue pertains to infastructure, code, or systems outside the scope of Witchsky, please refer to the [disclosure guidelines on social-app](https://github.com/bluesky-social/social-app#security-disclosures) if it is hosted by Bluesky PBC. Otherwise, reference the security policy of that system as applicable <3 ## License (MIT) @@ -168,4 +168,4 @@ ## P.S. -We ❀️ you and all of the ways you support us. Thank you for making Bluesky & Bitchsky so great! ^.^ +We ❀️ you and all of the ways you support us. Thank you for making Bluesky & Witchsky so great! ^.^ diff --git a/app.config.js b/app.config.js --- a/app.config.js +++ b/app.config.js @@ -18,7 +18,7 @@ const IS_DEV = !IS_TESTFLIGHT || !IS_PRODUCTION const ASSOCIATED_DOMAINS = [ - 'applinks:bitchsky.app', + 'applinks:witchsky.app', // When testing local services, enter an ngrok (et al) domain here. It must use a standard HTTP/HTTPS port. ...(IS_DEV || IS_TESTFLIGHT ? [] : []), ] @@ -36,9 +36,9 @@ return { expo: { version: VERSION, - name: 'Bitchsky', - slug: 'bitchsky', - scheme: ['bluesky', 'bitchsky'], + name: 'Witchsky', + slug: 'witchsky', + scheme: ['bluesky', 'witchsky'], // owner: 'blueskysocial', // owner: 'neema.brown', runtimeVersion: { @@ -50,7 +50,7 @@ newArchEnabled: false, ios: { supportsTablet: false, - bundleIdentifier: 'app.bitchsky', + bundleIdentifier: 'app.witchsky', config: { usesNonExemptEncryption: false, }, @@ -68,7 +68,7 @@ 'Used to save images to your library.', NSPhotoLibraryUsageDescription: 'Used for profile pictures, skeets, and other kinds of content', - CFBundleSpokenName: 'bitchsky.app', + CFBundleSpokenName: 'witchsky.app', CFBundleLocalizations: [ 'en', 'an', @@ -117,7 +117,7 @@ entitlements: { 'com.apple.developer.kernel.increased-memory-limit': true, 'com.apple.developer.kernel.extended-virtual-addressing': true, - 'com.apple.security.application-groups': 'group.app.bitchsky', + 'com.apple.security.application-groups': 'group.app.witchsky', }, privacyManifests: { NSPrivacyCollectedDataTypes: [ @@ -186,7 +186,7 @@ backgroundColor: '#af5f5f', }, googleServicesFile: './google-services.json', - package: 'app.bitchsky', + package: 'app.witchsky', intentFilters: [ { action: 'VIEW', @@ -194,7 +194,7 @@ data: [ { scheme: 'https', - host: 'bitchsky.app', + host: 'witchsky.app', }, { scheme: 'https', @@ -425,25 +425,25 @@ // appExtensions: [ // { // targetName: 'Share-with-Bluesky', - // bundleIdentifier: 'app.bitchsky.Share-with-Bluesky', + // bundleIdentifier: 'app.witchsky.Share-with-Bluesky', // entitlements: { // 'com.apple.security.application-groups': [ - // 'group.app.bitchsky', + // 'group.app.witchsky', // ], // }, // }, // { // targetName: 'BlueskyNSE', - // bundleIdentifier: 'app.bitchsky.BlueskyNSE', + // bundleIdentifier: 'app.witchsky.BlueskyNSE', // entitlements: { // 'com.apple.security.application-groups': [ - // 'group.app.bitchsky', + // 'group.app.witchsky', // ], // }, // }, // { // targetName: 'BlueskyClip', - // bundleIdentifier: 'app.bitchsky.AppClip', + // bundleIdentifier: 'app.witchsky.AppClip', // }, // ], }, diff --git a/google-services.json.example b/google-services.json.example --- a/google-services.json.example +++ b/google-services.json.example @@ -9,7 +9,7 @@ "client_info": { "mobilesdk_app_id": "1:123456789000:android:f1bf012572b04063", "android_client_info": { - "package_name": "app.bitchsky" + "package_name": "app.witchsky" } }, "oauth_client": [ diff --git a/justfile b/justfile --- a/justfile +++ b/justfile @@ -42,7 +42,7 @@ cp -r bskyweb/static/iframe/ web-build/iframe # copy our static pages over! - cp -r bitchsky-static-about web-build/about + cp -r witchsky-static-about web-build/about # temporarily copy over out bootleg config.txt to simulate geolocation cp config.txt web-build/ diff --git a/package.json b/package.json --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "bitchsky-app", + "name": "witchsky-app", "version": "1.110.1", "private": true, "engines": { @@ -52,7 +52,7 @@ "e2e:run": "maestro test __e2e__", "perf:test": "NODE_ENV=test maestro test", "perf:test:run": "NODE_ENV=test maestro test __e2e__/perf-test.yml", - "perf:test:measure": "NODE_ENV=test flashlight test --bundleId app.bitchsky --testCommand \"yarn perf:test\" --duration 150000 --resultsFilePath .perf/results.json", + "perf:test:measure": "NODE_ENV=test flashlight test --bundleId app.witchsky --testCommand \"yarn perf:test\" --duration 150000 --resultsFilePath .perf/results.json", "perf:test:results": "NODE_ENV=test flashlight report .perf/results.json", "perf:measure": "NODE_ENV=test flashlight measure", "intl:build": "yarn intl:extract:all && yarn intl:compile", diff --git a/__e2e__/perf-test.yml b/__e2e__/perf-test.yml --- a/__e2e__/perf-test.yml +++ b/__e2e__/perf-test.yml @@ -1,6 +1,6 @@ # flow.yaml -appId: app.bitchsky +appId: app.witchsky --- - launchApp # Login diff --git a/__e2e__/setupApp.yml b/__e2e__/setupApp.yml --- a/__e2e__/setupApp.yml +++ b/__e2e__/setupApp.yml @@ -1,7 +1,7 @@ -appId: app.bitchsky +appId: app.witchsky --- - launchApp: - appId: "app.bitchsky" + appId: "app.witchsky" clearState: true - waitForAnimationToEnd - tapOn: "http://localhost:8081" diff --git a/bitchsky-static-about/index.html b/bitchsky-static-about/index.html deleted file mode 100644 --- a/bitchsky-static-about/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - About β€” Bitchsky - - - - - - - - - -

Redirecting to GitHub README...

- - diff --git a/bitchsky-static-about/normalize.css b/bitchsky-static-about/normalize.css deleted file mode 100644 --- a/bitchsky-static-about/normalize.css +++ /dev/null @@ -1,351 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { - /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { - /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type='button']::-moz-focus-inner, -[type='reset']::-moz-focus-inner, -[type='submit']::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type='button']:-moz-focusring, -[type='reset']:-moz-focusring, -[type='submit']:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type='checkbox'], -[type='radio'] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type='number']::-webkit-inner-spin-button, -[type='number']::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type='search'] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type='search']::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/bitchsky-static-about/privacy.html b/bitchsky-static-about/privacy.html deleted file mode 100644 --- a/bitchsky-static-about/privacy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - Privacy Policy β€” Bitchsky - - - - - - - - - - -

Bitchsky Privacy Policy

- -

Last Updated: May 07, 2025

- -

Welcome to Bitchsky. This privacy policy explains our approach to your data when you use our application.

- -

No Data Collection by Bitchsky

-

The Bitchsky application itself does not collect, store, track, or share any of your personal information or user data. We do not operate servers that store your account details, posts, or activity logs.

-

Our application functions solely as a client interface to interact with the underlying Bluesky social network (AT Protocol).

- -

Reliance on Third-Party Services (AppView and PDS)

-

When you use Bitchsky, you connect to the Bluesky network through a specific AppView and your chosen Personal Data Server (PDS). These services are responsible for storing and managing your account information, posts, social graph, and other associated data.

-

Your data handling and privacy are governed by the Terms of Service and Privacy Policies of the specific AppView and PDS you use. Bitchsky simply acts on your behalf to communicate with these services based on the credentials you provide locally on your device.

-

We strongly recommend you review the policies of your chosen PDS provider and the AppView you are using. For reference, the Privacy Policy for the default Bluesky service (AppView provided by bsky.social) can be found here:

-

https://bsky.social/about/support/privacy-policy

- -

Data Stored Locally on Your Device

-

To function, Bitchsky may store your login credentials or temporary session information on your own device. This data is not accessed by or transmitted to us.

- -

Cookies and Analytics

-

Bitchsky does not use cookies or any tracking analytics.

- -

Changes to This Policy

-

We may update this policy. If we do, we will update the "Effective Date" at the top of this page.

- -

Contact Us

-

If you have questions specifically about the functionality of the Bitchsky application itself (and not about data managed by your PDS or AppView), please email contact@jollywhoppers.com.

- - - diff --git a/bitchsky-static-about/sakura.css b/bitchsky-static-about/sakura.css deleted file mode 100644 --- a/bitchsky-static-about/sakura.css +++ /dev/null @@ -1,283 +0,0 @@ -/* Sakura.css v1.5.0 - * ================ - * Minimal css theme. - * Project: https://github.com/oxalorg/sakura/ - */ -/* Body */ -html { - font-size: 62.5%; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, - 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; -} - -body { - font-size: 1.8rem; - line-height: 1.618; - max-width: 38em; - margin: auto; - color: #4a4a4a; - background-color: #f9f9f9; - padding: 13px; -} - -@media (max-width: 684px) { - body { - font-size: 1.53rem; - } -} -@media (max-width: 382px) { - body { - font-size: 1.35rem; - } -} -@font-face { - font-family: 'InterVariable'; - src: url(/static/media/InterVariable.c504db5c06caaf7cdfba.woff2) - format('woff2'); - font-weight: 300 1000; - font-style: normal; - font-display: swap; -} -@font-face { - font-family: 'InterVariableItalic'; - src: url(/static/media/InterVariable-Italic.01dcbad1bac635f9c9cd.woff2) - format('woff2'); - font-weight: 300 1000; - font-style: italic; - font-display: swap; -} -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.1; - font-family: InterVariable, -apple-system, BlinkMacSystemFont, 'Segoe UI', - Roboto, 'Liberation Sans', Helvetica, Arial, sans-serif; - font-weight: 700; - margin-top: 3rem; - margin-bottom: 1.5rem; - overflow-wrap: break-word; - word-wrap: break-word; - -ms-word-break: break-all; - word-break: break-word; -} - -h1 { - font-size: 2.35em; -} - -h2 { - font-size: 2em; -} - -h3 { - font-size: 1.75em; -} - -h4 { - font-size: 1.5em; -} - -h5 { - font-size: 1.25em; -} - -h6 { - font-size: 1em; -} - -p { - margin-top: 0px; - margin-bottom: 2.5rem; -} - -small, -sub, -sup { - font-size: 75%; -} - -hr { - border-color: #1d7484; -} - -a { - text-decoration: none; - color: #1d7484; -} -a:visited { - color: #144f5a; -} -a:hover { - color: #982c61; - border-bottom: 2px solid #4a4a4a; -} - -ul { - padding-left: 1.4em; - margin-top: 0px; - margin-bottom: 2.5rem; -} - -li { - margin-bottom: 0.4em; -} - -blockquote { - margin-left: 0px; - margin-right: 0px; - padding-left: 1em; - padding-top: 0.8em; - padding-bottom: 0.8em; - padding-right: 0.8em; - border-left: 5px solid #1d7484; - margin-bottom: 2.5rem; - background-color: #f1f1f1; -} - -blockquote p { - margin-bottom: 0; -} - -img, -video { - height: auto; - max-width: 100%; - margin-top: 0px; - margin-bottom: 2.5rem; -} - -/* Pre and Code */ -pre { - background-color: #f1f1f1; - display: block; - padding: 1em; - overflow-x: auto; - margin-top: 0px; - margin-bottom: 2.5rem; - font-size: 0.9em; -} - -code, -kbd, -samp { - font-size: 0.9em; - padding: 0 0.5em; - background-color: #f1f1f1; - white-space: pre-wrap; -} - -pre > code { - padding: 0; - background-color: transparent; - white-space: pre; - font-size: 1em; -} - -/* Tables */ -table { - text-align: justify; - width: 100%; - border-collapse: collapse; - margin-bottom: 2rem; -} - -td, -th { - padding: 0.5em; - border-bottom: 1px solid #f1f1f1; -} - -/* Buttons, forms and input */ -input, -textarea { - border: 1px solid #4a4a4a; -} -input:focus, -textarea:focus { - border: 1px solid #1d7484; -} - -textarea { - width: 100%; -} - -.button, -button, -input[type='submit'], -input[type='reset'], -input[type='button'], -input[type='file']::file-selector-button { - display: inline-block; - padding: 5px 10px; - text-align: center; - text-decoration: none; - white-space: nowrap; - background-color: #1d7484; - color: #f9f9f9; - border-radius: 1px; - border: 1px solid #1d7484; - cursor: pointer; - box-sizing: border-box; -} -.button[disabled], -button[disabled], -input[type='submit'][disabled], -input[type='reset'][disabled], -input[type='button'][disabled], -input[type='file']::file-selector-button[disabled] { - cursor: default; - opacity: 0.5; -} -.button:hover, -button:hover, -input[type='submit']:hover, -input[type='reset']:hover, -input[type='button']:hover, -input[type='file']::file-selector-button:hover { - background-color: #982c61; - color: #f9f9f9; - outline: 0; -} -.button:focus-visible, -button:focus-visible, -input[type='submit']:focus-visible, -input[type='reset']:focus-visible, -input[type='button']:focus-visible, -input[type='file']::file-selector-button:focus-visible { - outline-style: solid; - outline-width: 2px; -} - -textarea, -select, -input { - color: #4a4a4a; - padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ - margin-bottom: 10px; - background-color: #f1f1f1; - border: 1px solid #f1f1f1; - border-radius: 4px; - box-shadow: none; - box-sizing: border-box; -} -textarea:focus, -select:focus, -input:focus { - border: 1px solid #1d7484; - outline: 0; -} - -input[type='checkbox']:focus { - outline: 1px dotted #1d7484; -} - -label, -legend, -fieldset { - display: block; - margin-bottom: 0.5rem; - font-weight: 600; -} diff --git a/bitchsky-static-about/tos.html b/bitchsky-static-about/tos.html deleted file mode 100644 --- a/bitchsky-static-about/tos.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - Terms of Service β€” Bitchsky - - - - - - - - - - -

Terms of Service for Bitchsky

- -

Last Updated: May 07, 2025

- -

Introduction

-

Welcome to Bitchsky! These Terms of Service ("Terms") govern your use of the Bitchsky application ("App"). By accessing or using the App, you agree to be bound by these Terms.

- -

Your Agreement

-

Using Bitchsky signifies your acceptance of these Terms. Please also review our Privacy Policy, which explains how we handle data related to the App itself.

- -

Relationship to Other Services and Platforms

-

Bitchsky functions as a client or interface. It allows you to interact with decentralized social media protocols, instances, or servers (your "AppView" or "Personal Data Server" / "PDS").

-

Important: Bitchsky does not host your data or control the underlying networks or servers you connect to. Your interaction with these third-party services, including the content you post and view, is governed by the Terms of Service, acceptable use policies, and privacy policies of the specific AppView and/or PDS you choose to use.

-

You are responsible for understanding and complying with the terms of those external services.

- -

We strongly recommend you review the policies of your chosen PDS provider and the AppView you are using. For reference, the Terms of Service for the default Bluesky service (AppView provided by bsky.social) can be found here:

-

https://bsky.social/about/support/tos

- -

User Conduct

-

Your conduct while using Bitchsky must comply with the terms and rules set forth by the AppView and PDS you are connected to. Bitchsky is merely a tool to access these services, and Jollywhoppers is not responsible for enforcing the rules of those platforms or for the content accessed through them.

- -

Disclaimer of Warranty

-

The App is provided "AS IS" and "AS AVAILABLE," without warranty of any kind, express or implied. Forsyth Peak LLC does not warrant that the App will meet your requirements, be available uninterrupted, secure, or error-free.

- -

Limitation of Liability

-

To the fullest extent permitted by applicable law, Jollywhoppers shall not be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits or revenues, whether incurred directly or indirectly, or any loss of data, use, goodwill, or other intangible losses, resulting from:

- -

In no event shall the aggregate liability of Jollywhoppers exceed the greater of zero U.S. dollars ($0.00).

- -

Changes to These Terms

-

We may revise these Terms from time to time. The most current version will always be available within the App or on its associated website. By continuing to access or use the App after revisions become effective, you agree to be bound by the revised Terms.

- -

Contact Information

-

If you have any questions about these Terms of Service, please email contact@jollywhoppers.com.

- - - diff --git a/docs/deploy-ota.md b/docs/deploy-ota.md --- a/docs/deploy-ota.md +++ b/docs/deploy-ota.md @@ -60,12 +60,12 @@ ```sh > npx eas build:version:set -p ios > -> Project @blueskysocial/bluesky with bundle identifier "app.bitchsky" is configured with buildNumber 1011. +> Project @blueskysocial/bluesky with bundle identifier "app.witchsky" is configured with buildNumber 1011. > βœ” What version would you like to set? … 1009 > > npx eas build:version:set -p android > -> Project @blueskysocial/bluesky with application ID "app.bitchsky" is configured with versionCode 641. +> Project @blueskysocial/bluesky with application ID "app.witchsky" is configured with versionCode 641. > βœ” What version would you like to set? … 639 ``` @@ -124,12 +124,12 @@ ```sh > npx eas build:version:set -p ios > -> Project @blueskysocial/bluesky with bundle identifier "app.bitchsky" is configured with buildNumber 1009. +> Project @blueskysocial/bluesky with bundle identifier "app.witchsky" is configured with buildNumber 1009. > βœ” What version would you like to set? … 1011 > > npx eas build:version:set -p android > -> Project @blueskysocial/bluesky with application ID "app.bitchsky" is configured with versionCode 639. +> Project @blueskysocial/bluesky with application ID "app.witchsky" is configured with versionCode 639. > βœ” What version would you like to set? … 641 ``` diff --git a/web/index.html b/web/index.html --- a/web/index.html +++ b/web/index.html @@ -106,7 +106,7 @@ ">

JavaScript Required

This is a heavily interactive web application, and JavaScript is required. Simple HTML interfaces are possible, but that is not what this is. -

Learn more about Bluesky at bsky.social and atproto.com, or this fork at github.com/jollywhoppers/bitchsky-app. +

Learn more about Bluesky at bsky.social and atproto.com, or this fork at https://tangled.org/jollywhoppers.com/witchsky.app/. diff --git a/witchsky-static-about/index.html b/witchsky-static-about/index.html new file mode 100644 --- /dev/null +++ b/witchsky-static-about/index.html @@ -0,0 +1,24 @@ + + + + + + + About β€” Witchsky + + + + + + + + + +

Redirecting to GitHub README...

+ + diff --git a/witchsky-static-about/normalize.css b/witchsky-static-about/normalize.css new file mode 100644 --- /dev/null +++ b/witchsky-static-about/normalize.css @@ -0,0 +1,351 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { + /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { + /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type='checkbox'], +[type='radio'] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type='search'] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/witchsky-static-about/privacy.html b/witchsky-static-about/privacy.html new file mode 100644 --- /dev/null +++ b/witchsky-static-about/privacy.html @@ -0,0 +1,54 @@ + + + + + + + + Privacy Policy β€” Witchsky + + + + + + + + + + +

Witchsky Privacy Policy

+ +

Last Updated: May 07, 2025

+ +

Welcome to Witchsky. This privacy policy explains our approach to your data when you use our application.

+ +

No Data Collection by Witchsky

+

The Witchsky application itself does not collect, store, track, or share any of your personal information or user data. We do not operate servers that store your account details, posts, or activity logs.

+

Our application functions solely as a client interface to interact with the underlying Bluesky social network (AT Protocol).

+ +

Reliance on Third-Party Services (AppView and PDS)

+

When you use Witchsky, you connect to the Bluesky network through a specific AppView and your chosen Personal Data Server (PDS). These services are responsible for storing and managing your account information, posts, social graph, and other associated data.

+

Your data handling and privacy are governed by the Terms of Service and Privacy Policies of the specific AppView and PDS you use. Witchsky simply acts on your behalf to communicate with these services based on the credentials you provide locally on your device.

+

We strongly recommend you review the policies of your chosen PDS provider and the AppView you are using. For reference, the Privacy Policy for the default Bluesky service (AppView provided by bsky.social) can be found here:

+

https://bsky.social/about/support/privacy-policy

+ +

Data Stored Locally on Your Device

+

To function, Witchsky may store your login credentials or temporary session information on your own device. This data is not accessed by or transmitted to us.

+ +

Cookies and Analytics

+

Witchsky does not use cookies or any tracking analytics.

+ +

Changes to This Policy

+

We may update this policy. If we do, we will update the "Effective Date" at the top of this page.

+ +

Contact Us

+

If you have questions specifically about the functionality of the Witchsky application itself (and not about data managed by your PDS or AppView), please email contact@jollywhoppers.com.

+ + + diff --git a/witchsky-static-about/sakura.css b/witchsky-static-about/sakura.css new file mode 100644 --- /dev/null +++ b/witchsky-static-about/sakura.css @@ -0,0 +1,283 @@ +/* Sakura.css v1.5.0 + * ================ + * Minimal css theme. + * Project: https://github.com/oxalorg/sakura/ + */ +/* Body */ +html { + font-size: 62.5%; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; +} + +body { + font-size: 1.8rem; + line-height: 1.618; + max-width: 38em; + margin: auto; + color: #4a4a4a; + background-color: #f9f9f9; + padding: 13px; +} + +@media (max-width: 684px) { + body { + font-size: 1.53rem; + } +} +@media (max-width: 382px) { + body { + font-size: 1.35rem; + } +} +@font-face { + font-family: 'InterVariable'; + src: url(/static/media/InterVariable.c504db5c06caaf7cdfba.woff2) + format('woff2'); + font-weight: 300 1000; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: 'InterVariableItalic'; + src: url(/static/media/InterVariable-Italic.01dcbad1bac635f9c9cd.woff2) + format('woff2'); + font-weight: 300 1000; + font-style: italic; + font-display: swap; +} +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.1; + font-family: InterVariable, -apple-system, BlinkMacSystemFont, 'Segoe UI', + Roboto, 'Liberation Sans', Helvetica, Arial, sans-serif; + font-weight: 700; + margin-top: 3rem; + margin-bottom: 1.5rem; + overflow-wrap: break-word; + word-wrap: break-word; + -ms-word-break: break-all; + word-break: break-word; +} + +h1 { + font-size: 2.35em; +} + +h2 { + font-size: 2em; +} + +h3 { + font-size: 1.75em; +} + +h4 { + font-size: 1.5em; +} + +h5 { + font-size: 1.25em; +} + +h6 { + font-size: 1em; +} + +p { + margin-top: 0px; + margin-bottom: 2.5rem; +} + +small, +sub, +sup { + font-size: 75%; +} + +hr { + border-color: #1d7484; +} + +a { + text-decoration: none; + color: #1d7484; +} +a:visited { + color: #144f5a; +} +a:hover { + color: #982c61; + border-bottom: 2px solid #4a4a4a; +} + +ul { + padding-left: 1.4em; + margin-top: 0px; + margin-bottom: 2.5rem; +} + +li { + margin-bottom: 0.4em; +} + +blockquote { + margin-left: 0px; + margin-right: 0px; + padding-left: 1em; + padding-top: 0.8em; + padding-bottom: 0.8em; + padding-right: 0.8em; + border-left: 5px solid #1d7484; + margin-bottom: 2.5rem; + background-color: #f1f1f1; +} + +blockquote p { + margin-bottom: 0; +} + +img, +video { + height: auto; + max-width: 100%; + margin-top: 0px; + margin-bottom: 2.5rem; +} + +/* Pre and Code */ +pre { + background-color: #f1f1f1; + display: block; + padding: 1em; + overflow-x: auto; + margin-top: 0px; + margin-bottom: 2.5rem; + font-size: 0.9em; +} + +code, +kbd, +samp { + font-size: 0.9em; + padding: 0 0.5em; + background-color: #f1f1f1; + white-space: pre-wrap; +} + +pre > code { + padding: 0; + background-color: transparent; + white-space: pre; + font-size: 1em; +} + +/* Tables */ +table { + text-align: justify; + width: 100%; + border-collapse: collapse; + margin-bottom: 2rem; +} + +td, +th { + padding: 0.5em; + border-bottom: 1px solid #f1f1f1; +} + +/* Buttons, forms and input */ +input, +textarea { + border: 1px solid #4a4a4a; +} +input:focus, +textarea:focus { + border: 1px solid #1d7484; +} + +textarea { + width: 100%; +} + +.button, +button, +input[type='submit'], +input[type='reset'], +input[type='button'], +input[type='file']::file-selector-button { + display: inline-block; + padding: 5px 10px; + text-align: center; + text-decoration: none; + white-space: nowrap; + background-color: #1d7484; + color: #f9f9f9; + border-radius: 1px; + border: 1px solid #1d7484; + cursor: pointer; + box-sizing: border-box; +} +.button[disabled], +button[disabled], +input[type='submit'][disabled], +input[type='reset'][disabled], +input[type='button'][disabled], +input[type='file']::file-selector-button[disabled] { + cursor: default; + opacity: 0.5; +} +.button:hover, +button:hover, +input[type='submit']:hover, +input[type='reset']:hover, +input[type='button']:hover, +input[type='file']::file-selector-button:hover { + background-color: #982c61; + color: #f9f9f9; + outline: 0; +} +.button:focus-visible, +button:focus-visible, +input[type='submit']:focus-visible, +input[type='reset']:focus-visible, +input[type='button']:focus-visible, +input[type='file']::file-selector-button:focus-visible { + outline-style: solid; + outline-width: 2px; +} + +textarea, +select, +input { + color: #4a4a4a; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + margin-bottom: 10px; + background-color: #f1f1f1; + border: 1px solid #f1f1f1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; +} +textarea:focus, +select:focus, +input:focus { + border: 1px solid #1d7484; + outline: 0; +} + +input[type='checkbox']:focus { + outline: 1px dotted #1d7484; +} + +label, +legend, +fieldset { + display: block; + margin-bottom: 0.5rem; + font-weight: 600; +} diff --git a/witchsky-static-about/tos.html b/witchsky-static-about/tos.html new file mode 100644 --- /dev/null +++ b/witchsky-static-about/tos.html @@ -0,0 +1,65 @@ + + + + + + + + Terms of Service β€” Witchsky + + + + + + + + + + +

Terms of Service for Witchsky

+ +

Last Updated: May 07, 2025

+ +

Introduction

+

Welcome to Witchsky! These Terms of Service ("Terms") govern your use of the Witchsky application ("App"). By accessing or using the App, you agree to be bound by these Terms.

+ +

Your Agreement

+

Using Witchsky signifies your acceptance of these Terms. Please also review our Privacy Policy, which explains how we handle data related to the App itself.

+ +

Relationship to Other Services and Platforms

+

Witchsky functions as a client or interface. It allows you to interact with decentralized social media protocols, instances, or servers (your "AppView" or "Personal Data Server" / "PDS").

+

Important: Witchsky does not host your data or control the underlying networks or servers you connect to. Your interaction with these third-party services, including the content you post and view, is governed by the Terms of Service, acceptable use policies, and privacy policies of the specific AppView and/or PDS you choose to use.

+

You are responsible for understanding and complying with the terms of those external services.

+ +

We strongly recommend you review the policies of your chosen PDS provider and the AppView you are using. For reference, the Terms of Service for the default Bluesky service (AppView provided by bsky.social) can be found here:

+

https://bsky.social/about/support/tos

+ +

User Conduct

+

Your conduct while using Witchsky must comply with the terms and rules set forth by the AppView and PDS you are connected to. Witchsky is merely a tool to access these services, and Jollywhoppers is not responsible for enforcing the rules of those platforms or for the content accessed through them.

+ +

Disclaimer of Warranty

+

The App is provided "AS IS" and "AS AVAILABLE," without warranty of any kind, express or implied. Forsyth Peak LLC does not warrant that the App will meet your requirements, be available uninterrupted, secure, or error-free.

+ +

Limitation of Liability

+

To the fullest extent permitted by applicable law, Jollywhoppers shall not be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits or revenues, whether incurred directly or indirectly, or any loss of data, use, goodwill, or other intangible losses, resulting from:

+ +

In no event shall the aggregate liability of Jollywhoppers exceed the greater of zero U.S. dollars ($0.00).

+ +

Changes to These Terms

+

We may revise these Terms from time to time. The most current version will always be available within the App or on its associated website. By continuing to access or use the App after revisions become effective, you agree to be bound by the revised Terms.

+ +

Contact Information

+

If you have any questions about these Terms of Service, please email contact@jollywhoppers.com.

+ + + diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: "Bug Report" -description: "Create a report for an issue you have experience in the app." -labels: ["bug"] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to report an issue you've found in the app! Before you submit this issue, please make sure you've searched for similar issues that are already open and being tracked. If you find an open issue that seems relevant to yours, it is best to leave a response there with your information instead of opening a new issue, since it helps to consolidate the info in one place. - - type: textarea - attributes: - label: Steps to Reproduce - description: | - Please provide the steps that may reproduce the issue that you are experiencing. The more concise of a - reproduction that you provide, the easier it will be for us to identify the issue and fix it in a timely manner. - placeholder: | - 1. Go to '...' - 2. Click on '....' - 3. Scroll down to '....' - 4. See error - validations: - required: true - - type: textarea - attributes: - label: Attachments - description: | - If possible, please provide any images or videos that may help us understand the issue you are experiencing. - validations: - required: false - - type: dropdown - attributes: - label: What platform(s) does this occur on? - multiple: true - options: - - iOS - - Android - - Web (Desktop) - - Web (Mobile) - validations: - required: true - - type: input - attributes: - label: Device Info - description: | - Please provide the device information that you are using when experiencing this issue. This can include the - device model, operating system version, and any other relevant information. - validations: - required: false - - type: input - attributes: - label: What version of the app are you using? - description: | - You can easily find this information by visting the Settings screen in the app, and tapping on the version info - at the bottom of the screen. All the relevant information will be copied to your clipboard, and you will be - able to share it here. - validations: - required: true - - type: textarea - attributes: - label: Additional Information - description: | - Please provide any additional information that you think may be helpful in identifying the issue you are - experiencing. This can include any error messages, logs, or other information that you think may be relevant. - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "Feature Request" -description: "Suggest an idea for the Bitchsky app." -labels: ["feature-request"] -body: - - type: markdown - attributes: - value: | - Thanks for submitting a feature request! Before you submit this request, please make sure you've searched for similar requests that are already open and being tracked. If you find an open request that seems relevant to yours, it is best to leave a response there with your information instead of opening a new request, since it helps to consolidate the info in one place. - - type: textarea - attributes: - label: Describe the Feature - description: | - Please provide a detailed description of the feature you would like to see implemented in the app. The more - information you provide, the easier it will be for us to understand the feature you are requesting and to - implement it in a timely manner. - validations: - required: true - - type: textarea - attributes: - label: Attachments - description: | - If helpful, provide some images or videos of similar features in other apps that you think would be helpful - for us to understand the feature you are requesting, or places within the app that you think the feature belongs - in or is missing from. - validations: - required: false - - type: textarea - attributes: - label: Describe Alternatives - description: | - If there are any alternative solutions or features that you think would be helpful to implement in place of the - feature you are requesting, please provide a description of those as well. - validations: - required: false - - type: textarea - attributes: - label: Additional Context - description: | - If there is any additional context or information that you think would be helpful for us to know about the - feature you are requesting, please provide that information here. - validations: - required: false diff --git a/.github/workflows/bitchsky-build.yml b/.github/workflows/bitchsky-build.yml deleted file mode 100644 --- a/.github/workflows/bitchsky-build.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Build Bitchsky -on: workflow_dispatch - -jobs: - bitchsky-build-android: - name: Build Bitchsky for Android - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: yarn - - name: Setup Java - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: temurin - cache: gradle - - name: Setup Android SDK - uses: android-actions/setup-android@v3 - - name: Setup just - uses: extractions/setup-just@v2 - - - name: Install dependencies - run: yarn install --frozen-lockfile - - - name: Copy example build settings - run: | - cp .env.example .env - cp google-services.json.example google-services.json - - - name: Build - run: just dist-build-android-gradle - - - name: Rename APK - run: | - mv android/app/build/outputs/apk/release/app-release.apk android/app/build/outputs/apk/release/bitchsky-v${{ github.run_number }}.apk - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: android - path: android/app/build/outputs/apk/release/bitchsky-v${{ github.run_number }}.apk - - - name: Publish release - uses: softprops/action-gh-release@v2 - if: github.ref == 'refs/heads/main' - with: - name: Bitchsky v${{ github.run_number }} - tag_name: bitchsky-v${{ github.run_number }} - files: android/app/build/outputs/apk/release/bitchsky-v${{ github.run_number }}.apk diff --git a/.tangled/ISSUE_TEMPLATE/bug_report.yml b/.tangled/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 --- /dev/null +++ b/.tangled/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,64 @@ +name: "Bug Report" +description: "Create a report for an issue you have experience in the app." +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report an issue you've found in the app! Before you submit this issue, please make sure you've searched for similar issues that are already open and being tracked. If you find an open issue that seems relevant to yours, it is best to leave a response there with your information instead of opening a new issue, since it helps to consolidate the info in one place. + - type: textarea + attributes: + label: Steps to Reproduce + description: | + Please provide the steps that may reproduce the issue that you are experiencing. The more concise of a + reproduction that you provide, the easier it will be for us to identify the issue and fix it in a timely manner. + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + - type: textarea + attributes: + label: Attachments + description: | + If possible, please provide any images or videos that may help us understand the issue you are experiencing. + validations: + required: false + - type: dropdown + attributes: + label: What platform(s) does this occur on? + multiple: true + options: + - iOS + - Android + - Web (Desktop) + - Web (Mobile) + validations: + required: true + - type: input + attributes: + label: Device Info + description: | + Please provide the device information that you are using when experiencing this issue. This can include the + device model, operating system version, and any other relevant information. + validations: + required: false + - type: input + attributes: + label: What version of the app are you using? + description: | + You can easily find this information by visting the Settings screen in the app, and tapping on the version info + at the bottom of the screen. All the relevant information will be copied to your clipboard, and you will be + able to share it here. + validations: + required: true + - type: textarea + attributes: + label: Additional Information + description: | + Please provide any additional information that you think may be helpful in identifying the issue you are + experiencing. This can include any error messages, logs, or other information that you think may be relevant. + validations: + required: false diff --git a/.tangled/ISSUE_TEMPLATE/feature_request.yml b/.tangled/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 --- /dev/null +++ b/.tangled/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,42 @@ +name: "Feature Request" +description: "Suggest an idea for the Witchsky app." +labels: ["feature-request"] +body: + - type: markdown + attributes: + value: | + Thanks for submitting a feature request! Before you submit this request, please make sure you've searched for similar requests that are already open and being tracked. If you find an open request that seems relevant to yours, it is best to leave a response there with your information instead of opening a new request, since it helps to consolidate the info in one place. + - type: textarea + attributes: + label: Describe the Feature + description: | + Please provide a detailed description of the feature you would like to see implemented in the app. The more + information you provide, the easier it will be for us to understand the feature you are requesting and to + implement it in a timely manner. + validations: + required: true + - type: textarea + attributes: + label: Attachments + description: | + If helpful, provide some images or videos of similar features in other apps that you think would be helpful + for us to understand the feature you are requesting, or places within the app that you think the feature belongs + in or is missing from. + validations: + required: false + - type: textarea + attributes: + label: Describe Alternatives + description: | + If there are any alternative solutions or features that you think would be helpful to implement in place of the + feature you are requesting, please provide a description of those as well. + validations: + required: false + - type: textarea + attributes: + label: Additional Context + description: | + If there is any additional context or information that you think would be helpful for us to know about the + feature you are requesting, please provide that information here. + validations: + required: false diff --git a/.tangled/workflows/witchsky-build.yml b/.tangled/workflows/witchsky-build.yml new file mode 100644 --- /dev/null +++ b/.tangled/workflows/witchsky-build.yml @@ -0,0 +1,57 @@ +name: Build Witchsky +on: workflow_dispatch + +jobs: + witchsky-build-android: + name: Build Witchsky for Android + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: yarn + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + cache: gradle + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + - name: Setup just + uses: extractions/setup-just@v2 + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Copy example build settings + run: | + cp .env.example .env + cp google-services.json.example google-services.json + + - name: Build + run: just dist-build-android-gradle + + - name: Rename APK + run: | + mv android/app/build/outputs/apk/release/app-release.apk android/app/build/outputs/apk/release/witchsky-v${{ github.run_number }}.apk + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: android + path: android/app/build/outputs/apk/release/witchsky-v${{ github.run_number }}.apk + + - name: Publish release + uses: softprops/action-gh-release@v2 + if: github.ref == 'refs/heads/main' + with: + name: Witchsky v${{ github.run_number }} + tag_name: witchsky-v${{ github.run_number }} + files: android/app/build/outputs/apk/release/witchsky-v${{ github.run_number }}.apk \ No newline at end of file diff --git a/__e2e__/flows/composer-self-label.yml b/__e2e__/flows/composer-self-label.yml --- a/__e2e__/flows/composer-self-label.yml +++ b/__e2e__/flows/composer-self-label.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/composer.yml b/__e2e__/flows/composer.yml --- a/__e2e__/flows/composer.yml +++ b/__e2e__/flows/composer.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/create-account.yml b/__e2e__/flows/create-account.yml --- a/__e2e__/flows/create-account.yml +++ b/__e2e__/flows/create-account.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/curate-lists.yml b/__e2e__/flows/curate-lists.yml --- a/__e2e__/flows/curate-lists.yml +++ b/__e2e__/flows/curate-lists.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/feed-reorder.yml b/__e2e__/flows/feed-reorder.yml --- a/__e2e__/flows/feed-reorder.yml +++ b/__e2e__/flows/feed-reorder.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/home-screen.yml b/__e2e__/flows/home-screen.yml --- a/__e2e__/flows/home-screen.yml +++ b/__e2e__/flows/home-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/login.yml b/__e2e__/flows/login.yml --- a/__e2e__/flows/login.yml +++ b/__e2e__/flows/login.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/mod-lists.yml b/__e2e__/flows/mod-lists.yml --- a/__e2e__/flows/mod-lists.yml +++ b/__e2e__/flows/mod-lists.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/onboarding-avatar-creator.yml b/__e2e__/flows/onboarding-avatar-creator.yml --- a/__e2e__/flows/onboarding-avatar-creator.yml +++ b/__e2e__/flows/onboarding-avatar-creator.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/onboarding.yml b/__e2e__/flows/onboarding.yml --- a/__e2e__/flows/onboarding.yml +++ b/__e2e__/flows/onboarding.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/post-report-flow.yml b/__e2e__/flows/post-report-flow.yml --- a/__e2e__/flows/post-report-flow.yml +++ b/__e2e__/flows/post-report-flow.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/profile-screen-edit.yml b/__e2e__/flows/profile-screen-edit.yml --- a/__e2e__/flows/profile-screen-edit.yml +++ b/__e2e__/flows/profile-screen-edit.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/profile-screen.yml b/__e2e__/flows/profile-screen.yml --- a/__e2e__/flows/profile-screen.yml +++ b/__e2e__/flows/profile-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/search-screen.yml b/__e2e__/flows/search-screen.yml --- a/__e2e__/flows/search-screen.yml +++ b/__e2e__/flows/search-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/shared-prefs.yml b/__e2e__/flows/shared-prefs.yml --- a/__e2e__/flows/shared-prefs.yml +++ b/__e2e__/flows/shared-prefs.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/thread-muting.yml b/__e2e__/flows/thread-muting.yml --- a/__e2e__/flows/thread-muting.yml +++ b/__e2e__/flows/thread-muting.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__e2e__/flows/thread-screen.yml b/__e2e__/flows/thread-screen.yml --- a/__e2e__/flows/thread-screen.yml +++ b/__e2e__/flows/thread-screen.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../setupServer.js diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -981,7 +981,7 @@ describe('createStarterPackGooglePlayUri', () => { const base = - 'https://play.google.com/store/apps/details?id=app.bitchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_' + 'https://play.google.com/store/apps/details?id=app.witchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_' it('returns valid google play uri when input is valid', () => { expect(createStarterPackGooglePlayUri('name', 'rkey')).toEqual( diff --git a/bskyweb/templates/base.html b/bskyweb/templates/base.html --- a/bskyweb/templates/base.html +++ b/bskyweb/templates/base.html @@ -92,9 +92,9 @@ - + - + @@ -106,7 +106,7 @@
- +
diff --git a/bskyweb/templates/starterpack.html b/bskyweb/templates/starterpack.html --- a/bskyweb/templates/starterpack.html +++ b/bskyweb/templates/starterpack.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% block html_head_extra -%} - + {%- if requestURI %} {% endif -%} diff --git a/functions/profile/[handleOrDID].ts b/functions/profile/[handleOrDID].ts --- a/functions/profile/[handleOrDID].ts +++ b/functions/profile/[handleOrDID].ts @@ -85,7 +85,7 @@ : '' element.append( html` - + diff --git a/modules/BlueskyClip/ViewController.swift b/modules/BlueskyClip/ViewController.swift --- a/modules/BlueskyClip/ViewController.swift +++ b/modules/BlueskyClip/ViewController.swift @@ -3,7 +3,7 @@ import StoreKit class ViewController: UIViewController, WKScriptMessageHandler, WKNavigationDelegate { - let defaults = UserDefaults(suiteName: "group.app.bitchsky") + let defaults = UserDefaults(suiteName: "group.app.witchsky") var window: UIWindow var webView: WKWebView? diff --git a/modules/BlueskyNSE/BlueskyNSE.entitlements b/modules/BlueskyNSE/BlueskyNSE.entitlements --- a/modules/BlueskyNSE/BlueskyNSE.entitlements +++ b/modules/BlueskyNSE/BlueskyNSE.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.app.bitchsky + group.app.witchsky diff --git a/modules/BlueskyNSE/NotificationService.swift b/modules/BlueskyNSE/NotificationService.swift --- a/modules/BlueskyNSE/NotificationService.swift +++ b/modules/BlueskyNSE/NotificationService.swift @@ -1,7 +1,7 @@ import UserNotifications import UIKit -let APP_GROUP = "group.app.bitchsky" +let APP_GROUP = "group.app.witchsky" typealias ContentHandler = (UNNotificationContent) -> Void // This extension allows us to do some processing of the received notification diff --git a/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements b/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements --- a/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements +++ b/modules/Share-with-Bluesky/Share-with-Bluesky.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.app.bitchsky + group.app.witchsky diff --git a/modules/Share-with-Bluesky/ShareViewController.swift b/modules/Share-with-Bluesky/ShareViewController.swift --- a/modules/Share-with-Bluesky/ShareViewController.swift +++ b/modules/Share-with-Bluesky/ShareViewController.swift @@ -172,7 +172,7 @@ } private func getTempUrl(ext: String) -> URL? { - if let dir = FileManager().containerURL(forSecurityApplicationGroupIdentifier: "group.app.bitchsky") { + if let dir = FileManager().containerURL(forSecurityApplicationGroupIdentifier: "group.app.witchsky") { return URL(string: "\(dir.absoluteString)\(ProcessInfo.processInfo.globallyUniqueString).\(ext)")! } return nil diff --git a/modules/expo-receive-android-intents/expo-module.config.json b/modules/expo-receive-android-intents/expo-module.config.json --- a/modules/expo-receive-android-intents/expo-module.config.json +++ b/modules/expo-receive-android-intents/expo-module.config.json @@ -1,6 +1,6 @@ { "platforms": ["android"], "android": { - "modules": ["app.bitchsky.exporeceiveandroidintents.ExpoReceiveAndroidIntentsModule"] + "modules": ["app.witchsky.exporeceiveandroidintents.ExpoReceiveAndroidIntentsModule"] } } diff --git a/plugins/notificationsExtension/withAppEntitlements.js b/plugins/notificationsExtension/withAppEntitlements.js --- a/plugins/notificationsExtension/withAppEntitlements.js +++ b/plugins/notificationsExtension/withAppEntitlements.js @@ -4,7 +4,7 @@ // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ - `group.app.bitchsky`, + `group.app.witchsky`, ] return config }) diff --git a/plugins/notificationsExtension/withExtensionEntitlements.js b/plugins/notificationsExtension/withExtensionEntitlements.js --- a/plugins/notificationsExtension/withExtensionEntitlements.js +++ b/plugins/notificationsExtension/withExtensionEntitlements.js @@ -13,7 +13,7 @@ ) const notificationsExtensionEntitlements = { - 'com.apple.security.application-groups': [`group.app.bitchsky`], + 'com.apple.security.application-groups': [`group.app.witchsky`], } fs.mkdirSync(path.dirname(extensionEntitlementsPath), { diff --git a/plugins/shareExtension/withAppEntitlements.js b/plugins/shareExtension/withAppEntitlements.js --- a/plugins/shareExtension/withAppEntitlements.js +++ b/plugins/shareExtension/withAppEntitlements.js @@ -4,7 +4,7 @@ // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ - `group.app.bitchsky`, + `group.app.witchsky`, ] return config }) diff --git a/plugins/shareExtension/withExtensionEntitlements.js b/plugins/shareExtension/withExtensionEntitlements.js --- a/plugins/shareExtension/withExtensionEntitlements.js +++ b/plugins/shareExtension/withExtensionEntitlements.js @@ -13,7 +13,7 @@ ) const shareExtensionEntitlements = { - 'com.apple.security.application-groups': [`group.app.bitchsky`], + 'com.apple.security.application-groups': [`group.app.witchsky`], } fs.mkdirSync(path.dirname(extensionEntitlementsPath), { diff --git a/plugins/starterPackAppClipExtension/withAppEntitlements.js b/plugins/starterPackAppClipExtension/withAppEntitlements.js --- a/plugins/starterPackAppClipExtension/withAppEntitlements.js +++ b/plugins/starterPackAppClipExtension/withAppEntitlements.js @@ -4,7 +4,7 @@ // eslint-disable-next-line no-shadow return withEntitlementsPlist(config, async config => { config.modResults['com.apple.security.application-groups'] = [ - `group.app.bitchsky`, + `group.app.witchsky`, ] config.modResults[ 'com.apple.developer.associated-appclip-app-identifiers' diff --git a/plugins/starterPackAppClipExtension/withClipEntitlements.js b/plugins/starterPackAppClipExtension/withClipEntitlements.js --- a/plugins/starterPackAppClipExtension/withClipEntitlements.js +++ b/plugins/starterPackAppClipExtension/withClipEntitlements.js @@ -13,7 +13,7 @@ ) const appClipEntitlements = { - 'com.apple.security.application-groups': [`group.app.bitchsky`], + 'com.apple.security.application-groups': [`group.app.witchsky`], 'com.apple.developer.parent-application-identifiers': [ `$(AppIdentifierPrefix)${config.ios.bundleIdentifier}`, ], diff --git a/src/components/WelcomeModal.tsx b/src/components/WelcomeModal.tsx --- a/src/components/WelcomeModal.tsx +++ b/src/components/WelcomeModal.tsx @@ -112,7 +112,7 @@ a.user_select_none, {color: '#ff9696ff', letterSpacing: -0.5}, ]}> - Bitchsky + Witchsky diff --git a/src/lib/constants.ts b/src/lib/constants.ts --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -11,7 +11,7 @@ export const BSKY_SERVICE_DID = 'did:web:bsky.social' export const PUBLIC_BSKY_SERVICE = 'https://public.api.bsky.app' export const DEFAULT_SERVICE = BSKY_SERVICE -export const HELP_DESK_URL = `https://github.com/jollywhoppers/bitchsky-app/issues/new/choose` +export const HELP_DESK_URL = `https://tangled.org/jollywhoppers.com/witchsky.app/issues/new` export const EMBED_SERVICE = 'https://embed.bsky.app' export const EMBED_SCRIPT = `${EMBED_SERVICE}/static/embed.js` export const BSKY_DOWNLOAD_URL = 'https://bsky.app/download' diff --git a/__e2e__/flows/report-dialog/account.default.yml b/__e2e__/flows/report-dialog/account.default.yml --- a/__e2e__/flows/report-dialog/account.default.yml +++ b/__e2e__/flows/report-dialog/account.default.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/report-dialog/post.default.yml b/__e2e__/flows/report-dialog/post.default.yml --- a/__e2e__/flows/report-dialog/post.default.yml +++ b/__e2e__/flows/report-dialog/post.default.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/report-dialog/post.edit-reason.yml b/__e2e__/flows/report-dialog/post.edit-reason.yml --- a/__e2e__/flows/report-dialog/post.edit-reason.yml +++ b/__e2e__/flows/report-dialog/post.edit-reason.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/__e2e__/flows/report-dialog/post.reason-other.yml b/__e2e__/flows/report-dialog/post.reason-other.yml --- a/__e2e__/flows/report-dialog/post.reason-other.yml +++ b/__e2e__/flows/report-dialog/post.reason-other.yml @@ -1,4 +1,4 @@ -appId: app.bitchsky +appId: app.witchsky --- - runScript: file: ../../setupServer.js diff --git a/bskylink/src/routes/siteAssociation.ts b/bskylink/src/routes/siteAssociation.ts --- a/bskylink/src/routes/siteAssociation.ts +++ b/bskylink/src/routes/siteAssociation.ts @@ -9,13 +9,13 @@ apps: [], details: [ { - appID: 'B3LX46C5HS.app.bitchsky', + appID: 'B3LX46C5HS.app.witchsky', paths: ['*'], }, ], }, appclips: { - apps: ['B3LX46C5HS.app.bitchsky.AppClip'], + apps: ['B3LX46C5HS.app.witchsky.AppClip'], }, }) }) diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -413,7 +413,7 @@ func (srv *Server) Download(c echo.Context) error { ua := c.Request().UserAgent() if strings.Contains(ua, "Android") { - return c.Redirect(http.StatusFound, "https://play.google.com/store/apps/details?id=app.bitchsky") + return c.Redirect(http.StatusFound, "https://play.google.com/store/apps/details?id=app.witchsky") } if strings.Contains(ua, "iPhone") || strings.Contains(ua, "iPad") || strings.Contains(ua, "iPod") { diff --git a/bskyweb/static/.well-known/apple-app-site-association b/bskyweb/static/.well-known/apple-app-site-association --- a/bskyweb/static/.well-known/apple-app-site-association +++ b/bskyweb/static/.well-known/apple-app-site-association @@ -2,7 +2,7 @@ "applinks": { "details": [ { - "appID": "B3LX46C5HS.app.bitchsky", + "appID": "B3LX46C5HS.app.witchsky", "paths": [ "*" ] @@ -10,6 +10,6 @@ ] }, "appclips": { - "apps": ["B3LX46C5HS.app.bitchsky.AppClip"] + "apps": ["B3LX46C5HS.app.witchsky.AppClip"] } } diff --git a/bskyweb/static/.well-known/assetlinks.json b/bskyweb/static/.well-known/assetlinks.json --- a/bskyweb/static/.well-known/assetlinks.json +++ b/bskyweb/static/.well-known/assetlinks.json @@ -3,7 +3,7 @@ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", - "package_name": "app.bitchsky", + "package_name": "app.witchsky", "sha256_cert_fingerprints": ["FD:FB:58:6B:0A:8A:10:E8:F5:2E:BE:8E:AB:5C:78:C1:C5:91:FD:8F:F9:46:CB:0C:52:5F:B4:F8:5B:79:96:C1"] } diff --git a/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift b/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift --- a/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift +++ b/modules/expo-background-notification-handler/ios/ExpoBackgroundNotificationHandlerModule.swift @@ -1,6 +1,6 @@ import ExpoModulesCore -let APP_GROUP = "group.app.bitchsky" +let APP_GROUP = "group.app.witchsky" let DEFAULTS: [String: Any] = [ "playSoundChat": true, diff --git a/modules/expo-receive-android-intents/android/build.gradle b/modules/expo-receive-android-intents/android/build.gradle --- a/modules/expo-receive-android-intents/android/build.gradle +++ b/modules/expo-receive-android-intents/android/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'kotlin-android' apply plugin: 'maven-publish' -group = 'app.bitchsky.exporeceiveandroidintents' +group = 'app.witchsky.exporeceiveandroidintents' version = '0.4.1' buildscript { @@ -65,7 +65,7 @@ } } - namespace "app.bitchsky.exporeceiveandroidintents" + namespace "app.witchsky.exporeceiveandroidintents" defaultConfig { minSdkVersion safeExtGet("minSdkVersion", 21) targetSdkVersion safeExtGet("targetSdkVersion", 34) diff --git a/src/components/dialogs/LinkWarning.tsx b/src/components/dialogs/LinkWarning.tsx --- a/src/components/dialogs/LinkWarning.tsx +++ b/src/components/dialogs/LinkWarning.tsx @@ -64,7 +64,7 @@ label={ potentiallyMisleading ? _(msg`Potentially misleading link warning`) - : _(msg`Leaving Bitchsky`) + : _(msg`Leaving Witchsky`) }> @@ -72,7 +72,7 @@ {potentiallyMisleading ? ( Potentially misleading link ) : ( - Leaving Bitchsky + Leaving Witchsky )} diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -38,7 +38,7 @@ : PUBLIC_APPVIEW_DID, platform: Platform.OS, token: token.data, - appId: 'app.bitchsky', + appId: 'app.witchsky', // ageRestricted: extra.ageRestricted ?? false, } diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -9,10 +9,10 @@ ? // @ts-ignore only for web window.location.host === 'localhost:8100' ? 'http://localhost:8100' - : 'https://bitchsky.app' + : 'https://witchsky.app' : __DEV__ && !process.env.JEST_WORKER_ID ? 'http://localhost:8100' - : 'https://bitchsky.app' + : 'https://witchsky.app' export const embedPlayerSources = [ 'youtube', diff --git a/src/lib/strings/headings.ts b/src/lib/strings/headings.ts --- a/src/lib/strings/headings.ts +++ b/src/lib/strings/headings.ts @@ -1,4 +1,4 @@ export function bskyTitle(page: string, unreadCountLabel?: string) { const unreadPrefix = unreadCountLabel ? `(${unreadCountLabel}) ` : '' - return `${unreadPrefix}${page} β€” Bitchsky` + return `${unreadPrefix}${page} β€” Witchsky` } diff --git a/src/lib/strings/starter-pack.ts b/src/lib/strings/starter-pack.ts --- a/src/lib/strings/starter-pack.ts +++ b/src/lib/strings/starter-pack.ts @@ -66,7 +66,7 @@ rkey: string, ): string | null { if (!name || !rkey) return null - return `https://play.google.com/store/apps/details?id=app.bitchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_${name}_${rkey}` + return `https://play.google.com/store/apps/details?id=app.witchsky&referrer=utm_source%3Dbluesky%26utm_medium%3Dstarterpack%26utm_content%3Dstarterpack_${name}_${rkey}` } export function httpStarterPackUriToAtUri(httpUri?: string): string | null { diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -7,10 +7,10 @@ import {startUriToStarterPackUri} from '#/lib/strings/starter-pack' import {logger} from '#/logger' -export const BSKY_APP_HOST = 'https://bitchsky.app' +export const BSKY_APP_HOST = 'https://witchsky.app' const BSKY_TRUSTED_HOSTS = [ - 'bitchsky\\.app', - 'bitchsky\\.app', + 'witchsky\\.app', + 'witchsky\\.app', 'bsky\\.app', 'bsky\\.social', 'blueskyweb\\.xyz', @@ -81,7 +81,7 @@ export function toShareUrl(url: string): string { if (!url.startsWith('https')) { - const urlp = new URL('https://bitchsky.app') + const urlp = new URL('https://witchsky.app') urlp.pathname = url url = urlp.toString() } @@ -107,8 +107,8 @@ url.startsWith('https://bsky.app/') || (url.startsWith('https://deer.social/') && !url.startsWith('https://deer.social/about')) || - (url.startsWith('https://bitchsky.app/') && - !url.startsWith('https://bitchsky.app/about')) + (url.startsWith('https://witchsky.app/') && + !url.startsWith('https://witchsky.app/about')) ) } diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx --- a/src/screens/Settings/AboutSettings.tsx +++ b/src/screens/Settings/AboutSettings.tsx @@ -78,7 +78,7 @@ @@ -86,7 +86,7 @@ diff --git a/src/screens/StarterPack/StarterPackLandingScreen.tsx b/src/screens/StarterPack/StarterPackLandingScreen.tsx --- a/src/screens/StarterPack/StarterPackLandingScreen.tsx +++ b/src/screens/StarterPack/StarterPackLandingScreen.tsx @@ -362,7 +362,7 @@ {isWeb && ( )} diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -227,7 +227,7 @@ enableSquareButtons: false, deerVerification: { enabled: false, - // https://bitchsky.app/profile/did:plc:p2cp5gopk7mgjegy6wadk3ep/post/3lndyqyyr4k2k + // https://witchsky.app/profile/did:plc:p2cp5gopk7mgjegy6wadk3ep/post/3lndyqyyr4k2k // using https://bverified.vercel.app/ as a source trusted: [ 'did:plc:z72i7hdynmk6r22z27h6tvur', diff --git a/src/state/queries/constellation.ts b/src/state/queries/constellation.ts --- a/src/state/queries/constellation.ts +++ b/src/state/queries/constellation.ts @@ -22,7 +22,7 @@ const headers = new Headers({ Accept: 'application/json', - 'User-Agent': 'Bitchsky (bitchsky.app)', + 'User-Agent': 'Witchsky (witchsky.app)', }) const makeReqUrl = ( diff --git a/src/view/screens/PrivacyPolicy.tsx b/src/view/screens/PrivacyPolicy.tsx --- a/src/view/screens/PrivacyPolicy.tsx +++ b/src/view/screens/PrivacyPolicy.tsx @@ -39,8 +39,8 @@ The Privacy Policy has been moved to{' '} diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx --- a/src/view/screens/TermsOfService.tsx +++ b/src/view/screens/TermsOfService.tsx @@ -38,8 +38,8 @@ The Terms of Service have been moved to{' '} diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -697,12 +697,12 @@ + to="https://witchsky.app/about/tos"> Terms of Service Privacy Policy diff --git a/functions/profile/[handleOrDID]/post/[rkey].ts b/functions/profile/[handleOrDID]/post/[rkey].ts --- a/functions/profile/[handleOrDID]/post/[rkey].ts +++ b/functions/profile/[handleOrDID]/post/[rkey].ts @@ -144,7 +144,7 @@ element.append( html` - + diff --git a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift --- a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift +++ b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/ExpoBlueskySharedPrefsModule.swift @@ -2,7 +2,7 @@ import ExpoModulesCore public class ExpoBlueskySharedPrefsModule: Module { - let defaults = UserDefaults(suiteName: "group.app.bitchsky") + let defaults = UserDefaults(suiteName: "group.app.witchsky") func getDefaults(_ info: String = "(no info)") -> UserDefaults? { guard let defaults = self.defaults else { diff --git a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift --- a/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift +++ b/modules/expo-bluesky-swiss-army/ios/SharedPrefs/SharedPrefs.swift @@ -3,7 +3,7 @@ public class SharedPrefs { public static let shared = SharedPrefs() - private let defaults = UserDefaults(suiteName: "group.app.bitchsky") + private let defaults = UserDefaults(suiteName: "group.app.witchsky") init() { if defaults == nil { diff --git a/src/screens/Settings/NotificationSettings/index.tsx b/src/screens/Settings/NotificationSettings/index.tsx --- a/src/screens/Settings/NotificationSettings/index.tsx +++ b/src/screens/Settings/NotificationSettings/index.tsx @@ -70,7 +70,7 @@ [ { key: 'android.provider.extra.APP_PACKAGE', - value: 'app.bitchsky', + value: 'app.witchsky', }, ], ) diff --git a/src/screens/Signup/StepInfo/index.tsx b/src/screens/Signup/StepInfo/index.tsx --- a/src/screens/Signup/StepInfo/index.tsx +++ b/src/screens/Signup/StepInfo/index.tsx @@ -170,7 +170,7 @@ - Bitchsky is part of the{' '} + Witchsky is part of the{' '} { Don't have an account provider or an existing Bluesky account? To create a new account on a Bluesky-hosted PDS, sign up through{' '} - {/* TODO: Xan: change to say sign up for a Bitchsky account */} + {/* TODO: Xan: change to say sign up for a Witchsky account */} { bsky.app }{' '} - first, then return to Bitchsky and log in with the account you + first, then return to Witchsky and log in with the account you created. diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -170,7 +170,7 @@ ]}> + to="https://tangled.org/jollywhoppers.com/witchsky.app/"> Github diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -109,13 +109,13 @@ )} {_(msg`Privacy`)} {' β€’ '} {_(msg`Terms`)} diff --git a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt --- a/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt +++ b/modules/expo-background-notification-handler/android/src/main/java/expo/modules/backgroundnotificationhandler/NotificationPrefs.kt @@ -18,7 +18,7 @@ private val context: Context?, ) { private val prefs = - context?.getSharedPreferences("app.bitchsky", Context.MODE_PRIVATE) + context?.getSharedPreferences("app.witchsky", Context.MODE_PRIVATE) ?: throw Error("Context is null") fun initialize() { diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt --- a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/sharedprefs/SharedPrefs.kt @@ -32,7 +32,7 @@ ): SharedPreferences { if (instance == null) { Log.d(NAME, "No preferences instance found, creating one.") - instance = context.getSharedPreferences("app.bitchsky", Context.MODE_PRIVATE) + instance = context.getSharedPreferences("app.witchsky", Context.MODE_PRIVATE) } val safeInstance = instance ?: throw Error("Preferences is null: $info") diff --git a/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt b/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt --- a/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt +++ b/modules/expo-receive-android-intents/android/src/main/java/xyz/blueskyweb/app/exporeceiveandroidintents/ExpoReceiveAndroidIntentsModule.kt @@ -1,4 +1,4 @@ -package app.bitchsky.exporeceiveandroidintents +package app.witchsky.exporeceiveandroidintents import android.content.Intent import android.graphics.Bitmap -- tangled.sh