A Progressive Web App that converts text to speech with advanced audio management capabilities.
-
Text-to-Speech Conversion
- Smart Text Segmentation
- Bulk Text Processing
- Web Page Content Extraction
- Multiple Voice Options
-
Audio Management
- Mini Player with Playback Controls
- Audio Queue System
- Voice Model Selection
- Platform-Specific Optimizations (iOS Support)
-
User Interface
- Dark/Light Mode Support
- Responsive Design
- Accessible Components
- Progress Indicators
- Error Handling
-
Data Management
- Offline Audio Storage
- State Persistence
- Queue Management
- Settings Retention
-
Frontend Framework
- Next.js (React)
- TypeScript
- ShadCN UI (Radix UI primitives)
- Tailwind CSS
-
State Management
- Zustand with Persistence
- Audio Queue Management
- Settings Store
-
Storage
- IndexedDB for Audio Data
- Local Storage for Preferences
-
Monitoring
- Sentry Error Tracking
- Performance Monitoring
- Session Replay
-
Core Libraries
- Mozilla Readability
- Web Audio API
- IndexedDB API
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
src/
├── app/ # Next.js App Router and API Routes
│ ├── api/ # API endpoints including TTS
│ └── page.tsx # Main application page
├── components/ # React Components
│ ├── ui/ # Base UI components
│ └── audio-player/ # Audio playback components
├── lib/ # Core Logic
│ ├── api/ # API integrations
│ ├── store/ # Zustand stores
│ └── utils/ # Utility functions
└── types/ # TypeScript definitions
- Smart text segmentation for optimal TTS processing
- Web page content extraction
- Support for various text inputs
- Efficient audio queue management
- Platform-specific optimizations
- Seamless playback experience
- Progress tracking
- Efficient audio data storage using IndexedDB
- State persistence with Zustand
- Offline capability
- Responsive design for all devices
- Dark/Light mode support
- Accessible interface
- Error handling and recovery
- Node.js 18+
- npm or yarn
- Sentry.io account (for error monitoring)
- Copy
.env.example
to.env.local
- Configure the following environment variables:
NEXT_PUBLIC_SENTRY_DSN=your-sentry-dsn SENTRY_AUTH_TOKEN=your-sentry-auth-token SENTRY_ORG=your-sentry-org SENTRY_PROJECT=your-sentry-project
# Start development server
npm run dev
# Build for production
npm run build
# Start production server
npm run start
# Type checking
npm run typecheck
The application uses Sentry for error tracking and monitoring:
- Automatic error capturing
- Performance monitoring
- Session replay for debugging
- Custom error context and breadcrumbs
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.