Older releases
0.13.2 (2026-08-23)
Fixes
- Sentences: fixed a bug where the “recommended for you” list could treat a word as one of the commonest in Japanese on the strength of a reading almost nobody uses for it. 外 counted as the 6th most common word because it is read と in one set phrase, when the word itself is the 342nd, and 地震 counted as the 20th because of a single idiom that reads it ない. 349 words carried a rank that belonged to another word, and they crowded out the ones you would meet sooner.
0.13.1 (2026-08-23)
Fixes
- Sentences: fixed a bug where the “recommended for you” list could sit on its loading outline forever if preparing it went wrong, retrying quietly every two seconds for as long as the tab stayed open. It now tries a few times, then tells you it could not be built and offers you the button to try again.
- Sentences: fixed a bug where several readers opening Sentences inside the same second could each start their own copy of the work that prepares the “recommended for you” list, instead of sharing one, which is what made the page slow for everyone when the list was cold.
- Sentences: fixed a bug where the “recommended for you” list could recommend a word as if it were far more common than it is, because it shares a spelling with a common word in a form nobody actually writes. 七 read as the fourteenth most common word in the corpus when it is really the 3,681st, and words like it crowded out the ones you would meet sooner.
- Sentences: fixed a bug where a “recommended for you” list prepared at the exact moment the sentence corpus was being rebuilt could come out empty or half the length it should be, and then stay that way until something else happened to change it.
- Sentences: fixed a bug where reading in Spanish hid 81,647 example sentences that do carry a Spanish translation, so the “recommended for you” feed and the examples on a word page had barely a third of the corpus to choose from, and often had nothing to show you at all.
- Sentences: fixed a bug where adding a batch of words at once, a whole page of search results or a curated list, did not take those words out of the “recommended for you” feed, so it went on teaching you words you had just saved to your deck until the next day.
- Sentences: fixed a bug where the “recommended for you” feed could hold on to a list that was already out of date: a word saved while the list was being prepared, or a dictionary update landing at that same moment, was ignored until something else happened to change it.
- Sentences: fixed a bug where the “recommended for you” feed looked at only the first 20,000 example sentences in the corpus, in the order they were imported, instead of all 248,000 of them, so a word whose only readable sentence happened to have been imported late was never offered to you at all. With a deck of 5,000 words that was 20,000 of the 61,182 sentences you could actually read.
- Sentences: fixed a bug where the “recommended for you” feed was worked out while you waited for the page, which on a busy morning meant thirty seconds of blank screen and sometimes a gateway error. It is now prepared in the background: the page arrives at once and the list drops in a moment later, and it no longer takes the whole site down with it when several readers open it at the same time.
- Sentences: fixed a bug where answering a review threw away your “recommended for you” list, so the feed had to be rebuilt from scratch every time you opened Sentences after studying, which is exactly when you would open it. The list is now kept until something that really changes it happens: a new word saved, a word edited, or a word learned or shelved.
0.13.0 (2026-08-23)
Highlights
- Changelog: this page now shows the most recent releases and keeps everything older on a page of its own, one link away at the bottom. All thirty-eight releases used to arrive at once, and every release we shipped made that heavier; what you land on now is about a third of the size, and nothing has been dropped.
- Dictionary: a page of search results now arrives about a quarter smaller. The analytics and error-reporting scripts and the search bar’s list of filters moved out of the page into files your browser keeps between visits, and the numbered result list behind the phone menu is sent once instead of twice. The two scripts that measure how fast pages load are no longer fetched from an outside CDN either: they come from Shirabe itself now, which is about 30KB less on a first visit and one less company your browser has to talk to. Same page, same results, less of it to download on every search.
- Every page: the phone menu and the tags-and-labels book are now fetched the moment you open them instead of riding along with every page, and the list your browser uses to find the site’s own scripts is now about a quarter of the size it was, with the repetition taken out of it. A search page is lighter over the wire and a third smaller before compression, which is time off every page for anyone signed in. The menu, the book and the confirmation boxes all behave exactly as before.
- Every page: the small icons beside buttons, menus and labels are now drawn at the size the page asks for, which for around 150 of them is a step smaller than before. A default was overriding every one of those sizes and painting them all at 20 pixels, so an icon meant to sit quietly next to a line of text came out as tall as the text. Nothing has moved or gone missing, the icons just take up the room they were meant to.
- Dictionary: pitch accent is now drawn the way a Japanese dictionary draws it, a line over the high kana with a step down where the pitch falls, instead of dots joined by a sloping line. The kana, the number beside them and the legend that number opens are all unchanged.
Fixes
- Settings: fixed a bug where opening settings, or turning a preference back to its default, left the site treating you as a customised reader forever after, so your pages were built fresh in Finland on every visit instead of being served from the copy nearest you. Now a preference set to its default is simply not stored, and pages load as fast as they do for everyone else.
0.12.1 (2026-08-22)
Highlights
- Dictionary: a search typed in letters now says which kana it read them as, so inu tells you it looked up いぬ. Quote the word (“inu”) and it searches the letters and their meaning instead, which is what you want when the word is also English or Spanish.
Fixes
- Your dictionaries: when we re-read your uploaded dictionaries after a fix to how they are parsed, they are now re-read one at a time, and each is tappable again before the next one starts. Re-reading twenty-five of them used to take the words in all of them out of reach at once, for as long as it took to work back through the queue.
- Dictionary: fixed a bug where holding a finger on a definition opened the link menu for the word under it instead of selecting the text, so on a phone there was no way to highlight or copy a definition or an example sentence at all. Every Japanese word is its own dictionary link, and a phone hands a long press to the link before it hands it to the page.
- Dictionary: fixed a bug where copying Japanese with furigana took the readings along with it, so 日本語を勉強する pasted as 日本語にほんごを勉強べんきょうする.
0.12.0 (2026-08-22)
Highlights
- Your dictionaries: a dictionary’s name above its meanings now collapses that dictionary on the card you are reading, so you can put one book aside and read the other two against each other without scrolling past it. It comes back on the next search: which dictionaries you keep, and in what order, is still Settings.
- Your dictionaries: a dictionary you set to On hover now uncovers on its own. Cover two, and checking yourself against one no longer hands you the other’s answer at the same time.
- Your dictionaries: a dictionary is now named above its meanings on every word, not only on a word that several dictionaries answer. The ①②㋐ beside each meaning are the numbering that dictionary uses itself, so with one dictionary in your stack they used to sit there with nothing on screen to say whose they were.
- Your dictionaries: each dictionary in your stack now chooses how it shows its definitions: plainly, or covered until you hover, focus or tap the meaning. Put a Japanese dictionary on top and set the bilingual one to On hover, and a word card reads Japanese first with the translation a glance away when you want to check yourself. The eye on each row in Settings picks it, and hovering one sense uncovers the whole dictionary rather than a line at a time. Apps built on the API read the same setting, so a reader who covers a dictionary here has covered it wherever their stack reaches.
- Dictionary: pitch accent now has a plain row under the word instead of a headed section of its own standing between the word and its meanings, and on a numbered result the word starts on the same left edge as everything below it. The graph and its play button are the same, and the pattern’s name now lives in the tooltip on the number, which still opens the legend.
- Dictionary: More on a result now opens the rest of a word’s meanings where they stand, instead of taking you to that word’s own page. Paste in a sentence with two words you don’t know, and looking up the second one no longer costs you the first: the sentence stays on screen, and so does the place you had reached in it.
- Dictionary: a result card now shows the first three dictionaries you have stacked in full, every meaning each of them gives, instead of three meanings from the first one and a single line from the rest. With 三省堂国語辞典 under JMdict, 見る used to show three JMdict senses and keep all fifteen 三省堂 ones behind More. More now opens the dictionaries the card had no room for, never the rest of a dictionary it had already named.
Fixes
- Dictionary: a word the dictionary files one step down now resolves to it, instead of coming back with no entry at all: 倒せる is answered by 倒す (the verb it is the potential of), 対応力 offers 対応 and 力, お兄様 leads with 兄, and そうかー is か. Japanese builds words out of other words faster than any dictionary files them, and a subtitle is full of the results.
- Your dictionaries: fixed a bug where ハイブリッド新辞林 ran a word’s numbered meanings together into one, instead of listing them the way the dictionary prints them, so 生 read as a single paragraph with (1) to (5) inside it and its examples piled up at the end. The grammar the dictionary gives its second division (形動 on 生) was sitting on the last meaning of the first, and the divisions themselves are now numbered as the dictionary numbers them.
- Your dictionaries: a dictionary that divides a word twice over now keeps both. 精選版 日本国語大辞典 files これ under 代名 and then divides that into 他称, 自称 and 対称, and the inner division was wiping the 代名 the outer one stated: 1,227 of its words lost the grammar that way.
- Your dictionaries: 旺文社国語辞典’s ㋥, which it uses to point back at a word’s second division, is no longer read as a meaning of its own. 一刻 listed a meaning reading “は「一国」とも書く。”, and 84 words carried one of those.
- Your dictionaries: a word with more than twenty meanings now shows them all. The numbering continues ㉑㉒㉓ past ⑳, and those meanings were being read as part of meaning ⑳ rather than as their own: 明鏡国語辞典’s 上がる hid twelve that way, and it affected 1,245 meanings across eight of the dictionaries.
- Your dictionaries: デジタル大辞泉’s divisions (1️⃣2️⃣3️⃣) are now read as divisions rather than as meanings, so 生 no longer counts to ⑦ and then starts at ① again with nothing to say why, and the grammar each division states is back: 名・形動, 副 and 接頭 were being dropped entirely because the line that carried them held no definition.
- Your dictionaries: a dictionary that divides a word into parts of speech now shows those divisions. 広辞苑 splits 生 into 名 (seven meanings), 副 and 接頭 (three more), and only the middle one had a line of its own to print, so the seven read as a list indented under nothing and the card jumped to a division numbered 2. Each division now heads its own meanings, with the grammar it states written once above them instead of on every line.
- Your dictionaries: an arrow closing a definition (⇔旧制, →圧縮) now reads as a link under See also or Antonym, instead of printing as an arrow and a word inside the meaning itself. That is 29,439 meanings across 新辞林, 精選版, 大辞泉, 大辞林, 広辞苑, 三省堂, 岩波, 旺文社 and 明鏡, and a pointer that named two words now opens as two links instead of one dead one.
- Your dictionaries: fixed a bug where a 類語 link in 新明解四字熟語 opened nothing, because the word it names carried an invisible thin space from the page and no entry has that spelling.
- Dictionary: fixed a bug where searching a whole sentence ranked the words on the token strip once for every word on it, instead of once each, so pasting in a paragraph took several seconds to come back.
- Browser extension: fixed a bug where working out each word’s place on the page re-scanned the page from the beginning, instead of carrying on from the word before, so the longer the page the slower it got and a full one took seconds to colour.
- Search: a search longer than 200 characters now looks up the first 200 and tells you so, instead of trying to look up the whole thing and leaving you waiting several seconds for it. The longest search anybody actually ran last week was 108 characters.
0.11.6 (2026-08-21)
Fixes
- Every page: pages are served from the cache near you again. An analytics line in the page’s own template was attaching a session cookie to readers who did not have one, and a page carrying one is a page the cache will not keep, so every visit was being answered from the server in Germany.
- Your dictionaries: fixed a bug where a dictionary could stop part-way through making its words tappable and stay that way, so some of its definitions kept reading as plain text with nothing you could tap. Three dictionaries were left like that on 20 August. Work that stops is now picked up again within the hour.
0.11.5 (2026-08-21)
Highlights
- Connected apps: an app you connect now stays connected for a month at a time instead of renewing every hour, so the twenty-four renewals a day that were each a chance for the link to drop are now one a month.
- Connected apps: revoking an app is now the only quick way to cut one off. An app you revoke stops working at once, as before, but tokens already issued to a developer’s client keep working until they expire, up to a month, where they used to run out within the hour.
0.11.3 (2026-08-20)
Fixes
- Your dictionaries: fixed a bug where a dictionary that draws its section headings as small images listed those headings as meanings, and the commentary under each one as a meaning too. 明鏡国語辞典 ships in more than one build, and in the one that draws them, 食べる read “表現”, “語法”, “文語形” and “た・ぶ(下二)” as four of its meanings; they are now notes, as they already were in the build that writes the headings as text.
- Your dictionaries: a meaning that is really a pointer to another entry is now a link in 広辞苑 第六版 too. The sixth edition writes that pointer as ⇀ where the seventh uses an arrow we already recognised, so 食べる ended on a meaning reading “⇀食べてすぐ寝ると牛になる”.
- API: fixed a bug where a request could fail with a server error for no reason you could see, because our own five-minute health check briefly pointed the app at the wrong database while it ran. Anything you were doing at that instant, a word page as much as an API call, could come back as an error and work again on retry.
0.11.2 (2026-08-20)
Fixes
- Reading: 俺 is a word again when の follows it. The parser had been treating 俺の as a single name – there is a restaurant chain called 俺の, and a dictionary lists it – so a sentence like 俺の前に現れた gave you one proper noun with no way to open 俺 inside it. 私の, 君の and 彼の were never affected; this was 俺の on its own.
0.11.0 (2026-08-19)
Highlights
- Signing in: if your email address stops accepting mail, the sign-in form now says so instead of promising a link that will never arrive, and points you at Continue with Google. We stop writing to an address the moment it comes back as undeliverable.
- Account settings: connected apps (the browser extension, Nadeshiko) now hold short-lived tokens they renew themselves instead of a permanent key, so revoking one on your access list cuts it off at once and an app you stopped using lets go on its own after ninety days. The extension asks you to connect once more after it updates.
- Your dictionaries: reading the definitions is now the fifth and last step of an upload, and it stays under the dictionary until it is done, so one that is waiting its turn says so instead of going quiet. Clicking that line shows you what the step does, with the same definition before and after it.
- Your dictionaries: a batch of uploads now works through “Reading the definitions” one pack at a time instead of inching all of them along together, so the first dictionary is tappable in a fraction of the time rather than every one arriving at the end.
Fixes
- Signing in: fixed a bug where signing in or out cleared everything the site had stored in your browser instead of only the pages that had changed, so the next page you opened had to fetch the whole site again and took about twice as long to appear.
- Continue with Google: fixed a bug where finishing a Google sign-in asked Google twice more for details it had already sent, so you waited up to a second longer than necessary after picking your account.
- Settings: fixed a bug where changing your theme or your dictionary languages cleared everything the site had stored in your browser, so the next page reloaded from scratch instead of simply showing the change.
- Your dictionaries: fixed a bug where a finished upload redrew the whole Settings page with a fade instead of just dropping the new dictionary into your stack, so the page you were reading blinked out and back every time a pack landed.
- Your dictionaries: fixed a bug where receiving, linking and indexing only named their step instead of showing how much had finished, so a large dictionary looked stuck even while its last work was moving.
- Your dictionaries: fixed a bug where uploading a batch of dictionaries at once read “Reading the definitions” as stopped instead of as waiting its turn, so packs that were still working said the import had stopped responding and started their progress over from zero.
0.9.1 (2026-08-18)
Added
- Connect an app: the code from your sign-in email now works in the connect window itself, so linking the browser extension no longer means opening the link somewhere else and coming back. The code is tied to that window, so it finishes the connection where you started it.
Fixes
- Feedback: fixed a bug where leaving your email with your feedback was always turned away as “an invalid email address”, whatever you typed, so the only way to send anything was to leave the address blank and give up on a reply.
- Sign in: throwaway, self-destructing email addresses can no longer be used to open a new account, because an account you cannot receive mail for is an account you lose. If you already signed in with one, it keeps working.
0.9.0 (2026-08-18)
Added
- Sign in: the sign-in email now carries a short code as well as the link, so you can sign in on a computer that cannot open your email. Read the code on your phone, type it on the sign-in page, and you are in. The code only works in the browser that asked for it, and five wrong tries retire that email, so ask for a fresh one if you lose count.
Fixes
- Plans: fixed a bug where paying before you had an account showed “Check your email” and then never sent it, so the account you had just paid for could not be reached at all.
- Every page: fixed a bug where a notice meant for one reader, like “Check your inbox. We sent you a sign-in link.”, could be stored along with the page and then shown to everyone who opened it next, so a search result could greet you with somebody else’s message.
- Search by photo: fixed a bug where the drop zone opened as a second box under the search bar instead of as part of the same box, so Draw and Radicals looked attached and Search by photo did not.
- Theme: fixed a bug where switching to dark from a dictionary page flipped the page dark and then dropped it straight back to light, because the page had come from the shared cache and the site turned the change away as if it had come from another site.
- Search: closing Draw or Radicals no longer pops the box apart. The pad used to vanish in one frame, so the outline split and recent searches jumped up into the hole; the contents fade first and the box slides shut under them.
- Radicals: Clear now sits in the top-right of the matching-kanji box, the same height and corner as that box, and only appears once a radical is selected.
- Search: Filters, Draw and Radicals now replace each other. Opening Filters used to leave the drawing pad or the radical chart standing underneath, so the bar showed two tools at once.
- Search: the box no longer shows two close buttons at once. Picking a filter used to add the bar’s × next to the chip’s own ×, and WebKit also draws one inside a search field, so you could see two or three crosses on the same row.
- Search: filter suggestions now use the same coloured pills as the chips they become, and picking one no longer tears the box apart. The list used to fade out over the page while an empty strip opened above it, so the recent searches already underneath looked like a separate piece; they now stay put and the chip grows in between.
- Search: fixed a bug where clicking away from the box dropped the blue outline from the top of it but left it on the suggestions underneath, so the two halves of the same box no longer matched until you let go.
- Your dictionaries: an upload that fails now says so, instead of sitting at “importing” for good. When an import failed, the clearing-up afterwards could itself fail, and if it did the upload was never marked as failed and kept showing a progress bar that would never finish. The reason the import failed was also thrown away and replaced by the error from the clearing-up, so the page could not tell you what actually went wrong. Both are fixed: the upload is marked failed either way, and the original reason is what gets reported.
- Radicals: the radical picker and the Legend book now open from the nearest cache instead of being rebuilt on every open. Both are loaded on demand when you open them, and that request was excluded from caching by mistake, so each one meant a fresh round trip to the server no matter how many times you had opened it before. Picking a radical is faster for the same reason.
- Search: a word stretched for emphasis now finds the plain word behind it. すごーい and すっっごーい were looked up as those exact spellings, which no dictionary lists, so a way of writing that fills subtitles and chat came back with nothing at all, and すっっごーい was additionally broken into five separate pieces. Both now read as すごい. A stretched spelling a dictionary does list, like すっごい, is still kept as itself, and a word stretched at the end, like やめろー, is unchanged for now.
- Your dictionaries: meanings are now grouped under the dictionary that wrote them and numbered the way that dictionary numbers them. 食べる used to run 1 to 9 straight through JMdict, デジタル大辞泉 and 大辞林 as if one editor had written all of them, so the sense 大辞泉 calls ② was labelled 5. Each dictionary is named once, its own ①②㋐ are shown, and the part of speech it states once for the whole word is now printed once instead of on every line.
- Your dictionaries: fixed a bug where a dictionary’s own headword line was printed as part of the first definition. 明鏡 writes it with the historical reading behind the brackets,
じゆう‐ぎょう【自由業】(ジイウゲフ), and that trailing half was enough to stop it being recognised as a title: it was happening on 773 entries out of 800. - Your dictionaries: the classical form a dictionary prints above its first meaning,
た・ぶ[バ下二], is no longer numbered as meaning 1. It is kept as a note on the meaning it introduces, since it usually carries the word’s history with it. - Your dictionaries: fixed a bug where a definition introduced by a label was filed as a footnote instead, so 〔仏〕愛欲が人をおぼれさせる… left the sense with nothing to define and it disappeared from the card. The label now reads beside the meaning it qualifies.
- Your dictionaries: fixed a bug where 「中学校」の略。 and 「茶坊主①」に同じ。 were read as example phrases rather than as the definitions they are, which took the sense’s only meaning with them.
- Your dictionaries: a dictionary that groups its meanings now shows those groups. 精選版 divides これ into 一 (pointing at things), 二 (at yourself), 三 (at the listener) and 四 (in classical Chinese), numbering ①②③ inside each; all four groups were being swallowed into the meaning above them, so the numbering restarted four times over with nothing on screen to say why. The groups are now headings and their meanings sit under them.
- Your dictionaries: every dictionary now numbers its meanings the same way, and the symbol tells you which level you are reading. A group is 1, a meaning inside it is ①, and a finer shade of that meaning is ㋐, indented under it. The fourteen dictionaries write those same three levels twelve different ways between them (①, (1), (1), 1., and 一 ㊀ ㈠ 🈔 for groups), so one word could show three different notations for the same idea depending on which dictionary was speaking.
- Your dictionaries: a dictionary’s labelled extras are no longer shown as extra definitions. 新明解四字熟語 and 学研 file each entry with its source (出典), a note (注記), similar phrases (類語) and its conjugation; all of them were being run together into the meaning as one long line. Sources and notes now read as notes, similar and opposite phrases are links you can follow, and example phrases sit with the other examples. Across the fourteen dictionaries this halved the meanings that carried something that was not a meaning.
- Your dictionaries: fixed a bug where 精選版’s finer sub-meanings were shown as grammar labels. It divides a meaning with (イ)(ロ), and a single katakana in brackets was being read as a part of speech, so 食べる wore “イ” and “ロ” as chips and the two definitions under them were welded onto the meaning above.
- Your dictionaries: example phrases and notes are now tappable like definitions. 果物を―・べる is easier Japanese than the definition it illustrates, and it was the one place on the card you could not look a word up.
- Your dictionaries: a section heading a dictionary prints on its own line now labels what follows it. 三省堂 writes 尊敬語 above 召し上がる。, 由来 above a word’s origin and 慣用句 above its idioms; those headings were being shown as a note whose whole text was the single word “由来”, with the paragraph they introduced left anonymous underneath.
- Your dictionaries: fixed a bug where 明鏡’s usage notes ran on as part of the definition above them. Its ⑴⑵ points about 食べる, two paragraphs on how polite the word is, were joined onto the meaning “固形の食物をかんで飲み込む。” with a semicolon.
- Your dictionaries: 明鏡 closes many of its entries with a list of related-word categories, and that list was being shown as a definition: 食べる’s second meaning read “生活する。食う。; 関連語; 大分類 飲食 いんしょく; 中分類 食べる たべる…”. It is an index rather than something to read, and it is no longer shown.
- Your dictionaries: a word that a dictionary lists but never defines no longer answers with its own name. 精選版 does this for 31,185 words, so looking up 航空力学 got you the definition “航空力学”. That dictionary now says nothing for those words and the other thirteen answer instead.
- Your dictionaries: a meaning that is really a pointer to another word is now a link you can follow. 大辞林 writes its third meaning of 藍 as “see 藍色”, and that was being shown as a definition reading
→あいいろ【藍色】に同じ。, arrow and all. Around 11,600 of them across nine dictionaries. - Your dictionaries: “see also” links now go to the word rather than to a string no dictionary has. A reference written
あいいろ【藍色】was searched for whole, so it found nothing; the reading and the spelling are now told apart, whichever order the dictionary writes them in. - Your dictionaries: the dot that separates a verb’s stem from its ending now looks the same in every dictionary. 岩波 and 学研 write it half-width, so
仕事で―・べてゆくsat on the same card as果物を―・べるand the narrower one read as a mistake. The dash each dictionary uses for the word itself is left alone: that one is a house style, not an inconsistency. - Your dictionaries: fixed a bug where デジタル大辞泉’s supplementary notes ran on as a second definition of the meaning above them. It writes them as
[補説], in the narrow brackets, where it writes everything else in the wide ones, and only the wide ones were being read as brackets at all. - Your dictionaries: a long editorial aside in 〔…〕 is no longer printed as the word’s first meaning, and a classical citation like 〈枕・八七〉 no longer stops the quotation it credits from being recognised as an example.
- Search: a word you have already looked up is now redrawn less often, wherever it turns up. A word’s card was being stored once per place it ranked in the results, so the same 見る was built from scratch again for every search that happened to put it in a different position: about one card in eleven across the whole site, and one word had been stored ten times over. The number beside a result is now drawn separately from the card it labels. Results with two-digit numbers also line up with the rest now instead of sitting slightly further right.
- Search: searching a whole sentence now draws about a third faster. Each word in a sentence result carries a link to that word’s other definitions, and carrying that link was quietly stopping the card from being reused between searches, so every card was built again from scratch every time. 日本語を勉強しています went from 103ms to 72ms and 昨日友達と映画を見に行きました from 129ms to 73ms. Searching a single word already reused its cards and is unchanged.
- Every page: a page now downloads about 720 KB less before it can draw anything, and the watercolour at the foot of the page waits until you scroll to it. The logo in the header was a 368 KB picture drawn at 32 pixels across, and the tab icon a 288 KB picture drawn at 16. The font list the page asks for was four times longer than it needed to be, naming each weight of a typeface separately when all four come out of the same file. On a phone on mobile data that was most of the wait before the page appeared. On the dark theme, which hides the watercolour, it is now never fetched at all.
- Your account: your media library now states one figure, and that figure is what your storage limit is about. It used to state two, because a file another learner also had stopped counting against your limit, which meant your usage could go up or down because of somebody you have never met, and the page had to say so. Files everybody has are still stored once on our side; that saving is ours to make, not something your limit should depend on a stranger for.
- Your dictionaries: monolingual Japanese dictionaries now import with their senses, examples, labels and cross-references intact, instead of one undivided block of text. Fourteen packs were read to work out how, among them 三省堂, 大辞林, 広辞苑, デジタル大辞泉, 明鏡, 岩波, 旺文社, 精選版日本国語大辞典 and the 四字熟語 and ことわざ dictionaries. Where a word has numbered meanings you now get numbered meanings.
- Your dictionaries: a sense’s own example phrases are now shown under it. They were being read out of the file and then had nowhere to go.
- Your dictionaries: fixed a bug where the x, △ and ▼ marks some dictionaries print over a kanji were drawn as if they were readings, so 喘ぐ appeared as 喘(x)ぐ. Those marks mean the character is outside the standard list, not that it is read that way.
- Your dictionaries: fixed a bug that made some dictionaries import hundreds of times slower than others. A pack that does not declare which language its definitions are in (実用日本語表現辞典, 明鏡, 旺文社) was re-reading a 3 MB chunk of the file to work it out again for every single definition. It now works it out once. Measured on 実用日本語表現辞典: 92 entries a second before, 41,000 after.
- Your dictionaries: uploading a dictionary now shows a real progress bar and how long is left, and the file goes straight to storage with its own percentage on the way up. A 57 MB 三省堂 pack used to sit at “Processing…” for the whole of the three minutes it took to read, which reads exactly like a page that has forgotten about you, and the only way to find out was to upload it again.
- Your dictionaries: fixed a bug where removing a dictionary while it was still importing deleted the file the import was reading, so it died partway through instead of finishing. Removing it now takes it off your list straight away and clears the rest once the import stops.
- Your dictionaries: you can now upload several dictionaries at once. The drop zone lists what you picked, adds to that list rather than replacing it when you drop more, and each one has an X if you change your mind before sending.
- Your dictionaries: an import now says what it is doing at each stage rather than only “Processing”. It counts entries as they land, shows a percentage and a rough time left once it knows how big the dictionary is, and names the two slower steps after that (linking cross-references, indexing) instead of going quiet for minutes.
- Your dictionaries: an import whose worker dies now says so and offers to remove itself. It used to stay at “Processing…” for good, with the dictionary invisible to every search and no way to clear it.
- Your dictionaries: a file that is too large, or that is not a .zip at all, is now refused before it is uploaded rather than after it has crossed the wire.
- Browser extension: the example sentences on a word card now mark the word you looked up and let you click any other word in them. 食べる lights up its own 食べました, and tapping a word you do not know in the example opens it in the same card instead of sending you off to select the text by hand.
- Browser extension: a meaning now carries its usage note. “Usually written in kana” and “after the -te form of a verb” are the things that change how a word is used rather than what it means, and the card had no way to say them. Each note sits under the meaning it belongs to, never the one after it.
- Browser extension: a meaning now names what it is related to and what it is the opposite of, and tapping either opens that word in the card. 開く points at 開ける and at 閉じる, which is often the fastest way to understand the word you are actually reading.
- Browser extension: a word card now names the word’s other spellings. 開く is also written 空く, and tapping 空く used to open a card headed 開く with nothing connecting the two. Spellings the dictionary calls rare are shown greyed rather than hidden, since those are the ones you cannot place.
- Browser extension: tapping a kanji on a word card now opens that character in the card itself, with its on and kun readings kept apart, its stroke count and its grade. It used to open a tab on the website, which meant leaving the page you were reading to ask what a character was. The full kanji page is still one tap further on.
- Browser extension: fixed a bug where a word glossed in two languages showed its whole list of meanings twice, once per language, instead of showing each meaning once with a row per language. A word with eight meanings drew sixteen, and picking which of them to save offered sixteen boxes for eight things.
- Browser extension: a meaning’s labels are now chips, coloured by what they tell you: “Na-adjective” says what the word is, “Usually kana” says how it is written, and they used to run together in one grey line.
- Browser extension: tapping one of those labels now explains it. “Na-adjective”, “Godan verb” and “Usually kana” open the same Legend entry the website shows, inside the card and without a connection, so a word you cannot read no longer sends you to another site to find out what its label means.
- Browser extension: fixed a bug where the word card closed as soon as another app came to the front instead of staying where it was, so opening a launcher over the page and coming straight back left you with no definition and the word to find again.
0.8.3 (2026-08-17)
Fixes
- API: fixed a bug where
POST /api/v1/words/identifyoffered a piece of grammar every word that merely reads the same instead of only the words its part of speech allows, so tapping は in a sentence answered with 歯, 葉, 刃 and 派 behind the topic marker. The part of speech had already ruled all of them out to pick the answer. Nothing a word answers has changed, and a word still offers every spelling it can name.
0.8.2 (2026-08-16)
Added
- API:
POST /api/v1/words/identifyalso takesformsandnotesin itsinclude, so the rest of a word card comes from the same call.formsis every spelling the word is written with, which is what tells a reader who tapped 空く why the card says 開く;notesis the usage note on a sense, the “usu. in kana” that changes how a word is used rather than what it means. Both off by default, and a sense with no note carries no key at all.
0.8.1 (2026-08-16)
Added
- API:
POST /api/v1/words/identifytakes aninclude, so the word a reader picks can be drawn from one call instead of two.pitch,frequencyandfuriganamean what they mean onPOST /api/v1/parse;jlptadds the level. Off by default, andGET /api/v1/words/{id}is still where forms, siblings, cross references and examples come from.
Fixes
- API:
POST /api/v1/words/identifynow returns a candidate’s definitions in every language the entry has, and resolves only the part-of-speech and misc labels into?locale=. It used to narrow the definitions too, so a reader on Spanish meeting a word glossed only in English got a candidate with no definitions at all.GET /api/v1/words/{id}always behaved this way; the two now agree.localeis also described onidentifyat last, which it always read. - The weekly dictionary refresh is gone. Refreshing a dictionary is a human’s call, and running it unattended took the job server down with it.
0.8.0 (2026-08-16)
Fixes
- API:
POST /api/v1/parseno longer sendsposFullandposLabelon every token. Ask for them withinclude=posFullorinclude=posLabelif you store morphology or print the part of speech;posis unchanged and still on every token. They were 27% of the biggest parse you can ask for, so a page-colouring parse is now 202 bytes a token instead of 278. - API:
POST /api/v1/parsenow puts each word’s study state on the token itself and no longer returns a separatevocabularypool, which was re-sending the lemma, reading and part of speech that every token already carried. Measured on a paragraph, the response is 11% smaller. - API: looking a word up from parsed text is now
POST /api/v1/words/identify, which takes a batch of tokens and answers every word each spelling can name, best first. It replacesPOST /api/v1/words/resolve,include=wordIds,include=meaningsand the?surface=form ofGET /api/v1/words/{id}, which each answered the same question a different way. Store the tokens rather than the ids and a dictionary update never costs you a re-parse. - Dictionary: an adverb the dictionary lists is now one tappable word, so 本当に, すぐに, 一緒に and どこか no longer break in two and leave the に or か on its own. そのことに stays こと and に, because there こと is “the fact that” rather than part of the adverb ことに.
- Dictionary: もの in a sentence like 信じたいものだ now opens もの, the word that turns a phrase into a thing, instead of 者, a person. The tokenizer calls it a noun and the dictionary files it as a particle, and disagreeing about the label was enough to hand it to a different word.
- Dictionary: an honorific is no longer glued to the name in front of it, so 田中さんが来た offers 田中 and さん separately instead of one word 田中さん that could be saved as a card for a stranger. 子供達 and お母さん are still one word each.
- Dictionary: 私 now opens わたし, the everyday “I”, instead of わたくし, the formal one. The tokenizer reads 私 as ワタクシ by default and the reading was being trusted as if the sentence had spelled it out, so every 私 on every page opened a word most readers will not need for years.
- Dictionary: a conjugated verb no longer opens somebody’s surname, so ありますか opens ある (“to be”) instead of a person called Arimasu. It happened to します, しました, なった, ありません and したら too: the dictionary has no word spelled あります, only the name, and the verb behind it was never consulted.
- Dictionary: とき now opens 時 (“time”) instead of 鴇, a bird, or the Shinkansen service named after it. Both of those are filed under the kana とき and 時 is not, and being filed there was enough to win.
- Search: a word read as a noun no longer opens an exclamation spelled the same way, so ほう in 〜のほう reaches 方 (“direction, side”) instead of ほう, the “oh!” the dictionary files that spelling under.
- Search: a word written in kana now opens the word it usually means instead of a rare one spelled the same way, so tapping きみ in a sentence reaches 君 (“you”) rather than 黍, a grain.
- Sign in: asking for a sign-in link now only shows “Check your inbox” as the toast in the corner. It used to also sit in the middle of the page, so the same message appeared twice.
- Dictionary: an adjective’s polite forms now read as the adjective, so 高くありませんでした is one tappable form of 高い. It used to break apart and offer ある, a verb that is not in the sentence you are reading.
- Dictionary: a polite past negative now reads as one word, so 読みませんでした is one tappable form of 読む. It used to break into 読みません and でした, which showed the ending as the copula “was” rather than as part of the verb, even though 読みました was already one word.
- Dictionary: a counted thing the dictionary lists as a word is now one tappable word in a sentence, so ひとつ opens 一つ. It used to be split into ひと and つ, and tapping the first half looked up 人, “person”. Counts the dictionary does not list, like 三匹, still offer 三 and 匹 separately.
- Study: studying a set phrase from a sentence now cards the phrase, so すみません makes a card for すみません instead of 済む, the verb it is built from and not the word you read.
- Study: studying a potential form from a sentence now cards the word the dictionary actually lists, so 学べる makes a card for 学ぶ with its meaning on the back instead of an empty card filed under 学べる, which the dictionary has no entry for.
- Study: a card’s example sentence now highlights the word you actually clicked, so a line using the same word twice no longer lights both and leaves you guessing which one the card came from.
- Dictionary: the × in the search bar now just empties the box and leaves you where you are. It used to send you back to the front page, so clearing what you had typed threw away the results you were reading.
0.7.0 (2026-08-14)
Highlights
- Dictionary: the search bar remembers what you searched. Click the box and your recent searches are there, narrowing as you type, whichever surface you ran them on, one click to run one again and one to forget it.
- Search history: Account → Search history lists everything by day. Your list is kept on the device you searched from; with Pro it also follows you between devices and keeps your recent photo searches beside it, for 90 days. Settings has switches for both, and neither of them erases anything: clear what you have from the history page whenever you want it gone.
Fixes
- Dictionary: a word page asked for by its reading alone now opens that word, when only one word is read that way. It used to say the word was not in the dictionary even when the word was right there, so a reading you had in hand only worked if you searched for it instead.
- Dictionary: when a word really is not in the dictionary, the page now lists the words that are read that way and offers to search for what you typed. It used to be a dead end that sent you to the front page, and it said so in English however you read the rest of the site.
0.6.19 (2026-08-13)
Fixes
- Dictionary: search engines crawling the site no longer slow down the person reading it. Several robots would ask for different pages in the same second, queue up behind each other, and anyone reading at that moment waited in the same queue; they now take their turn one at a time, and the site serves three pages at once where it served two.
- Dictionary: a word or kanji page you come back to is kept ready near you for a month instead of a day, so it comes up at once rather than being built again. It was being rebuilt for the second reader of the same word almost every time.
0.6.18 (2026-08-13)
Fixes
- Dictionary: word pages for a kanji that also reads as dozens of names (陽, 美, 心, 夢) open quicker, and they were the slowest pages on the site. Looking up 陽 was reading every entry that merely shares one of its spellings, some four thousand of them, to list the twenty-nine other words written 陽.
- Card browser: opening a card is quicker, and clicking from one card to the next quicker still: the preview, the “where this comes from” panel and each folded definition now load when you open them rather than with every card you click, and the list no longer redraws itself to move the highlight. The list also starts at 50 rows instead of 150, with the rest arriving as you scroll, as they already did.
0.6.17 (2026-08-13)
Fixes
- Import from Anki: importing a large deck no longer leaves the server holding on to the memory it used, so several people can import one after another without it building up.
0.6.16 (2026-08-12)
Fixes
- Import from Anki: the summary now tells you when a deck’s definitions are still being read, and stops saying so once they are done. It only ever appeared on the progress screen before, which vanished the moment the import finished.
- Dictionary: fixed a bug where searching the title of a show or a book read it as one single word instead of the words in it, so ありふれた職業で世界最強 came back with nothing at all and none of the five words inside it, ありふれる, 職業, で, 世界 and 最強, was one tap away.
0.6.15 (2026-08-12)
Fixes
- Import from Anki: fixed a bug where every example sentence was read twice, once before the import knew which word the line was an example of and again immediately after.
0.6.14 (2026-08-12)
Fixes
- Import from Anki: imports no longer stop to read the Japanese inside every mined definition, so a big deck lands much sooner. Those words become tappable behind you over the following minutes, the way pictures already do.
0.6.13 (2026-08-12)
Fixes
- Study: fixed a bug where importing a deck could make everything else you did meanwhile, like grading a card, come back an error. The import held the database open for the whole time it spent looking words up, even though looking a word up changes nothing.
0.6.12 (2026-08-12)
Fixes
- Import from Anki: fixed a bug where the import said “Opening your Anki package” twice in a row while it was only opening it once.
0.6.9 (2026-08-12)
Fixes
- Study: fixed a bug where deleting a deck for good could also delete audio or a picture that another one of your decks, or another learner, was still using, because Shirabe stores one copy of a file however many people it belongs to. Nothing is deleted now until nothing is left pointing at it.
0.6.8 (2026-08-12)
Fixes
- Import from Anki: fixed a bug where a deck whose audio and pictures we already held was downloaded in full anyway, instead of being recognised from the package itself, so importing a deck a second time took about as long as the first.
- Import from Anki: fixed a bug where the import fetched its files one at a time instead of several at once, because files it had asked for and then not needed were never cleared out of the way, so a big deck spent its whole run waiting on one download after another.
- Import from Anki: fixed a bug where a picture the import had decided to finish later was downloaded twice, once by the import and once by the job that finishes it.
- Study: fixed a bug where deleting a large imported deck for good worked through its cards one at a time instead of in a single pass, so the page sat there for half a minute and anything else you did meanwhile, including deleting a second deck, came back an error.
- Study: fixed a bug where deleting a deck for good took its cards but left their audio and pictures in storage instead of deleting them too, so the space they held never came back to your library.
0.6.7 (2026-08-11)
Fixes
- Import from Anki: fixed a bug where an import counted every file it read against your storage limit, files it already had included, so re-importing a deck stopped partway and told you that you were out of space while your library had barely grown. It now counts only what it actually stores, and that allowance is larger.
- Import from Anki: pictures now arrive after the deck instead of holding it up. A first import of a picture-heavy deck hands you a deck you can study straight away, with its pictures filling in behind you over the following minutes.
- Import from Anki: fixed a bug where importing a deck whose pictures and audio Shirabe already had did all the work of converting them again before discovering it, so a re-import took as long as a first one.
- Your account: fixed a bug where the media library listed your pictures and clips and then stated a total that did not add up to them, because the two counted different things. It now says what your library holds and how much of that counts toward your storage limit.
- Import from Anki: fixed a bug where the upload button relabelled itself with the upload’s progress, so the thing you had just clicked changed its name while you watched it.
0.6.6 (2026-08-11)
Fixes
- Review history: fixed a bug where deleting a card or a deck made the page fail to load instead of still listing that card’s reviews, so your history now opens after you empty something into the trash.
- Search by photo: fixed a bug where tapping a word on a scan that had already cleared itself did nothing at all instead of telling you the scan was gone, so the photo just sat there unresponsive.
- Study settings: fixed a bug where saving a setting gave you no confirmation instead of showing “Settings saved.”, so a change looked like it had not gone through.
- Import from Anki: fixed a bug where a preview whose uploaded file was no longer in storage failed with a raw storage error instead of a plain message, so you now get told to choose your file again.
- Import from Anki: fixed a bug where opening a deck’s preview downloaded the whole file before showing you anything, so a 1.6 GB deck left you waiting more than a minute and a half at “opening” before you could map a single field. It now reads only the part it needs, 15 MB of that same deck, and the wait is under a second.
0.6.5 (2026-08-11)
Fixes
- Dictionary: fixed a bug where compound adverbs like なんだかんだ and いつの間にか were broken into their pieces, so なんだかんだ read as なん + だ + かん + だ (“what” plus the copula, twice) instead of “this and that”. An adverb could only be rejoined when what followed it was pure grammar, which a compound adverb never is.
- Dictionary: fixed a bug where the interjection なんだ came out as なん + だ, so tapping it in なんだ、啓太か gave you “what” plus the copula instead of the “oh, it’s just…” the sentence means. 今日は and 何の stay split, because there the second half is a particle doing its own work.
0.6.3 (2026-08-10)
Fixes
- Dictionary: fixed a bug where 誰も, 何も and どっちも were broken into 誰 + も, 何 + も and どっち + も, so tapping them gave you “who” plus a particle instead of “everyone”, “(not) anything” and “both”. The 0.6.1 fix that separates これ from は went one step too far and applied to も as well: は marks the pronoun in front of it, while も builds words that belong together.
0.6.1 (2026-08-10)
Fixes
- Dictionary: fixed a bug where これは and それは came out as one word instead of これ + は and それ + は, so tapping the demonstrative gave you the listed expression (“as for this”, “very”) rather than the word you pointed at. The dictionary lists those two as expressions, so あれは and 私は split correctly all along and these did not. A pronoun now keeps は apart whichever pronoun it is.
0.6.0 (2026-08-10)
Highlights
- API: looking the same word up twice now costs a revalidation instead of a whole answer. Word lookups carry an
ETagand a privatemax-age, so a client that sends the tag back gets a 304 with no body: the difference between a reader hovering a word once and hovering it thirty times. Private rather than shared, because the answer depends on which dictionaries your key has switched on. - API: a word can now be looked up by the token that produced it, so
GET /api/v1/words/食べる?surface=食べました&reading=タベマシタ&pos=verbanswers 食べる and its meaning in one call, and nothing has to be stored for it to keep working as we get better at picking the right word.POST /api/v1/words/resolvedoes the same for a whole batch, and parsing only spends the time to resolve ids when you ask it to withinclude=wordIds. - Review: a card no longer moves under your eyes. It starts at the top of the sheet and grows downwards, so revealing the answer leaves the word where it was, and switching between the definition tabs no longer shifts the whole card to keep itself centred.
- Review: the answer’s picture and its pronunciation are now fetched while you are still looking at the question, on the card in front of you and on the one after it. Both used to start downloading at the instant you turned the card over, so the screenshot popped in late and autoplay spoke a beat after you asked for it.
- Review: grading a card no longer flashes a loading bar across the top of the screen. The next card is already up by then, so there was nothing left to wait for.
- Review: undo is now as quick as a grade. Walking back the grade you just gave puts that card straight back on screen instead of waiting for the server, the same way the next card already arrives instantly. It falls back to the old wait when there is nothing kept to step back to.
- Dictionary: when you are signed in, typing the bare address now lands in the language you last picked from the menu. A language stored on your account used to win instead, so the menu looked like it forgot your choice between visits.
- Dictionary: pages put their text on screen about twice as fast. The Japanese typeface used to hold the whole page blank while it downloaded, so you waited on a font before you could read a word; it now loads alongside the page instead of in front of it.
- Dictionary: on a phone, the footer no longer runs across the bottom of the home screen. It waits just below it, one flick away, and it is now deep enough for its links to sit apart and be tapped on purpose.
- Appearance: Shirabe now has a dark theme, so looking a word up at night no longer means a white page. The icon in the top bar switches between light and dark, and Appearance in settings can follow your device instead.
- Review: the next card is now ready before you act on the one in front of you, so a session moves card to card the moment you grade, shelve or bin one, instead of pausing for the server each time. The further you live from the server the bigger the difference; the grade is saved behind the card you are already reading.
- Search by photo: on a phone, the camera button in the search bar now opens the camera straight away instead of first showing a drop zone you had to tap a second time; the camera’s own screen still lets you pick a photo you already have.
- Search by photo: the Scan another and Delete buttons have come off a scan, leaving the result itself. Scans still clear themselves after 30 days, and the camera button is always in the search bar above.
- Search by photo: the separate photo page is gone. The camera button in the search bar is the one way in, so scanning a sign no longer means leaving the page you were on.
- Search: on a phone, the picker that chooses what you are searching (dictionary, kanji, sentences) now opens as a small menu under its own button instead of sliding up from the bottom of the screen, so picking one no longer sends your eye to the far end of the phone and back up to the field you were typing in.
- Review: tapping anywhere on the card now turns it over, so showing the answer no longer means reaching for the button at the bottom of the screen. Tapping a word to look it up still looks it up.
- Review: on a phone you can now grade a card by swiping it, the way Anki’s apps do. Drag the card right for Good, left for Again. The whole screen comes with you and the background turns green or red as you go, with a stamp naming the grade and when the card would come back. A swipe you did not mean can be walked back to the middle and nothing happens. The four buttons stay where they are.
- Search: result pages draw noticeably faster, most of all the crowded ones. A search that fills the page with twenty or more words now renders in about two thirds of the time it used to.
Fixes
- Dictionary: fixed a bug where a meaning could show the same word-class label twice in a row, so ゆっくり read “Adverb Adverb” and 中 read “Noun Noun” on 2,231 meanings between them. Those pairs are really two different classes, and now they say so: To-adverb, Noun (prefix), Noun (suffix), No-adjective, Taru-adjective, Pre-noun adjective and Copula are labels of their own, each with its own page in the Legend. Where a label really does cover both (the archaic verb classes) the chip is simply drawn once.
- Dictionary: fixed a bug where clicking a word inside a sentence looked up what that word reduces to rather than the word itself, so clicking なら in 彼が学生ならいいのに opened だ “to be”, with 打, 駄, た and 兌 under it, instead of なら “if”. じゃない and だった landed on the copula the same way, and 3つ opened 三 rather than 三つ. Typing the word into the search box always worked; now clicking it agrees, and so do the extension and the API.
- Dictionary: fixed a bug where searching a counted word on its own read it as the surname it collides with, so 三本 came back みもと instead of さんぼん. The same word inside a sentence was always read correctly; typing it alone into the search box, which is exactly what looking a word up means, was the one place that got the wrong answer.
- Dictionary: fixed a bug where counting changed neither the number nor the counter, so 一本 read いちぽん instead of いっぽん, 三匹 さんひき instead of さんびき and 二日 ふたか instead of ふつか. Thirteen of seventeen everyday counted forms were wrong. The counters we have paradigms for now change both halves together, and one we do not is left exactly as it was.
- Dictionary: fixed a bug where a word was named by a digit spelling when it is also written out, so 二十歳 was filed as 20歳, 一月 as 1月 and 九日 as 9日: 341 words, months and dates among them. The search page hid it, because a result leads with the spelling you searched for, but the link and the front of a saved card carried the digits. A word with nothing but a digit spelling (4WD, ベスト8) keeps it.
- Dictionary: fixed a bug where a number written as a digit got no reading over it at all, so 3つ showed nothing where 三つ showed みっ. A digit is neither kanji nor kana, and the alignment treated a word made of one as already spelling itself out. Letters are still left alone: nobody needs でぃーてぃーぴー written over DTP.
- API: fixed a bug where every key on an account shared one request budget, so a script running hot in staging spent the budget that was answering readers in production, and a leaked key could only be slowed by throttling its owner. Each key now has its own.
- API: fixed a bug where parsing text was exempt from the request budget on the grounds that it is charged by the character instead, which left the number of parse calls unbounded: a client could spend a whole character budget one character at a time. Parsing now counts as a request as well as as characters.
- Browser extension: fixed a bug where a word the dictionary files in full width (ABC, EDTA, 3つ) could not be found from a page that wrote it the ordinary narrow way, because the page’s text was folded one way and the dictionary the other. Hundreds of acronyms had no narrow twin to be found under.
- Dictionary: fixed a bug where a number counted with つ was read as though the counter were not there, so 3つ came out さんつ, 四つ よんつ and 八つ ようつ instead of みっつ, よっつ and やっつ. All nine now take the native series, in either spelling, so 3つ and 三つ both read みっつ.
- API: fixed a bug where a word was only found under the one spelling its entry leads with, so parsing a sentence handed back 3つ with no word to open (the dictionary files the digit full width, under 三) and 喰べる with nothing behind it either, though it is 食べる. Every spelling a word is filed under now finds it, and the reading picks between them, so 珈琲 read コーヒー opens the drink rather than the given name もか.
- Review: fixed a bug where a grade the server turned down said nothing at all, because the message meant to report it was addressed to the card that had already moved off screen. A refused grade now tells you so, and the card comes round again later in the session as it always did.
- Review: fixed a bug where a card was given a margin measured from the wrong edge on a phone, so its words and its definition tabs sat in a column 120px narrower than the screen: a third dictionary was clipped off the end of a strip with the room to show it, and the meaning underneath wrapped every few words. The strip now runs the full width and the reading got that width back.
- Import from Anki: fixed a bug where the progress screen was always written in English rather than the language you read the site in, so a Spanish reader watched their own import narrate every phase and count in a language they had not chosen. It now follows the language you picked from the menu.
- Dictionary: fixed a bug where the pitch accent colours were picked to work as swatches rather than as text, so heiban blue, nakadaka orange and odaka green were all too pale to read comfortably against a white page. Each one is deeper now and every hue is unchanged, so a colour you already recognise still means what it did.
- Kanji: fixed a bug where the purple that marks a jinmeiyō kanji was too pale to read at chip size, so the label faded into the tag it sits on. It is deeper now, same purple. The tag naming a Spanish definition had the same problem and got the same fix.
- Card browser: fixed a bug where the outline of an unticked checkbox was so faint against white that you could not see where the box was until you ticked it. The same ring got darker wherever you pick entries, senses or cards.
- Search by photo: a word the dictionary cannot place now offers its characters instead of a dead end. A photographed sign is not a sentence, so a column of unrelated kanji can be read as one long word that is in no dictionary, and the only thing on offer was a search for it that found nothing. Tapping one of those now says it is not a word and gives you each character on its own.
- Search by photo: fixed a bug where a scan showed a “content missing” error instead of the word you asked for. Tapping a word in the Text tab hit it, and so did opening a word’s full page, its other spellings, or a search from a result under the photo. A word in the text now opens its meaning underneath, the way tapping it on the photo does, with the Text tab left where you put it, and every link that leads off the scan goes to the page it names.
- Everywhere: fixed a bug where a signed-in reader could be handed the logged-out version of a dictionary or search page, so your account menu, your saved-word marks and anything your plan pays for were all missing until you reloaded. A cache in front of the site was keeping one copy of each page for everyone and could not tell the two apart.
- Feedback: fixed a bug where the sheet that opens on a phone had a grab pill you could not actually drag, so pulling it down did nothing and the only way out was the backdrop. It now closes with a downward drag, like every other sheet on the site.
- Import from Anki: fixed a bug where the field-mapping screen re-read your whole deck file every time it was drawn, instead of reading it once when the package was opened, and kept asking for itself again before the previous answer had arrived, so a big deck left that screen redrawing in a loop and slowed every other page on the site while it did.
- Dictionary: fixed a bug where a form of the copula carried no grammar at all instead of naming it, so なら showed its “if” entry without ever saying it is the conditional of だ. だった, じゃない and じゃなかった were silent the same way.
- API: fixed a bug where a word was named by the first kanji spelling on file instead of the one a reader actually sees, so a search for カレー came back under 咖哩, an ateji nobody writes, and
/api/v1/words/あるanswered 404. Every word id the API gives now matches the one the website links with. - API: fixed a bug where parsing a sentence returned なら as the copula だ with nowhere to read about it, so a word with its own dictionary entry looked like a dead particle. Particles and auxiliaries that are real entries now carry their own id. The tokens on an example sentence and on a search query got the same treatment: both used to hand back only the dictionary form, so tapping なら in an example opened だ.
- API: fixed a bug where a conjugated word could be answered with an unrelated word spelt the same way, so して, the て-form of する, came back as the particle して “by, indicating means of action”, し as the conjunction “and”, and 来た as the interjection “all right”. A spelling now has to be able to be what the sentence is doing before it displaces the dictionary form.
- API: fixed a bug where a single matching syllable outranked the common reading of a word, so every form of 来る (来た, 来て, 来ました) was answered with the archaic 来る “きたる” rather than the ordinary “くる”.
- Browser extension: fixed a bug where a katakana word could be cut in half when part of it also spelt a commoner word, so hovering チョコレート offered これ “this”, カレンダー offered 彼 “he”, and カレー, セミナー, コンクリート and 68 other everyday words came apart the same way. Katakana written in one unbroken run is now always read as one word, which is how Japanese writes it.
- Browser extension: saving a word from a page now links the card to the exact dictionary entry the reader was shown. It used to travel under the dictionary form instead, which the extension and the website work out separately, so the same word saved in both places could end up as two cards.
- API: fixed a bug where a search returned results with nothing in them, so 先生 came back with 19 hits where the website shows 6, and the 13 extra were Wikipedia article titles containing 先生 (先生の秘密, 先生は走る) with no definition to show. A search now answers exactly what the same search answers on the site, in the same order.
- API: a parsed word now comes back with the dictionary’s own id for it, not only the link to read it under. The link is built from the dictionary and moves when the dictionary does; the id does not, so an app that files parsed text away can keep its rows working across a dictionary update instead of parsing everything again. Looking a word up by an id that carries one now finds it even when the spelling it was issued under has since changed.
0.5.0 (2026-08-06)
Highlights
- Card browser: picking a dictionary entry in the card editor now waits for Apply: the row you click stays highlighted until you commit it, instead of linking the card the instant you touch it. Your pick also survives anything else you do in the editor first, like linking an example sentence.
- Card browser: the entry picker can search the dictionary, so a card can be put on the right word even when it is not spelt like it: a conjugated front like 攫われる, two spellings in one field like 剥ぐ・剝ぐ, or a typo. Cards like these previously had no way to be linked by hand at all.
- API: a parsed token now says what an inflected word is doing, in words: 食べました comes back as the past, polite form of 食べる instead of only the grammar-book slot 連用形-一般. A form the dictionary cannot name outright, like the stacked 食べさせられた, says nothing rather than half of it.
Fixes
- Language: fixed a bug where choosing a language was forgotten the moment you left the page, so typing shirabe.org again guessed from your browser and your country instead of the language you had picked; Shirabe now remembers the language you choose and stops guessing altogether, which means every first visit starts in English and one click on the language menu settles it for good.
- Import from Anki: fixed a bug where counting the Matching word found and Requires review notes on the field-mapping screen ran while you waited and held up every other page on the site with it, so one person opening a big deck could leave Shirabe crawling for everyone for half a minute. Those counts are now worked out in the background, and the three filter buttons fill in when they are ready.
- Import from Anki: a deck with audio on every card imports in well under half the time. The audio was being uploaded one file at a time, so a 4,300-clip deck spent 17 of its 26 minutes waiting on one upload after another; the clips now go up several at once.
- Import from Anki: fixed a bug where the progress screen showed nothing while the import was uploading a batch’s audio, instead of counting it, so a deck with a clip on every card sat at “0 of 5,829 notes” with no progress bar for the first three minutes of an import that was working fine.
- Import from Anki: fixed a bug where the progress screen redrew the whole page every two seconds instead of just the panel with the numbers in it, so the screen flashed at you for as long as you watched it.
- Import from Anki: fixed a bug where the entry picker ranked its suggestions by position in the dictionary instead of by how common each word is, so そう never offered 然う “in that way”. Same fix in the card browser.
- Dictionary: fixed a bug where two words written the same way in kana were ranked by how many spellings the dictionary lists for each, so なる led with 生る “to bear fruit” instead of 成る “to become”.
- Card browser: fixed a bug where saving from the card editor confirmed nothing and, under the Not in Shirabe filter, the just-linked card vanished from the list instead of staying open, so you couldn’t tell whether the link had happened; a toast now says it did and the card stays selected.
- API: fixed a bug where an app running in the browser could not call the study endpoints that save, edit or delete anything. The cross-origin check turned those requests away before they were ever sent, so they only worked from a server.
- Dictionary: fixed a bug where a word’s grammar and usage tags stayed in English while you read in Spanish, so a Kansai word was labelled “Kansai-ben” instead of “dialecto de Kansai”, and every part of speech, name type and writing tag the API returned in Spanish was an English one.
0.4.0 (2026-07-30)
Highlights
- Offline browser extension: look up Japanese on any page without a round trip to the server
- Full Spanish dictionary coverage for JMdict, with clearer quality signals on translations
- Much better pitch accent
- Fresh word and sentence audio via VOICEPEAK
- Public learning guides and this changelog page
- Faster, smarter search (frequency-first results; fewer wrong proper-name hits)
- Clearer study cards with separate image and word audio
0.3.0 (2026-07-15)
Study and discovery got a big step forward.
Highlights
- Sentence bank and mining: find useful example sentences and save them into study
- Study sessions that load faster, with more control over how cards look
- Card browser you can sort, bulk-edit, and actually scan
- Anki import and export that round-trips notes and media more reliably
- Track which kanji readings you know; browse kanji in clearer sections
- Public profiles with handles
- Gloss languages fall back in the order you prefer
- Better search ranking and richer token chips when you parse a phrase
0.2.2 (2026-07-09)
Deeper dictionary data for Spanish learners and frequency-minded study.
Highlights
- Spanish glosses on JMdict entries, plus more Spanish example sentences
- Global word frequency for ranking and coverage
- Public stats on how much of the corpus you can cover
- Compound pitch accent and richer pronunciation options
- Polished word cards, autocomplete, and dictionary preferences
- Redesigned kana trainer tracks
0.2.1 (2026-06-29)
Fixes
- Production releases could get stuck waiting on a CI status check
0.2.0 (2026-06-29)
Shirabe grew from a dictionary into a study product.
Highlights
- Passwordless sign-in (email link or Google) and device login for apps
- Full spaced-repetition study: decks, reviews, FSRS scheduling, forecasts, achievements
- Import from Anki; curated word sets you can add to a deck
- Billing and Pro plans (including local-currency pricing)
- Public API for search, parse, and study, with your own API keys
- Search filters, pronunciation audio, furigana control, and a better kanji experience
- Privacy policy and terms; full example-sentence corpus
- Cleaner design system across the site
0.1.0 (2026-05-12)
The first public dictionary.
Highlights
- Look up Japanese words and phrases with multi-language meanings
- Live tokenization under your search (see how a sentence splits)
- Word pages, kanji with stroke order, and Kangxi radicals
- Spanish interface and reorderable languages / dictionaries
- Public API and docs
- Credits for the open data we stand on
- Live on shirabe.org