Tabn is an open-source, offline-first, background-worker-powered reading tool that supports syncing content from RSS and custom sources with full local control.
Tabn is a modern reading and sync tool that gives you full control of your content, built with performance, privacy, and extensibility in mind.
- ✅ Offline-first — stores everything in your browser using IndexedDB
- 🔄 Background sync using Web Workers
- 🧵 Clean job queue system for seamless tasks
- 📤 Import/export full content archive
- 🔌 Supports RSS and custom source logic
- 🖥 Electron desktop version in progress
- 🔐 No analytics or tracking — your data stays with you
-
Offline-First Architecture
Uses IndexedDB to store content locally. -
Background Worker System
Tasks like fetching, syncing, or exporting run in the background. -
Job Queue
Ensures tasks are performed sequentially and efficiently. -
Import / Export
Backup or move your entire reading history anytime. -
Custom Sources
Beyond RSS: plug in your own fetch logic. -
Electron App (Upcoming)
Desktop app with complete offline capabilities and enhanced power features.
- Frontend: React, TypeScript, TailwindCSS
- Build Tool: Vite
- Data Handling: IndexedDB
- Background Processing: Web Workers, Job Queue
- Server (optional): PHP (SimplePie-based) proxy for RSS fetching
- Desktop (WIP): Electron
git clone https://github.com/hrushikeshk/tabn.git
cd tabnnpm installnpm run devIf you're using RSS and want to bypass CORS issues:
php -S localhost:8080 -t proxy-serverBasic support for Electron is under development.
cd electron
npm install
npm run buildTabn does not track users, send analytics, or share any data externally.
Everything stays on your device unless you explicitly export it.
tabn/
├── public/ # Static assets
├── src/ # React source code
│ ├── components/ # UI components
│ ├── workers/ # Web workers
│ ├── jobs/ # Job queue system
│ ├── utils/ # Helpers
│ └── ...
├── proxy-server/ # PHP RSS proxy (optional)
├── electron/ # Desktop wrapper (WIP)
└── README.md
- IndexedDB storage
- Background web workers
- RSS support via proxy
- Import/export support
- Job queueing system
- Electron Desktop App
- Plugin system for custom sources
- Power user mode with custom JavaScript fetch logic
Contributions are welcome and appreciated.
To contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature-name) - Commit your changes (
git commit -am 'Add feature') - Push to the branch (
git push origin feature-name) - Create a new Pull Request
MIT License © Hrushikesh Kothem
