KindleHub is a modern web application that transforms your Kindle highlights into an organized, searchable knowledge base. Built as a showcase for the kindle-tools-ts library, it provides a beautiful interface to import, explore, edit, and export your reading insights.
Kindle highlights often remain trapped in My Clippings.txt or scattered across apps. KindleHub bridges the gap between reading and knowledge management.
- Your Data, Your Control: 100% client-side. No accounts, no cloud, no subscriptions.
- Visualize: See your library and reading habits at a glance.
- Connect: Export directly to your "Second Brain" (Obsidian, Joplin, etc.).
- Drag & drop
My Clippings.txtdirectly from your Kindle - Import CSV exports from Amazon or other tools
- Import JSON backups for data portability
- Automatic format detection
- Beautiful book cards with generated gradient covers
- Grid and list view toggle with virtualization
- Book detail view with all clippings
- Color-coded clipping types (highlights, notes, bookmarks)
- Interactive dashboard with ECharts:
- Activity timeline chart
- Top books bar chart
- Type distribution donut chart
- Smart insights panel
- Mobile-friendly responsive design with slide-over navigation
- Full-text fuzzy search powered by Fuse.js
- Filter by book, author, type, or date range
- Search term highlighting in results
- Collapsible filter panel
- Inline editing of all clipping fields
- Multi-select with bulk actions (delete, duplicate)
- Add new clippings manually
- Real-time database sync
- Obsidian: YAML frontmatter, valid tags, configurable filenames
- Joplin: Native
.jexarchives for one-click import - Standard Formats: Markdown, JSON, CSV, HTML
- Live preview before downloading
- Folder structure visualization for multi-file exports
- Dark/Light mode with system preference detection
- Export preferences (format, metadata, grouping)
- Full data backup to JSON
- Data management (clear all, restore defaults)
| Category | Technology |
|---|---|
| Framework | Vue 3.5+ (Composition API, <script setup>) |
| Build Tool | Vite 7+ |
| Language | TypeScript 5.9+ (Strict Mode) |
| Routing | Vue Router 4+ (File-based with unplugin-vue-router) |
| State | Pinia 3+ |
| Styling | Tailwind CSS 3.4+ |
| UI Components | Headless UI |
| Icons | Lucide Vue Next |
| Database | Dexie.js 4+ (IndexedDB) |
| Search | Fuse.js 7+ |
| Charts | ECharts 6+ (vue-echarts) |
| Core Engine | kindle-tools-ts 0.5.0 |
| Testing | Vitest 4+ |
| Linting | ESLint 9+ |
kindle-hub/
├── src/
│ ├── components/
│ │ ├── books/ # BookCard, BookList, BookListItem
│ │ ├── clippings/ # ClippingCard, ClippingList
│ │ ├── editor/ # DataTable
│ │ ├── export/ # ExportPanel, FormatPicker
│ │ ├── layout/ # AppHeader, AppFooter, MobileMenu
│ │ ├── stats/ # StatCard, Charts (ECharts)
│ │ └── ui/ # EmptyState, Skeleton, Toast, etc.
│ ├── composables/ # useDataEditor, useSearch
│ ├── db/ # Dexie schema
│ ├── pages/ # File-based routing
│ │ ├── index.vue # Dashboard
│ │ ├── library.vue # All books
│ │ ├── import.vue # Import page
│ │ ├── export.vue # Export panel
│ │ ├── editor.vue # Data editor
│ │ ├── search.vue # Global search
│ │ ├── settings.vue # Preferences
│ │ └── books/[id].vue # Book detail
│ ├── services/ # parser, export, db services
│ ├── stores/ # Pinia stores
│ └── types/ # TypeScript interfaces
├── tests/
│ └── unit/ # Vitest unit tests
└── ...config files
- Node.js >= 20.0.0
- pnpm >= 9.0.0 (recommended)
# Clone the repository
git clone https://github.com/KindleTools/KindleHub.git
cd KindleHub
# Install dependencies
pnpm install
# Start development server
pnpm devThe app will run at http://localhost:5173.
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm preview |
Preview production build |
pnpm test:run |
Run tests once |
pnpm test:ui |
Run tests with UI |
pnpm lint |
Check for linting errors |
pnpm lint:fix |
Fix linting errors |
Current: MVP Complete (~99%)
| Feature | Status |
|---|---|
| Import (TXT/CSV/JSON) | Done |
| Library View (Grid/List) | Done |
| Book Detail | Done |
| Data Editor (Inline) | Done |
| Global Search | Done |
| Export (6 formats) | Done |
| Settings | Done |
| Dark Mode | Done |
| Dashboard with Charts | Done |
| Mobile Navigation | Done |
| Page Transitions | Done |
| i18n (6 languages) | Done |
| PWA Support | Backlog |
| Test Coverage >80% | Backlog |
See PLAN_UI.md for remaining improvements.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- kindle-tools-ts - The core parsing and export engine
- Vue.js - The progressive JavaScript framework
- Tailwind CSS - Utility-first CSS framework