Home

I want to read Japanese without stopping for kanji

Published October 13, 2026

Updated October 13, 2026

The Wall of Kanji

Over a decade of studying Japanese. Passed the JLPT N1 twice. Worked at a company in Japan where all my colleagues were Japanese. No trouble communicating in Japanese.

These are the current credentials of me, a Japanese learner, who has worked pretty hard and is reasonably proud of what they've achieved. Yet there's still one area of Japanese that feels like a major obstacle: reading long Japanese texts containing kanji.

If you've ever studied Japanese, you can probably relate. As a foreign learner, you rarely encounter kanji in everyday life, and the sheer number of characters you need to learn can feel overwhelming. No matter how long or how hard you study, this barrier never seems to get much lower. As you advance, you simply encounter a new set of difficult kanji at each level.

It's exciting to recognize more and more kanji as you study, but it's equally frustrating when unfamiliar characters keep stopping you in your tracks despite all that effort. Add the cases where you understand what a character means but don't know how to pronounce it, and you end up pausing far more often than you'd expect while reading a single article. Even when I want to practice reading diligently, the experience can make me feel almost illiterate, which isn't exactly motivating. I might finally sit down determined to read something, only to spend so much time looking up unfamiliar kanji compounds in a dictionary that I lose track of what I'm reading. Eventually, the whole thing starts to feel overwhelming, and I give up.

It's not that I haven't tried. I genuinely want to become a fluent reader of Japanese, so I deliberately visit Japanese websites to expose myself to more written Japanese. But I get tired quickly and can't keep reading for long. I've even bought scripts from my favorite Japanese dramas and autobiographies of film directors, full of ambition to read them. In the end, though, they've rather spent most of their time just sitting on my bookshelf.

Still, these small efforts have gradually made Japanese texts feel much more familiar than they used to. But I can't help wondering: Is it really possible to overcome this wall completely?

Why We Need Furigana

Even native Japanese speakers aren't born knowing how to read every kanji, so there's already a way to help people learn their pronunciations. It's called furigana, which involves placing small hiragana characters above kanji to indicate how they're read. Furigana is fairly common in everyday life, especially in Japanese learning materials, and occasionally appears on websites as well.

This kind of pronunciation annotation is used in East Asian languages that use Chinese characters such as Japanese and Chinese. There's even an HTML element called ruby specifically designed for annotating the pronunciation of characters. In Chinese, pronunciations are indicated using Pinyin (拼音), which differs from Japanese furigana in that it uses the Latin alphabet. However, the same ruby element is used to implement these annotations with semantic HTML. Here's an example.

// Japanese
<ruby lang="ja">
  日本語
  <rt>にほんご</rt>
</ruby>

// Chinese
<ruby lang="zh-CN">
  汉
  <rt>hàn</rt>
  字
  <rt>zì</rt>
</ruby>

In Chinese, these annotations tend to be used primarily for educational purposes, whereas in Japanese, they're more widely used. Beyond educational materials, furigana appears in manga, novels, news, games, and various other types of content whenever necessary, helping even native speakers read unfamiliar kanji or names.

Personally, I don't know any Chinese at all. My native language, Korean, also contains many words derived from Chinese characters, but since Hangul, the Korean alphabet, has become the standard writing system, even when Chinese characters are used, their readings are typically written beside them rather than above them. Perhaps that's why furigana feels like a distinctive feature of Japanese to me.

Despite working as a web developer, I had never even heard of the ruby element until I started building Furigana.

The Connection to the Ruby Programming Language

As a side note, there's something I find particularly interesting as a developer: the programming language Ruby also has an indirect connection to the HTML ruby element used for furigana.

It's well known that Ruby's creator, Yukihiro Matsumoto, is Japanese. When naming the language, he reportedly drew inspiration from another programming language, Perl. Since Perl sounds like "pearl," which is a gem, he wanted to name his new programming language after a gem as well. He eventually chose Ruby, inspired by a colleague's birthstone.

