Giter VIP home page Giter VIP logo

twitter-feed-algorithm's Introduction

Twitter Feed Algorithm

TypeScript code exploring what an open source version of Twitter's algorithmic feed might look like.

Intro

This repo contains code samples for a series of articles I'm working on with the aim of exploring what “open sourcing Twitter's algorithm” might look like from a more practical perspective.

Goals, Non-Goals, and Caveats

  • We are only focused on Twitter.
    • We will not consider the more general space of algorithmic recommendation engines or other social networks.
  • We are only focused on the Twitter's core algorithmic feed.
    • Other algorithmically-generated recommendations such as “Who to follow”, “Topics you may be interested in”, “Search”, “Trending”, etc are all out of scope for now.
    • Any work towards open sourcing aspects of the Twitter’s core feed algorithm are likely to naturally extend to open sourcing these other recommendation algorithms in the future.
  • We are only focused on high-level business logic and pseudocode.
    • Our goal is to drive a more transparent discussion around the Twitter feed’s core business logic and data models without worrying too much about the underlying engineering complexity.
    • The engineering challenges inherent in running a global, low-latency, highly reliable production system like Twitter are immensely important in practice but will be considered mostly out of scope for the purposes of this discussion.
    • It’s important to keep in mind, however, that there is an incredible amount of engineering complexity hidden behind a platform like Twitter. We won’t be diving into databases, services, machine learning techniques, networking, infrastructure, devops, etc.
  • We will defer to the core data models from v2 of Twitter’s public API wherever possible, including the Tweet and User objects.
    • Twitter likely uses many different abstractions for these resources under the hood, but for the purposes of an open source algorithm, we should remain consistent with the resource models published by the latest version of their public API.
  • This project uses TypeScript because it's what I'm most comfortable with, but it could easily be ported to other languages.
  • Any real open source solution would need to come from Twitter itself.
    • E.g., you can consider this project for education purposes only.

License

MIT © Travis Fischer

Support my open source work by following me on twitter twitter

twitter-feed-algorithm's People

Contributors

transitive-bullshit avatar

Stargazers

 avatar

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.