/graysky

a bluesky client

Primary LanguageTypeScriptMIT LicenseMIT

Graysky

Crowdin

Graysky is a Bluesky client written in React Native.

Get it here: https://graysky.app/download

Getting Started

You'll need pnpm, and some sort of simulator or device to run the app on.

pnpm install
cp .env.example .env

EAS setup (optional) Set EAS_PROJECT_ID, APP_ID, and OWNER in .env

In the /apps/expo directory, build the dev client using EAS:

pnpm build:dev-client:ios-simulator
// or
pnpm build:dev-client:android

You can then start the expo server with:

pnpm dev

Future Roadmap

  • Change handle
    • own domain
    • bsky.social
    • community handles
  • Push notifications
  • Drafts
  • Full lists support
  • Share post as image
  • Pro features
    • Polls
    • Analytics

Android local APK builds

  • Install Android Studio, and the Android SDK
  • Install Azul Zulu OpenJDK (brew install --cask zulu17) and then set JAVA_HOME to the path of the JDK, which will probably be /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
  • Copy google-services.json.example to google-services.json, or add your own Firebase config
  • Make Gradle faster in ~/.gradle/gradle.properties:
org.gradle.jvmargs=-Xmx20g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=2g
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=false
org.gradle.caching=true

You can now either run pnpm build:android to build and submit the app, or if you want to sign a build manually you can do the following:

  • Create a signing key in Android Studio
  • Build it with: eas build --platform android --profile production-apk --non-interactive --local --output="./foo.apk" --wait
  • Sign it with: /Users/alice/Library/Android/sdk/build-tools/33.0.0/apksigner sign -ks sideload.jks foo.apk

iOS local builds

In the /apps/expo directory:

pnpm build:ios

Sponsors

Thank you to @thepriceisright for sponsoring my work on this project!

Contributors

Graysky is primarily developed by @mozzius.dev. If you'd like to show your support for the project, you can sponsor me.

However, I'm not the only one who's contributed to this project. I'd like to especially thank @alice.bsky.sh for her work on adding dark mode, and getting Android builds working, and thank @holden.bsky.social for their invaluable accessibility improvements.

All Contributors

My eternal thanks to the following people for their contributions to Graysky: