Changelog
All notable changes to japaneseness.com.[0.12.0] — 2026-05-11 (later)
Added
- Public JSON API at /api/:
- /embed/ page — guide for educators to integrate worksheets:
- Featured Kanji on homepage now baked at build time:
Docs
- BOOTSTRAP_LOG.md fully refreshed: page list, i18n breakdown, remaining tasks
- CLAUDE.md Phase 1 progress section overhauled
Build
- 366 HTML pages + 3 JSON endpoints
[0.11.0] — 2026-05-11 (later)
Added
- /roadmap/ — Phase 1 → 2 → 3 → 4 timeline visualization
- /jlpt/ — JLPT N5 through N1 progression with progress bars
- /press-kit/ — brand + media kit: one-liner, colors, logo downloads,
- Featured kanji widget on homepage — daily-rotating kanji (deterministic
- All 19 ui-pending languages now have native names in their lang_label
Changed
- Mobile nav now includes Roadmap, JLPT, Languages
- Footer extended: Roadmap · JLPT · Press · Privacy · Stats links
- LOCALE_LABELS regenerated to use native names for all 50 langs
Build
- 365 HTML pages (was 362 — adds /roadmap/, /jlpt/, /press-kit/)
[0.10.0] — 2026-05-11 (later)
Added
- N4 kanji COMPLETED: 156/158 N4 kanji now have stroke counts, on/kun
- N4 grammar 50 topics with examples (te-form variants, conditionals
- 20 grammar-specific OG images at /og/grammar/{grammar_id}.png
- Cmd+K / Ctrl+K shortcut → opens /search/ from any page
- Search nav link with ⌘K hint (visible on lg+ viewports)
- /contribute/ rewritten with task-list layout:
Build
- 362 HTML pages
- 100 detail-page OG images (80 kanji + 20 grammar)
[0.9.0] — 2026-05-11 (later)
Added
- 80 kanji-specific OG images at /og/kanji/{kanji_id}.png
- /stats/ page — live numbers from the project:
- /privacy/ page — honest privacy policy: no tracking cookies, no marketing,
- Footer links to /privacy/ and /stats/
- 50 more N4 kanji filled with data (意, 不, 作, 用, 度, 強, 公, 持, 野,
Changed
- CategoryList li hover now adds background tint (visual feedback)
- Kanji detail pages use their unique OG image instead of the generic one
Build
- 362 HTML pages (was 360 — added /stats/ + /privacy/)
- 80 new kanji OG PNGs (~22KB each, ~1.8MB total)
[0.8.0] — 2026-05-11 (later)
Added
- Mobile hamburger menu —
<800pxviewport shows ☰ toggle, full drawer
- Category-specific PNG OG images at /og/{category}.png
- "What's new" navigation strip on homepage linking /changelog/,
- 30 N4 kanji filled with readings + examples (会, 同, 事, 自, 社, 発, 者,
Changed
- PDF download buttons honor a real availability flag:
pdfs_available: false while R2 isn't wired up
- Category pages show "📅 PDF coming soon" instead of broken 404 links
- Kanji and grammar detail pages show a disabled "Coming soon" pill
- "Download all (ZIP)" buttons are conditionally rendered
- When R2 is wired up and PDFs uploaded, flipping to true re-enables
all download UIs everywhere
Strategy
- Going honest: showing dead PDF links would erode trust. "Coming soon"
[0.7.0] — 2026-05-11 (latest)
Added
- PNG OG image at /og-image.png (1200×630, rasterized from SVG via cairosvg)
- PNG favicons: favicon.ico (32×32), apple-touch-icon (180×180),
- PWA manifest (manifest.webmanifest) — installable on mobile
- /changelog/ page — renders this file as HTML on the site
- A11y improvements:
role="main", role="contentinfo", aria-label on nav and language picker
- :focus-visible ring (vermilion 3px outline) on all interactive elements
- N4 master skeleton populated: 158 N4 kanji char + id (readings TODO)
Changed
- og-image.svg → og-image.png (PNG works on all social platforms)
Build
- 360 HTML pages (was 359 — added /changelog/)
[0.6.0] — 2026-05-11 (later)
Added
- 80 kanji detail pages at
/kanji/{kanji_id}/(e.g./kanji/kanji_n5_001/)
- 20 grammar detail pages at
/grammar/{grammar_id}/
- Kanji and grammar cards on category pages now link to detail pages
- 4 more hand-translated UI languages (Hindi, Hebrew, Persian, Finnish)
content/scripts/translate_ui.py— local script to Claude-translate
Changed
- Plausible Analytics replaced with Cloudflare Web Analytics
Build
- 359 HTML pages (was 259) — adds 80 kanji + 20 grammar detail pages
- Sitemap needs regeneration for new pages (next push)
[0.5.0] — 2026-05-11
Major: 50-language UI rollout
- All 50 Tier 1 languages now accessible at
/{code}/URLs
Three-tier status system replacing the lock icon
- ✅ Full content (4 langs): UI translated + all 200 worksheets
- 🌐 UI translated (23 langs): hand-written UI strings, worksheets in
- ⚙️ UI pending (23 langs): English fallback UI, awaiting translation
Added
- 50 i18n JSON files in
site/src/i18n/(gen_50lang_i18n.pygenerator) RTL_LOCALESset for Arabic, Hebrew, Urdu, Persian —dir="rtl"
for these locales
HREFLANG_MAPwith proper BCP47 codes per locale- 50-locale sitemap (~257 URLs)
- /languages/ rewritten with 3-tier badge system + region grouping
- Header language picker now scrollable (max-height + overflow)
Strategy
- We acknowledged that locking 46 languages behind 🔒 was overcautious.
- Worksheet content (PDFs) still strict 4-language scope until native
[0.4.0] — 2026-05-03 (later)
Added
- 50-language Tier 1 roadmap (site/src/data/languages.json)
- /languages/ page: full grid of 50 languages grouped by region
- Language picker (header dropdown) now shows '🔒 + 46 more languages →' link
- Homepage now teases 50-language roadmap
- Languages link added to top nav
- /languages/ added to sitemap.xml
Strategy
- Phase 1 stays focused on 3 'live' languages — won't ship machine-translated
- Roadmap signals ambition without overpromising
- Native reviewer commitment is the explicit prioritization signal
[0.3.0] — 2026-05-03 (later)
Added
- 80 KanjiVG SVG files for all N5 kanji (CC BY-SA 3.0, attributed)
- Kanji cards on the site now show stroke order SVG inline (lazy-loaded)
- /donate/ — honest 'we want time, not money' page with Phase 2 plans
- /sitemap.xml — hand-rolled (28 URLs, since @astrojs/sitemap incompatible)
- robots.txt now references sitemap
- Plausible Analytics script enabled (needs account at plausible.io)
- JSON-LD structured data (EducationalOrganization) in BaseLayout
- Japanese explanations (meaning_ja_default) for all 80 N5 kanji
- N4 master skeletons (kanji_n4.yaml + grammar_n4.yaml) for Phase 2
- /learners/ — 30-day starter path for self-learners
- /resources/ — curated free Japanese-learning resources
- /faq/ — common questions answered
- README.md, CONTRIBUTING.md as proper repo entry points
[0.2.0] — 2026-05-03
Added
- 🌐 Site live at https://japaneseness.com (Cloudflare Pages, custom domain, SSL)
- 4 languages: English, Bahasa Indonesia, Yorùbá, 日本語
- 200 worksheets per language defined: 50 hiragana + 50 katakana + 80 N5 kanji + 20 N5 grammar
- 80 N5 kanji with 163 example words + Japanese explanations
- 6 XeLaTeX templates (base, hiragana_trace/recognize/write, kanji_sheet, grammar_sheet)
- New site pages: /teachers/, /learners/, /resources/, /faq/, /search/, /contribute/, /about/
- Pagefind full-text search across 4 languages (~330 indexed words)
- Cloudflare Pages auto-deploy from GitHub main branch
- public/_headers (security + cache rules), _redirects (www → apex)
- og-image.svg (1200×630 social card)
Changed
- Site converted to monorepo (
site/+content/) undertoriiyu/japaneseness - Manifest now lists all 200 sheets per category with rich per-sheet metadata
- CategoryList component groups by trace/recognize/write for kana, shows readings for kanji
- Removed Astro i18n fallback (was generating 60+ erroneous URL paths)
Known issues
- PDF download links 404 (R2 bucket on wrong account, full pipeline run pending)
- Sitemap not generated (@astrojs/sitemap incompatible with current Astro 4.16 + i18n combo)
- GitHub Actions workflows live in
_pending_workflows/(PAT lackedworkflowscope)
[0.1.0] — 2026-04-26
Added
- Initial scaffold (CLAUDE.md project brief, site/, content/, R2 + Pages plan)
- 5 starter hiragana sheets (あ-row only)
- bootstrap.sh + cf_bootstrap.sh helper scripts
Live version: github.com/toriiyu/japaneseness/blob/main/CHANGELOG.md