Later, he discovered several interesting connections between pearls and rubies, which made him feel that Ruby was a fitting name for a language intended to be newer and better than Perl. For example, pearl is the birthstone for June, while ruby represents July. Another example comes from the 19th-century British printing industry, where type sizes were conventionally named after gems: pearl referred to 5-point type, while ruby referred to 5.5-point type.

Coincidentally, when this printing terminology was introduced to Japan, the term "ルビ" (rubi) became established. Even today, the Japanese publishing industry uses the expression "ルビを振る" (to add ruby annotations) to describe adding phonetic readings to kanji. This printing term eventually became the origin of the HTML ruby element.

Why I'm Building Furigana

After working as a web developer for about six years, I reached a point where I began reconsidering my career path. From the very beginning, I knew I wasn't naturally gifted at programming. Even so, I enjoyed it, worked hard, and eventually became capable of doing many things I once thought were beyond me. But growing as a developer was never my ultimate goal. I had always wanted to build a product of my own someday, even if my skills weren't quite there yet.

Around that time, AI began fundamentally transforming the way developers work. As I explored what AI was good at, I realized its strengths were exactly where I lacked the most: technical knowledge and programming skills. On the other hand, I felt confident I could bring something AI lacked: defining what to build, how to build it, and most importantly, why it matters, then breaking that vision down into smaller tasks and piecing them together to bring it to life.

Why Furigana?

At first, I wanted to start with a simple toy project that would solve a problem I had myself. That's how I landed on furigana. Despite studying Japanese for over ten years, I still felt helpless whenever I encountered unfamiliar kanji, and I wanted to do something about it. Of course, this wasn't a problem that could be solved overnight. As with learning any language, there's no substitute for consistent, extensive exposure to the language. But I thought it would be helpful to have a tool that could make that process less exhausting.

Several furigana generators already existed, and I'd used some of them myself when needed. However, because they relied heavily on dictionary-based readings, they often produced pronunciations that didn't fit the context. I assumed that LLMs could solve this problem relatively easily, so I expected to build something quickly. But generating natural, context-appropriate furigana turned out to be more challenging than I anticipated.

Even the most capable models couldn't completely avoid critical errors in determining readings, and the quality deteriorated further as the input grew longer. Cost was another constraint, so simply switching to more powerful models wasn't a viable solution to every problem. Breaking the input into smaller chunks meant choosing between including a large amount of context in every request or sacrificing some context to keep costs under control. I experimented with both approaches, but neither produced fundamental improvements.

And input length was only one part of the problem. Building a reliable system without compromising either cost or performance required considering many other factors. I started out thinking, "With an LLM, this should be quick," and I did build the MVP fairly quickly. But I soon realized that bringing it to a production-ready level, where I could consistently manage both quality and cost, would require much more work. This included repeated experiments to identify the optimal instructions and processing units for the model, as well as improving performance through pre- and post-processing.

Given how frequently AI models are being updated, I'm also exploring how to manage these ongoing experiments and improvements as efficiently as possible. I plan to share a more detailed look at the furigana generation pipeline in a future post.

Why a Web Service?

If all I needed was a feature that automatically adds furigana, I could simply build a browser extension. I didn't consider building a desktop or mobile app because I wanted the experience to integrate naturally with web browsing. However, web browsing tends to be a fragmented experience, so I thought there should be a way to save and manage the Japanese texts I'd added furigana to. That would make it more meaningful and extensible as a learning tool. Still, the idea of building a simple website just to manage furigana generation history felt somewhat lacking. Of course, that's where I would start, but I began to see the potential to expand it into a more comprehensive Japanese learning platform.

I enjoy watching content from various Japanese creators. One day, I noticed that a creator was uploading scripts for every video to Patreon so subscribers could use them for studying. That made me think it would be great to have a platform like that, specifically for Japanese learners. I envisioned a community-driven content platform where people could discover Japanese creators producing original content from their unique perspectives and engage with them. Later on, learners could also participate as contributors by sharing their own writing.

