Understanding Scribe: A Newcomer's Guide to Smart Language Learning Keyboards

Have you ever been typing a message in a foreign language and gotten stuck? Maybe you knew the word "gehen" in German but couldn't remember if it should be "geht," "gehst," or "gehe" for your specific sentence. Or perhaps you were writing a simple email in French to a friend, just for show-off, and couldn't recall if "table" was masculine or feminine. These moments of uncertainty can make language learners feel less confident about communicating.

If you've experienced this frustration, you're not alone—and you're exactly the kind of person that Scribe was created to help.

Who We Are: The Scribe Community

Scribe is a community of language enthusiasts, learners, and developers who believe that technology can help people communicate with confidence. We're an official Wikimedia project, which means we're part of the same family as Wikipedia—focused on making knowledge freely accessible to everyone.

Our community welcomes contributors of all levels, from seasoned developers to newcomers who are just starting their open-source journey. What unites us is a shared belief that language learning should be supported by intelligent, accessible tools.

The Problem We're Solving

Traditional language learning apps often exist in isolation—you study vocabulary in one app, practice grammar in another, but when it comes time to actually write something, you're on your own. Language learners need help exactly when they're trying to communicate in real-world situations: typing messages, writing emails, or posting on social media.

This is where Scribe steps in.

What Scribe Does: Smart Keyboards for Language Learners

Scribe creates intelligent keyboards that help language learners as they type. Instead of switching between apps, the help comes right to where you're writing. When you type a German noun, Scribe shows you its gender with color coding. When you need to conjugate a verb, Scribe suggests the right form. It's like having a helpful language teacher built into your keyboard.

How Our Ecosystem Works Together

The Scribe project consists of several interconnected repositories, each serving a specific purpose:

- Scribe-iOS: The actual keyboard app that users can download and install on their iPhones.

- Scribe-Android: The Android version currently in development.

- Scribe-Desktop: The Desktop version planned for future development.

- Scribe-Data: The behind-the-scenes tool that gathers language information from Wikidata.

- Scribe-Server: The backend infrastructure that makes everything work together seamlessly.

The Magic Behind the Scenes: Wikidata Connection

What makes Scribe special is that it's powered by Wikidata—think of it as Wikipedia's database of structured knowledge. Instead of a small team manually entering language rules, Scribe taps into the collaborative work of thousands of linguists and language experts worldwide. This means our keyboards can support multiple languages and stay updated with real linguistic data.

This connection to Wikidata is achieved through something called SPARQL queries, which allow us to extract exactly the linguistic information we need to help users.

Why People Love Using Scribe

Language learners choose Scribe because it helps them feel more confident when communicating. Instead of second-guessing themselves or avoiding certain words, they can write naturally knowing they have support. Privacy-conscious users also appreciate that Scribe doesn't collect their typing data or require invasive permissions.

What Excites Me About Working on Scribe

What excites me most about working on Scribe is the multifaceted impact of our work. I'm passionate about helping language learners, working with linguistic data, and contributing to open-source projects where I can see the real impact on users. As someone interested in developing intelligent language applications, I found Scribe to be an excellent cornerstone for understanding how AI can support open language development. Every feature we build has the potential to help someone communicate more confidently in their target language.

My Learning Journey: New Concepts I've Discovered

When I first started with Scribe, I had to learn about several new concepts:

- SPARQL language: It's not that hard, but when you see the syntax for the first time, it looks like a lot! SPARQL is the query language we use to extract linguistic data from Wikidata.

- Conjugation: I learned about this fundamental linguistic concept and how it varies across different languages.

- Green workflows: I discovered how to create efficient, environmentally-conscious CI/CD workflows that don't waste computational resources.

- The value of documentation: I learned how crucial well-documented systems are for newcomers. Clear documentation serves as our omnipresent guides, even when mentors are asleep!

- The importance of testing: I began to understand how to test systems properly and ensure they follow programming standards. Creating testable systems makes development much more reliable.

What Was Confusing: Honest Reflections

I'll be honest—at first, I found several things quite confusing:

SPARQL was initially very confusing. The syntax looked intimidating, and understanding how to structure queries to get the linguistic data we needed took time and practice.

The license header checker workflow puzzled me initially. I didn't understand why we needed it, but later I realized its crucial role in maintaining legal compliance across our open-source codebase. It automatically ensures that all our code files have proper license headers, which is essential for open-source projects.

Contributing for the first time was overwhelming. I'll admit, I was writing on pure intuition initially! Thank goodness for test cases that kept passing—they gave me confidence that I was on the right track.

Understanding the whole system took time. When I first joined, I didn't grasp how all the different repositories worked together. Now I have a much deeper understanding of how the data flows from Wikidata through our processing pipelines to the end-user keyboards.

The transition from writing Android tests to CI/CD workflows was confusing. Being asked to write Android tests first, then later being told to create CI/CD workflows for them, initially seemed disconnected. I later understood how these pieces fit together in the development lifecycle.


Join Our Community

If you're interested in linguistics, mobile development, data processing, or just want to help language learners worldwide, Scribe welcomes contributors of all backgrounds. Whether you're a seasoned developer or just starting out, there's a place for you in our community.

The beauty of contributing to Scribe is that you'll not only learn valuable technical skills but also contribute to a project that has real, measurable impact on people's lives. Every improvement we make helps language learners communicate more confidently.

Acknowledgments

I want to give a special shout-out to Andrew McAllister, Gautham Mohanraj, Henrik Thomasson, and MD Asiful Alam, who have been incredibly helpful throughout this Outreachy internship. Extra appreciation goes to Andrew for bringing up this amazing initiative and creating such a welcoming environment for newcomers.


Ready to start your journey with Scribe? Check out our repositories on GitHub and join our community discussions. We're excited to see what you'll bring to the project!

16
Subscribe to my newsletter

Read articles from Akindele Michael directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Akindele Michael
Akindele Michael