GithubHelp home page GithubHelp logo

bluesky-social / social-app Goto Github PK

View Code? Open in Web Editor NEW
7.2K 68.0 952.0 53.16 MB

The Bluesky Social application for Web, iOS, and Android

Home Page: https://bsky.app

License: MIT License

JavaScript 1.27% TypeScript 96.23% Ruby 0.05% HTML 0.45% Go 0.72% Dockerfile 0.03% Makefile 0.04% Shell 0.16% Swift 0.54% Kotlin 0.50% CSS 0.01%

social-app's Introduction

Bluesky Social App

Welcome friends! This is the codebase for the Bluesky Social app.

Get the app itself:

Development Resources

This is a React Native application, written in the TypeScript programming language. It builds on the atproto TypeScript packages (like @atproto/api), code for which is also open source, but in a different git repository.

There is a small amount of Go language source code (in ./bskyweb/), for a web service that returns the React Native Web application.

The Build Instructions are a good place to get started with the app itself.

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:

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.*.

Contributions

While we do accept contributions, we prioritize high quality issues and pull requests. Adhering to the below guidelines will ensure a more timely review.

Rules:

  • We may not respond to your issue or PR.
  • We may close an issue or PR without much feedback.
  • We may lock discussions or contributions if our attention is getting DDOSed.
  • We're not going to provide support for build issues.

Guidelines:

  • Check for existing issues before filing a new one please.
  • Open an issue and give some time for discussion before submitting a PR.
  • Stay away from PRs like...
    • Changing "Post" to "Skeet."
    • Refactoring the codebase, e.g., to replace MobX with Redux or something.
    • Adding entirely new features without prior discussion.

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!

Forking guidelines

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.

Please be sure to:

  • Change all branding in the repository and UI to clearly differentiate from Bluesky.
  • Change any support links (feedback, email, terms of service, etc) to your own systems.
  • Replace any analytics or error-collection systems with your own so we don't get super confused.

Security disclosures

If you discover any security issues, please send an email to [email protected]. The email is automatically CCed to the entire team and we'll respond promptly.

Are you a developer interested in building on atproto?

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.

License (MIT)

See ./LICENSE for the full license.

P.S.

We โค๏ธ you and all of the ways you support us. Thank you for making Bluesky a great place!

social-app's People

Contributors

alimony avatar ansh avatar arrygoo avatar auroursa avatar bnewbold avatar cooperedmunds avatar ericvolp12 avatar estrattonbailey avatar gaearon avatar gid0317 avatar gildaswise avatar haileyok avatar ivanbea avatar jacob2161 avatar jaoler avatar joaoferreiro avatar jrf0110 avatar kuwalee avatar loganrosen avatar mary-ext avatar mozzius avatar noritada avatar pfrazee avatar quiple avatar rahulyadav5524 avatar renahlee avatar signez avatar surfdude29 avatar titianbeetle avatar tkusano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

social-app's Issues

Failed image upload runs into cache issue on reupload attempt

There's some state that's created during the process of publishing a post with images attached. If the post fails to actually upload, that state conflicts on subsequent attempts to upload.

To reproduce, modify the publishing flow to throw an error right before the post record is created, then try to reupload. You will see an error about a file already existing.

Deleting posts

Post deletion is complete, but currently has a number of issues:

  • After deleting, the UI needs to consistently update so that it's clear something has changed. (Eg if on the screen for the post, make sure the view refreshes.)
  • When you navigate to or visit a deleted post, the "404" needs to produce an intelligible UI state and not look like an error.

Improve photo resolution

Photos are unbearably grainy. I'd categorize this as a bug and not an enhancement because it's bad enough to violate basic user expectations of photo quality.

Social metadata on bsky-app links

The bsky.app website needs to host social metadata for content. This means fetching information from the ATP network and hosting it in the page. Doing so enables links shared in other social apps to show a preview of the content.

Image uploader in post composer

Add an image uploader tool to the post composer.

Should support:

  • Image cropping
  • Up to 4 images
  • Ability to remove images from draft after adding

Image cropping can be a v2 if needed.

Deleted post shows up in feed

The other day I deleted a post to re-post a different version (something I do quite often), and saw the old deleted version show up in my feed. When I clicked on it, it gave me a "post not found" message, but still hung around in feed.

Need to replicate.

[APP-478] Font improvements

Let's do a pass over fonts, ideally with an external product designer with some expertise here, and refine.

My opinion is that post text is too large relative to name/handle. Can copy Twitter's ratios here. Smaller post fonts allow more information density on the feed.

APP-478

Create embed for links in posts

Tasks:

  • Create an embed card by fetching info on the receiver side
  • Create an embed card by fetching info on the publisher side (should replace receiver side)
  • Include an image in the embed

Privacy policy and ToS hosting for services

Blocker for app store review.

This requires an update in the PDS and the frontend:

  • PDS: Add a route, or update getAccountsConfig, to host these documents. Introduce some config for the admin to set the TOS and Privacy Policy.
  • Frontend: Fetch these documents and provide links & a viewing UI.

Duplicate posts in feed

Duplicate posts show up in the feed due to how we handle replies. If there are multiple replies to the same post, we need to figure out how to only show the original post once. Otherwise popular original posts take over a user's entire feed.

I think a post trending in scenes might also get pushed to the feed twice -- there might be more than one avenue causing the duplicate post issue.

[APP-11] Can't copy & paste in posts

I've looked into this and discovered that text-selection in React Native isn't easy, which is unfortunate. We should either use a custom native element to support text-selection, or we should add an easy flow to copy the full text of the post.

Profile bios get cut off

Saw Feross's bio ends in "..."

This violates user expectations because there's no way to see the rest of it, and no preview that tells you it'll look like this.

Instead, the bio field should tell the user when they've run out of characters, and impose a hard cutoff.

C91A2C45-D30B-4F47-84F3-D9BC31E2A161

Photo crop is unwieldy

The photo crop technically works, but it's awkward and unwieldy. I think it's fine to leave crop up to users, but we should try to make it nicer.

My main complaint is it's hard to resize the default square crop box, especially horizontally. Often I'll take a screenshot and pre-crop it down to just the line of text I want. This produces a long rectangular picture, and the default square crop box only gets the very center of it. It's then very hard to drag the left & right edges of the square crop box out to fit my horizontal screenshot.

[APP-477] DMCA flows

Need tools for:

  • Reporting DMCA violations (app)
  • Handling the full DMCA report & appeal process (app & admin)
  • Applying moderation labels accordingly (protocol)

APP-477

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.