Ultimately, Furigana starts with automatically adding contextually accurate furigana to Japanese text, but its broader goal is to turn the mental burden of reading Japanese into curiosity and excitement about the content itself. I want to create a learning experience where reading Japanese feels as natural and enjoyable as keeping up with your favorite Japanese dramas or anime. You could think of it as a community-driven content platform like Note, Zenn, or Qiita, but for Japanese learners. Or, more broadly, a creator-driven content platform like YouTube, but for Japanese learners. I started thinking about this vision while considering what could set Furigana apart from existing services like Satori Reader, which describes itself as "Netflix for studying Japanese."

As a side note, one possibility worth exploring beyond the web is that people might actually struggle with reading Japanese text even more often in the physical world. There seem to be quite a few cases where the typography itself makes the text difficult to read, along with challenges inherent to the Japanese language. Japanese books, in particular, are often printed in the traditional tategaki (縦書き) format, where text runs vertically and pages turn from right to left. All the Japanese books I own use this format, so figuring out how to make them easier to read could be an interesting problem to solve.

Why Japanese?

Finally, I took some time to think about why I've chosen to focus on Japanese in particular when it comes to language learning. English, for example, is in a league of its own among foreign languages, so there are already countless services dedicated to learning it. It's also easy for people to understand why such services are needed. Almost everyone agrees that English is something worth learning, and that the better you are at it, the better. But when someone chooses to focus on a second foreign language like Japanese, I think people naturally expect a more specific and compelling reason behind that choice.

That's why simply saying, "I needed it while studying Japanese," feels a little vague. More than that, I'm building Furigana because I believe it's something I'm uniquely positioned to do. I understand the challenges of learning Japanese as a foreigner as well as anyone, yet I find the process of solving those problems relatively less daunting. For one thing, Korean, my native language, shares the same basic word order and similar grammar with Japanese. The two languages also have much in common in their vocabulary, thanks in part to their shared background in the Chinese-character cultural sphere. This gives me one of the most advantageous linguistic starting points among people learning Japanese as a foreign language. It's much like how Europeans often find it relatively easy to learn the languages of neighboring countries.

More fundamentally, though, the experiences I've accumulated throughout my life have somehow kept drawing me toward a particular passion for Japanese. I studied Chinese characters diligently from an early age, thanks to my dad, who insisted that learning them was essential to becoming an educated person. When applying to a foreign language high school, while most other students wanted to enter the English track, I chose the Japanese track as my first choice and got in. Back at the dorm, I'd stay up all night watching Japanese dramas, careful not to get caught. I also devoted an unusual amount of effort to studying Japanese, even though it wouldn't help me get into college. After graduating from university, I headed to Japan without much of a plan and started looking for a job. I worked at a Japanese company, overtime every day, and barely taking any days off. Even after returning to Korea and working as a developer, I kept studying Japanese because I didn't want to lose my connection to the language. And eventually, when I came to believe in God, I realized that none of these experiences had come about through my own will or ability, but that they had all been part of a journey God had been guiding me through.

The Connections I Hope to Make Through Japanese

I believe what comes next will unfold in much the same way. This past September, an unexpected opportunity brought me to Osaka, where I got to present Furigana to a group of Japanese creators using a pitch deck. I still vividly remember the faces and warm smiles of those who greeted me, exchanged business cards with me, and showed interest in Furigana. They left a deeper impression on me than I'd expected. I returned home hoping we'd meet again soon, and now I have another opportunity to visit Osaka in late November and give a more in-depth presentation. This time, I'd like to spend more time talking with the creators and, if possible, find ways to connect with international learners of Japanese who could become future users of Furigana.

I feel that Japanese is ultimately just a means to an end. What I'm really looking forward to is building connections with people in Japan and with learners of Japanese from other countries through Furigana. I believe God is the true head of Life is Worship Studio, where I serve as a representative, and that He is the one who has planned all these things and is faithfully bringing them to pass. That is why I know exactly why this work has been entrusted to me: to be a channel through which everyone I meet through Japanese can come to know just how much God loves them. It may be a reason the world doesn't understand, but it is the most honest one I can give. I'll continue sharing more about Furigana, not just from a technical perspective but from many other angles as well, so if any of this interests you, I'd be grateful if you followed along.

What no eye has seen, nor ear heard, nor the heart of man imagined, what God has prepared for those who love him

1 Corinthians 2:9