A modern, accessible reading application designed to enhance your reading experience with customizable typography, bionic reading, and offline-first functionality.
- Bionic Reading Mode - Highlights the first few letters of each word to guide your eyes naturally through text
- RSVP Reading - Rapid Serial Visual Presentation for speed reading
- Text-to-Speech - Built-in speech synthesis with customizable voices and speeds
- Reading Progress Tracking - Automatic progress tracking for each reading session
- Multiple Font Families - Montserrat, Playfair Display, Geist, Inter
- Dyslexic-Friendly Font - OpenDyslexic support for better accessibility
- Typography Controls - Adjustable font size, line height, and letter spacing
- Theme Support - Light and dark mode with system preference detection
- Progressive Web App (PWA) - Install on any device, works offline
- Responsive Design - Optimized for desktop, tablet, and mobile
- Offline-First - Full functionality without internet connection
- Auto-Updates - Seamless app updates with user notification
- Local Storage - All data stored locally using IndexedDB
- Reading Library - Create, edit, and manage your reading collection
- Settings Persistence - Your preferences are saved across sessions
- Node.js 18+
- pnpm (recommended) or npm
-
Clone the repository
git clone https://github.com/raymondkneipp/bio-read.git cd bio-read -
Install dependencies
pnpm install # or npm install -
Start the development server
pnpm dev # or npm run dev -
Open your browser Navigate to
http://localhost:5173
pnpm build
# or
npm run buildThe built files will be in the dist directory, ready for deployment.
- Frontend Framework: React 19 with TypeScript
- Build Tool: Vite with Rolldown
- Styling: Tailwind CSS 4
- UI Components: Radix UI primitives
- Database: Dexie (IndexedDB wrapper)
- PWA: Vite PWA Plugin with Workbox
- State Management: React Context API
- Icons: Lucide React
- Click the "New Reading" button in the header
- Enter a title and paste your text content
- Click "Save" to add it to your library
- Open the settings panel (gear icon in header)
- Adjust font family, size, and spacing
- Toggle bionic reading or dyslexic-friendly fonts
- Configure text-to-speech settings
- Enable RSVP mode for speed reading
- View all your readings in the main list
- Click on any reading to open it
- Edit or delete readings using the action buttons
- Track your reading progress automatically
| Setting | Options | Description |
|---|---|---|
| Font Family | Montserrat, Playfair, Geist, Inter | Choose your preferred reading font |
| Font Size | Small, Medium, Large, Extra Large | Adjust text size for comfort |
| Line Height | Small, Medium, Large, Extra Large | Control vertical spacing between lines |
| Letter Spacing | Small, Medium, Large, Extra Large | Adjust horizontal spacing between letters |
| Dyslexic Font | On/Off | Enable OpenDyslexic for better accessibility |
| Bionic Reading | On/Off | Highlight first letters of words |
| RSVP Mode | On/Off | Rapid Serial Visual Presentation |
| Speech Voice | System voices | Choose text-to-speech voice |
| Speech Speed | 0.5x - 2x | Adjust reading speed |
| RSVP Speed | 100-1000 WPM | Control RSVP reading speed |
src/
├── components/ # React components
│ ├── ui/ # Reusable UI components
│ └── ... # Feature components
├── contexts/ # React contexts
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
├── db.ts # Database configuration
└── App.tsx # Main application component
pnpm dev- Start development serverpnpm build- Build for productionpnpm preview- Preview production buildpnpm lint- Run ESLint
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Radix UI for accessible component primitives
- Tailwind CSS for utility-first styling
- Dexie for IndexedDB management
- OpenDyslexic for dyslexic-friendly font
- Lucide for beautiful icons
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
Happy Reading! 📚✨