···11-# blacksky.community
11+# Bluesky Social App
2233-This is a soft fork of [social app](https://github.com/bluesky-social/social-app).
33+Welcome friends! This is the codebase for the Bluesky Social app.
4455Get the app itself:
6677-- **Web: [blacksky.community](https://blacksky.community)**
88-- ~**iOS: [App Store]()**~ WIP
99-- ~**Android: [Play Store]()**~ WIP
1010-1111-## Features Today
1212-1313-- toggle to disable go.bsky.app link proxying for analytics
1414-- toggle to disable default app labeler
1515-- toggle to disable falling back to discover feed in the following feed
1616-- see through quote blocks and detatchments (nuclear block wrt quotes)
1717- - <img src="https://github.com/user-attachments/assets/e5084afd-b17e-43a7-9622-f6d7f19f53ca" width="300px" />
1818-- enable features gates
1919-- configure the location used to determine regional labelers
2020-- entirely ignore `!no-unauthenticated` labels, even for logged out users
2121-2222-### WIP/Planned
2323-2424-- rewrite shared URLs to reference blacksky.community
2525-- opengraph support for sharing posts and profiles
2626-- selecting custom appviews
2727-- seeing past blocks in post threads (nuclear block for reply chains)
2828-2929-## Philosophy
3030-3131-- by default, blacksky.community should very similar to the official client
3232- - color and branding are different to distinguish from social-app
3333- - `!no-unauthenticated` behavior is different
3434- - analytics are not present
3535-- opinionated features behind toggles
3636-- focus on high impact, low diff size patches
3737- - specifically patches that won't require large conflicts to be resolved
3838-- focus on power users (but all users are welome!)
3939-- enable things that are possible but annoying today **without** egging on antisocial behavior
77+- **Web: [bsky.app](https://bsky.app)**
88+- **iOS: [App Store](https://apps.apple.com/us/app/bluesky-social/id6444370199)**
99+- **Android: [Play Store](https://play.google.com/store/apps/details?id=xyz.blueskyweb.app)**
40104111## Development Resources
42124343-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)), code for which is also open source, but in [a different git repository](https://github.com/bluesky-social/atproto). It is regularly rebased
4444-on top of new releases of [social-app](https://github.com/bluesky-social/social-app).
1313+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)), code for which is also open source, but in [a different git repository](https://github.com/bluesky-social/atproto).
45144646-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
4747-blacksky.community deployments.
4848-For blacksky, the intended deployment is with a websever than can serve static files, and reroute to `index.html` as needed. Today [blacksky.community](https://blacksky.community) is hosted on [cloudflare pages](https://pages.cloudflare.com/).
1515+There is a small amount of Go language source code (in `./bskyweb/`), for a web service that returns the React Native Web application.
49165050-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
5151-the web version of the app.
1717+The [Build Instructions](./docs/build.md) are a good place to get started with the app itself.
52185353-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.
5454-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
5555-pertaining to blacksky.community.
1919+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. Learn more at:
56205757-Blacksky is a fork of the official 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.*`.
2121+- [Overview and Guides](https://atproto.com/guides/overview)
2222+- [Github Discussions](https://github.com/bluesky-social/atproto/discussions) 👈 Great place to ask questions
2323+- [Protocol Specifications](https://atproto.com/specs/atp)
2424+- [Blogpost on self-authenticating data structures](https://bsky.social/about/blog/3-6-2022-a-self-authenticating-social-protocol)
2525+2626+The Bluesky Social application encompasses a set of schemas and APIs built in the overall AT Protocol framework. The namespace for these "Lexicons" is `app.bsky.*`.
58275928## Contributions
60296161-> blacksky.community is a community fork, and we'd love to merge your PR!
3030+> While we do accept contributions, we prioritize high quality issues and pull requests. Adhering to the below guidelines will ensure a more timely review.
62316363-As a rule of thumb, the best features for blacksky.community are ones that have a disproportionately positive impact on the user experience compared to the matinance overhead.
6464-Unlike some open source projects, since blacksky.community is a soft fork, any features (patches) we add on top of upstream social-app need to be maintained. For example,
6565-a change to the way posts are composed may be very invasive, touching lots of code across the codebase. If upstream refactors this component, we will need to rewrite this
6666-feature to be compatible or drop it from the client.
3232+**Rules:**
67336868-For this reason, bias towards features that change a relatively small amount of code that is present upstream.
6969-7070-Without an overriding motivation, opinionated features should exist behind a toggle that is not enabled by default. This allows blacksky.community to cater to as many users as possible.
3434+- We may not respond to your issue or PR.
3535+- We may close an issue or PR without much feedback.
3636+- We may lock discussions or contributions if our attention is getting DDOSed.
3737+- We're not going to provide support for build issues.
71387239**Guidelines:**
73407441- Check for existing issues before filing a new one please.
7542- Open an issue and give some time for discussion before submitting a PR.
7676- - This isn't strictly necessary, but I'd love to give my thoughts and scope out your willingness to maintain the feature before you write it.
7743- Stay away from PRs like...
7844 - Changing "Post" to "Skeet."
7979- - Refactoring the codebase, e.g., to replace MobX with Redux or something.
8080-- Include a new toggle and preference for your feature.
4545+ - Refactoring the codebase, e.g., to replace React Query with Redux Toolkit or something.
4646+ - Adding entirely new features without prior discussion.
81478282-If we don't merge your PR for whatever reason, you are welcome to fork and/or self host:
4848+Remember, we serve a wide community of users. Our day-to-day involves us constantly asking "which top priority is our top priority." If you submit well-written PRs that solve problems concisely, that's an awesome contribution. Otherwise, as much as we'd love to accept your ideas and contributions, we really don't have the bandwidth. That's what forking is for!
83498450## Forking guidelines
85518686-Just like social-app, you have our blessing 🪄✨ to fork this application! However, it's very important to be clear to users when you're giving them a fork.
5252+You have our blessing 🪄✨ to fork this application! However, it's very important to be clear to users when you're giving them a fork.
87538854Please be sure to:
89559090-- Change all branding in the repository and UI to clearly differentiate from blacksky.community.
9191-- Change any support links (feedback, email, terms of service, issue tracker, etc) to your own systems.
5656+- Change all branding in the repository and UI to clearly differentiate from Bluesky.
5757+- Change any support links (feedback, email, terms of service, etc) to your own systems.
5858+- Replace any analytics or error-collection systems with your own so we don't get super confused.
92599393-## Self hosting & personal builds
6060+## Security disclosures
94619595-Self hosting is great! It is our intention that blacksky.community is easy to self host and build on your own. If you host your own instance of blacksky.community, or make your own builds, please
9696-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
9797-advertising your hosted instance or builds as "official" releases.
6262+If you discover any security issues, please send an email to security@bsky.app. The email is automatically CCed to the entire team and we'll respond promptly.
98639999-## Security disclosures
6464+## Are you a developer interested in building on atproto?
10065101101-If you discover any security issues, please send an email to aviva@rubenfamily.com.
102102-If the issue pertains to infastructure, code, or systems outside the scope of blacksky.community, please refer to the
103103-[disclosure guidelines on social-app](https://github.com/bluesky-social/social-app#security-disclosures) if it is hosted by Bluesky PBC. Otherwise, reference the
104104-security policy of that system as applicable <3
6666+Bluesky is an open social network built on the AT Protocol, a flexible technology that will never lock developers out of the ecosystems that they help build. With atproto, third-party integration can be as seamless as first-party through custom feeds, federated services, clients, and more.
1056710668## License (MIT)
1076910870See [./LICENSE](./LICENSE) for the full license.
7171+7272+## P.S.
7373+7474+We ❤️ you and all of the ways you support us. Thank you for making Bluesky a great place!