About Hoshino

A small app, made carefully, by one person who wanted it to exist.

Hello

Hi, I'm ZEROSICX. I love learning Japanese, and I have tried a lot of apps along the way. Most of them were either too slow, too complicated, or padded with things I never asked for. I would open one to check a word and leave ten minutes later without having learned it.

I'm at an intermediate level, so the thing I care about most is building vocabulary. I wanted a dictionary that is quick to search and honest about what it shows, and a study tool that quietly picks up the words I meet, without asking me to manage anything. So I made Hoshino: a simple, easy-to-use app that makes that loop more efficient, and that I actually enjoy opening.

I build it in my free time and I'm listening. The goal is as many genuinely useful features as possible, each one bringing real value without adding complexity. A place to send feature requests is coming soon. Until then, thank you for trying it.

ZEROSICX

Privacy

Hoshino has no accounts and collects no personal data. The words you search, the lists you make, your study progress and any text you paste into the reader all stay on your device. Nothing is sent to me.

The one thing the app does send is an update check. It tells Expo's update service the operating system, the app version and a random identifier created for this installation, so the right update can be delivered. That identifier is not linked to you or to anything you do in the app, and nothing else is sent.

The app asks for no permissions beyond network access for those update checks. If you delete the app, all of its data goes with it.

Accounts and optional sync across devices may come later. If they do, this page and the privacy policy will say exactly what is stored and why, before it ships, and the app will stay fully usable without an account.

The full text is in the privacy policy.

Sources and licences

Hoshino is built on open dictionary data. These are the projects it depends on, with thanks to the people who maintain them.

  • JMdict

    Japanese to English vocabulary CC BY-SA 4.0
    This site and app use the JMdict/EDICT dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

    JMdict-EDICT Dictionary Project

  • KANJIDIC2

    Kanji readings, meanings and metadata CC BY-SA 4.0
    This site and app use the KANJIDIC2 dictionary file. This file is the property of the Electronic Dictionary Research and Development Group, and is used in conformance with the Group's licence.

    KANJIDIC Project

  • Tatoeba

    Example sentences and translations CC BY 2.0 FR

    The example sentences in every entry come from the Tatoeba community's collection of sentences and their translations.

    tatoeba.org

  • yomitan-jlpt-vocab

    JLPT levels for words CC BY

    By stephenmk, built on Jonathan Waller's JLPT vocabulary lists. It is how the app knows which level a word belongs to.

    github.com/stephenmk/yomitan-jlpt-vocab

  • kanji-data

    JLPT levels for kanji MIT

    By David Gouveia. It is how the app knows which level a kanji belongs to.

    github.com/davidluzgouveia/kanji-data

The JMdict and KANJIDIC2 files are made available under CC BY-SA 4.0 by the Electronic Dictionary Research and Development Group. Read the EDRDG licence.

How it was built

Hoshino is written once and runs on Android, iOS and the web, using Expo and React Native. The dictionary is a pre-built database that ships inside the app, with full-text search already indexed, so a lookup never needs a connection. Flashcards are scheduled by FSRS (through the ts-fsrs library), a modern spaced repetition algorithm that works out when you are most likely to forget a word and shows it to you just before then.

The reader does not use a separate language model to split text into words. It leans on the dictionary itself: it finds every word the dictionary could recognise at each position, then picks the split that scores best. That split is checked against a benchmark of sentences marked up by hand, and the search ranking is checked against a benchmark of its own, so a change that makes either one worse shows up before it reaches the app.

I build Hoshino in my free time, with AI-assisted development, and I write the design decisions down as the project goes so the reasoning behind each one is not lost. If something feels off, it is probably a decision that deserves a second look, and I would rather hear about it.