A Progressive Web App for reviewing WaniKani items with support for excluded items (items marked with #tsurukameExclude
in Tsurukame).
- ✅ Exclusion Support: Automatically filters out items you've excluded in Tsurukame
- ✅ Progressive Web App: Can be installed on any device
- ✅ Offline Support: Works offline with cached data
- ✅ Clean Interface: Modern, mobile-friendly design
- ✅ Real-time Progress: Sends progress to WaniKani API
- ✅ Statistics: Track your review performance
- Go to WaniKani Settings
- Create a new API token
- Copy the token (you'll need it to log in)
- Create a new GitHub repository
- Upload all files from the
www
folder to the repository - Go to Settings → Pages
- Set source to "Deploy from a branch"
- Select "main" branch and "/ (root)" folder
- Click "Save"
Your app will be available at https://yourusername.github.io/your-repo-name
- Open the app URL in your browser
- Tap the menu button (⋮)
- Select "Add to Home screen" or "Install app"
- The app will now appear on your home screen
- Open the app URL in Safari
- Tap the share button
- Select "Add to Home Screen"
- The app will now appear on your home screen
The app reads your study materials from WaniKani and looks for items with #tsurukameExclude
in the meaning note. These items are automatically filtered out of your review queue.
- Login: Enter your WaniKani API token
- Load Data: The app fetches your assignments, subjects, and study materials
- Filter: Excluded items are removed from the review queue
- Review: Answer meaning or reading questions
- Progress: Your answers are sent to WaniKani
- Radicals: Always meaning questions
- Kanji: Primarily reading questions
- Vocabulary: Primarily reading questions
www/
├── index.html # Main HTML file
├── styles.css # CSS styles
├── app.js # Main JavaScript application
├── manifest.json # PWA manifest
├── sw.js # Service worker
├── README.md # This file
└── icons/ # App icons (you'll need to create these)
You'll need to create app icons in various sizes. You can use any image editor or online tool to create:
- 72x72.png
- 96x96.png
- 128x128.png
- 144x144.png
- 152x152.png
- 192x192.png
- 384x384.png
- 512x512.png
Place them in an icons
folder.
Edit the CSS variables in styles.css
:
:root {
--primary-color: #4A90E2;
--background-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
The main logic is in app.js
. You can extend the WaniKaniReviewer
class to add:
- Different review modes
- Custom answer checking
- Additional statistics
- Sound effects
- Make sure your API token is correct
- Check that your WaniKani account is active
- Verify the token has the necessary permissions
- Check if you have any reviews due
- Verify that excluded items aren't filtering out all your reviews
- Try refreshing the app
- Make sure you're using HTTPS (required for PWA)
- Clear browser cache and try again
- Check that the manifest.json is accessible
- Your API token is stored locally in your browser
- The app only makes requests to the official WaniKani API
- No data is sent to any third-party servers
This project is based on the Tsurukame exclusion system and is subject to the same Apache 2.0 license.