Skip to content

Repository files navigation

θ¦‹εˆ‡γ‚Š β€” Mikiri

A self-hosted Japanese immersion hub for serious learners.

Next.js TypeScript Prisma License Status

One place to read. One place to track. One place to grow.

What is Mikiri? Β· Current State Β· Planned Modules Β· Getting Started Β· Philosophy


🌸 What is Mikiri?

θ¦‹εˆ‡γ‚Š (mikiri) β€” a martial arts term meaning "to see through", to discern with precision.

Serious Japanese learners don't use one tool. They juggle Anki, subtitle files, browser extensions, OCR tools, manga readers, and half a dozen bookmarks β€” none of them talking to each other. Mikiri's goal is to pull that into a single, self-hosted hub where your immersion data actually connects: what you've read, what you've watched, what words you already know, and how much of any given content you can understand right now.

The reference point is what LingQ does β€” but open source, free, privacy-first, and built around the tools that Japanese learners actually use.

🚧 Early-stage, active development. The UI and core screens exist. The modules are being built one at a time. This readme reflects what is real today and what's planned β€” nothing more.


✨ Current State

Feature Status
Home dashboard with library cards βœ… UI done
Reader screen βœ… UI done
Authentication (NextAuth) βœ… Working
Design system (sakura dark theme) βœ… Done
Analytics page πŸ”¨ Structure only
Backend (Prisma + DB) πŸ”¨ In progress
Real data connected to UI πŸ”¨ In progress

πŸ“¦ Planned Modules

Mikiri is being built as a collection of modules, each one adding a new content type to the hub. Every module shares the same vocabulary and tracking layer β€” so progress in manga counts alongside anime, which counts alongside reading.

πŸ–ΌοΈ Manga

Local manga library connected to a folder on disk. No uploads, no cloud sync β€” the app reads directly from files on your machine.

  • Library view showing available series and volumes
  • Per-volume info: cover, chapter count, OCR status
  • Reader that opens processed HTML files generated by Mokuro
  • Future: easier download organization and in-app OCR processing

Current status: File API spike done (browser ↔ local files access confirmed). Building from scratch.

πŸ“– Light Novel & Books

Built-in reader with EPUB and PDF support. Reading progress connects to the vocabulary system.

🎌 Anime

Local video player with subtitle support. Auto-import subtitles from Jimaku.

πŸ“Ί YouTube

Import transcripts and subtitles. Use them as reading material or to build vocabulary decks.

πŸŽ™οΈ Podcast

Track Spotify and YouTube as audio immersion sources. Listening time feeds into your immersion log.

πŸ“ Vocabulary & Mining

Import what you already know from Anki, JPDB, or Jiten. Coverage stats reflect your actual level. Mine new words with one click back into Anki.

πŸ“Š Unified Immersion Tracker

All modules feed into a single tracker. See your total immersion by day, week, and month β€” across every content type.


πŸ› οΈ Tech Stack

Layer Technology
Framework Next.js (App Router)
Language TypeScript
Styling Tailwind CSS + custom design system
Database PostgreSQL via Neon
ORM Prisma
Auth NextAuth.js
Package Manager pnpm
Deploy Vercel

πŸš€ Getting Started

Prerequisites: Node.js 20+, pnpm 9+, a Postgres database (Neon free tier works)

git clone https://github.com/mph7/mikiri.git
cd mikiri
pnpm install
cp .env.example .env

Edit .env:

DATABASE_URL="postgresql://..."
NEXTAUTH_SECRET="your-secret"
NEXTAUTH_URL="http://localhost:3000"
npx prisma generate
npx prisma migrate dev
pnpm dev

Open http://localhost:3000.


🍡 Philosophy

Your reading history is personal. Your vocabulary list is a map of how far you've come. That data belongs to you.

Mikiri runs on your hardware, stores data locally, and will always be free and open source. The goal is to reduce friction between you and the content β€” not to be another subscription you have to manage.

The aesthetic matters too. When you're reading for hours, the environment you read in makes a difference.


🀝 Contributing

Early days, but contributions are welcome. Areas where help is especially useful:

  • Japanese tokenization (kuromoji, MeCab)
  • EPUB parsing and rendering
  • Mokuro HTML reader pipeline
  • AnkiConnect integration
git checkout -b feat/your-feature
git commit -m "feat: your change"
git push origin feat/your-feature
# open a PR describing what changed and why

πŸ“œ License

MIT β€” use it, fork it, host it, make it yours.


θ¦‹εˆ‡γ‚Š β€” To see through. To cut clean.

🌸

About

πŸ“šMikiri: A personalizable, privacy-respecting platform for immersive Japanese reading. Import texts and use your favorite browser dictionary extensions.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages