At Legible Labs, we love learning languages. We also love Twitter.

In 2021, we realized that Twitter is a great place to discover new words, phrases, and culture in the languages we were learning.

The fresh, real-world, relevant content on the platform made for an even more engaging experience than some of the most popular language learning apps on the market!

To really learn effectively, though, we found we needed a few things:

  • A good dictionary, to help us understand new words and phrases
  • Spaced repetition, to help us remember what we discover
  • Content recommendations designed specifically for learners, to help us grow our vocabulary and cultural knowledge

Legible is a mobile Twitter client built to meet those needs.

How we built it

Legible is a React Native app with a Node backend and Postgres database. The backend makes all calls to the Twitter API, and uses a mix of V1 and V2 endpoints.

Legible's dictionary and recommendation services are built with FastAPI, spacy, kubeflow pipelines, BigQuery, and Postgres.

Legible uses the V2 Search and Timelines endpoints. It runs compliance jobs regularly, and respects account-level mutes and blocks.

Legible supports reading, watching, and studying content on Twitter. It currently does not have support for publishing tweets, publishing replies, sending or receiving direct messages, or Spaces.

Challenges and Accomplishments

Legible is a labor of love. Each member of our small team of 3 has an other job. We've worked nights and weekends on this project for months.

Testing instructions

Legible is currently in Alpha on iOS. For instructions for testing with TestFlight, see the README of the linked repository.

What's next for Legible

Legible supports French, German, and Spanish for native speakers of English.

Next steps on our roadmap:

  • A Beta release
  • Adding support for more languages
  • Personalized, pedagogically aware content recommendations... a recommender system that knows you're learning a language, and helps you do it more effectively!
Share this project: