Chapter 1
Core theme
NipponDaily teaches Japanese through linguistics and data. Each day opens one word from the JLPT N5–N1 lists with what its sources say: its reading, meaning, pitch accent, example sentences and kanji and, where a dictionary records how it was built, its morphemes, its layer of the vocabulary, the processes that shaped it and the Wiktionary lines that back every claim.
What the app is
The layers are 和語 (Native Japanese), 漢語 (Sino-Japanese), 外来語 (Loanword) and 混種語 (Hybrid); the processes are compounding, rendaku, clipping, ateji and the like. Reading across the words, by counting and grouping what the entries already say, shows the patterns in the language itself.
A wrong reading, meaning or origin is a bug, so every claim comes from a cited source and none is written from memory.
Automation and citation
The app is meant to be checked, not trusted. Automation: every reading, meaning and origin is built by scripts from the sources and verified by tests, so none depends on what a person remembers. Source citation: every claim about a word names where it came from (only the one-line headline is written by hand, and it is a hook, not a claim), so a reader can follow the link and check it, and where a source cannot back a claim the app says it has no data rather than guess. It was made by someone still learning Japanese, which is why it works this way.
The vocabulary is the JLPT lists, on purpose
Every word comes from the community JLPT N5–N1 lists, and from nowhere else. The lists are a trusted, widely used starting point, and the app keeps to them rather than widen the pool to find more words. Every list word is planned, one a day: first the words chosen for their origin, then the rest, easiest list first, and last the words that share a spelling with an earlier one (後 あと, then 後 ご), easiest list first again. What an entry shows depends on what the sources hold: an origin only where the pinned dump has an Etymology section for the word's reading, a pitch accent only where the accent list and a second dictionary agree, and so on. A section the sources have nothing for says we don't have the data for this section instead of guessing or disappearing.
What every word has, and what only some do
Every word has a reading, a meaning and a JLPT level. Everything else appears only where a source holds it, so each part of an entry reaches a different share of the words. The app began as an etymology app and the vocabulary grew past what the etymology sources cover, which is why it leads with the first group and treats the origin as a depth, not a promise. The counts are those of the words that have opened, read from the API.
| Part of an entry | Where it comes from | Words that have it |
|---|---|---|
| Layer of the vocabulary | The spelling, KANJIDIC2 readings, JMdict's loan source or Wiktionary's text | 7618 of 7830 (97%) |
| Pitch accent | Kanjium's accent list, where UniDic agrees | 6605 of 7830 (84%) |
| Example sentences | Tatoeba | 5728 of 7830 (73%) |
| Processes | Wiktionary's text or JMdict | 2315 of 7830 (30%) |
| Parts (morphemes) | Wiktionary's text, or KANJIDIC2 for kanji | 1455 of 7830 (19%) |
| Quoted origin | Wiktionary's Etymology section | 2964 of 7830 (38%) |
Time is the theme
Time is how the app is styled and how it is used. It runs on two clocks.
The year clock: the four seasons
The look of the site follows the Japanese calendar: spring, summer, autumn and winter. It repeats every year, so it never runs out. See Seasons.
The learning clock: one word a day
Each date has one word, and which word a date shows depends only on the date, so any reader gets the same complete page. The words are finite, so when they run out the clock goes round again: a lap (周) starts from the first word, the day after the last one, and the home page says which lap it is on. Only the home page and the calendar repeat words (the calendar marks them ↻); every other page and every explicit date stays on the first lap, where each word has its own day, and each entry says when it was first opened.
The loop is intended, not a stopgap. The words keep coming round in the order they first opened, so a reader meets every word that has opened again and again, and the app never reaches for words outside the lists to avoid a repeat.
Principles
Every new feature is checked against these seven.
- No reader data. No accounts, no progress, no streaks. Nothing about a reader is stored by the app: only a colour mode, a season pick and a music volume stay, in the reader's own browser. The server sees a request only to answer it (a page, a day, a search) and records nothing of it; the rate limiter's count per address lives in memory for 60 seconds and is written nowhere. The site is the same for everyone.
- Fits whenever a reader comes. Daily is ideal but never required. Every page stands alone, nothing assumes yesterday was read, and the home page always shows a word.
- The page is never empty. The word list is finite, so the app starts another lap from the first word rather than run out.
- Derive, don't claim. Data pages and time labels read what the entries already say. They add no new fact about a word.
- Only what has arrived. A word is shown only once its day has come.
- Fits every device. The app is built to fit every device, from a narrow phone to a wide desktop screen. Pages are laid out mobile-first and flow to the width they are given, wide figures and tables scroll inside their own box instead of widening the page, and nothing important hides behind hover, so touch, keyboard and screen-reader readers get the same pages.
- Nothing leaves the app. Everything the app offers is read in the app. It exports nothing (no download, no file for another tool), sends nothing about a reader to anyone (no analytics, no sign-in, no form that collects anything; the search box only asks the app for its answer), loads no third-party script, font or embed, and keeps the data it shows committed beside the code. The server keeps nothing outside its own process. A link to a source is a citation the reader may follow, not something the app sends. A page that other sites preview is still served by the app, and no one is told who read it.