Why I built Kalima
English isn’t my first language, and I’ve been learning languages for years. Along the way, I’ve tried different techniques, including reading books, stories, and articles in the language I’m learning.
Reading gives me something meaningful to learn from, but it also raises questions. How is this sentence pronounced? What does this word mean here? And how can I remember it after I’ve finished reading?
I built Kalima to connect those steps.
While reading, I can listen to a word or sentence with natural-sounding pronunciation. When I encounter an unfamiliar word, I can look up its meaning in the context of the sentence. I can then save that word together with its original context, building a personal vocabulary collection from material I care about.
Inspired by Anki, Kalima uses spaced repetition to turn those discoveries into ongoing practice. Reviews adapt to what I remember, helping me retain words over time. I can also practise saying the sentences myself, bringing speaking into the same learning experience.
That became the idea behind Kalima: read something you care about, hear how it sounds, understand it, practise it, and remember what you learn.
I started by building the app I wanted to use myself. Now I want to share it with other people learning languages.
What Kalima does
Kalima turns books and documents into a focused language-learning experience. Read your own material, look up unfamiliar words in context, and save vocabulary with its original sentence. Spaced repetition brings those words back for review.
Design and learning
Kalima connects reading, listening, contextual lookup, and vocabulary review through a simple interface. Interactive onboarding lets learners try the core workflow themselves. Sentence mode supports focused reading and listening, while vocabulary pockets organize saved words with a playful visual touch. On the home screen, quick access to reading progress and a daily review nudge make it easy to continue learning.
Engineering challenges
Bringing different kinds of content into one reader
A large part of early development went into making books open and behave reliably. Kalima needed to handle EPUBs, PDFs, Markdown, plain text, web articles, and scanned pages. Each source brings different formatting and structure, which makes building a consistent reading experience difficult.
Beyond importing content, I spent considerable time on page navigation, sentence mode, startup speed, and performance. Getting from “the book opens” to a reader that feels smooth and comfortable required repeated testing and refinement.
Making listening work naturally alongside reading
I wanted learners to hear natural-sounding speech, so finding a high-quality text-to-speech provider took time. Voice quality was only one part of the challenge: I also needed reliable sentence splitting, word highlighting, adjustable playback speed, and audio controls that felt comfortable inside the reader.
I had to think through generation costs and repeat listening, including whether a character-based credit system would make sense. Audio caching became an important part of the solution, allowing previously generated sentences to be replayed without generating the same audio again.
Keeping a learner’s progress together
Sync was another substantial challenge. Kalima Pro needed to carry more than books and saved words across devices. Reading progress, reading and study time, and vocabulary review history all contribute to a learner’s ongoing experience.
Making those pieces work together reliably took significant effort. The goal was for someone to return to their material and continue learning with their progress intact.
What I learned
Kalima is the first app I’ve built and released as my own product, and my first step into entrepreneurship.
My biggest lesson is that an idea becomes clearer through the work of building it. I started with a rough picture of what I wanted. As I developed and used the app, I began to understand which features belonged, which ideas to leave out, and how the experience should fit together.
This was especially true of the design and user flow. Decisions that seemed unclear at the beginning gradually found their place, like pieces of a puzzle. Each iteration helped me see the product more clearly.
I learned that I don’t need every answer before starting. I need enough direction to take the first step, then the patience to experiment, learn, and keep refining. The path reveals itself as I walk it.
What I’m proud of
I’m proud of turning a problem from my own language-learning experience into a product I want to use and share.
After trying other apps in this space, I had a clear sense of the experience I wanted: useful learning tools, natural-sounding audio, thoughtful design, and an interface that feels simple and intuitive. Bringing those things together became my standard for Kalima.
My ambition is to build the best experience I can for people who learn languages through reading. The most satisfying part is seeing that intention take shape in a working product—something that solves a real problem and feels enjoyable to use.
Kalima is still early in its journey, but I’m proud of its foundation and motivated to keep improving it for the people who use it.
Built With
- revenuecat
- swift
Log in or sign up for Devpost to join the conversation.