PolyRead — The Side-by-Side Ebook, Audio, and Translation Layer Language Learners Have Been Duct-Taping Together for Years
You cannot learn a language by switching between four apps every 30 seconds. PolyRead fuses a synced audio player, dual-language reader, and inline translation into one screen so learners can actually immerse instead of context-switch. Built on royalty-free content from Project Gutenberg and LibriVox — zero licensing headaches.
Difficulty
intermediate
Category
Education
Market Demand
High
Revenue Score
7/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
🏆 7/10
Validated by Real Pain
— sourced from real community discussions
Language learners have no single tool that combines ebook reading, synchronized audio, and inline translation — they are forced to juggle multiple disconnected apps to achieve basic immersion.
What is it?
Language learners on Reddit and HN consistently complain that LingQ is clunky, Duolingo is gamified nonsense, and combining Audible plus Kindle plus Google Translate is a three-app circus. PolyRead solves this by letting users open a public-domain book, see the original and target-language text side by side, and have LibriVox audio sync to the current paragraph. Tap any word for an inline definition without leaving the page. The MVP targets Spanish, French, and German learners reading classic literature. Revenue comes from a $9/month subscription after a 7-day free trial. Buildable right now because Project Gutenberg has a stable API, LibriVox audio is free to stream, and DeepL has a reliable translation API with generous free tiers.
Why now?
LibriVox has 20,000+ free audiobooks and Project Gutenberg has 70,000+ free ebooks — the content licensing problem is already solved. DeepL API costs dropped significantly in 2024, making per-request translation economically viable at $9/month pricing.
- ▸Dual-language reader synced paragraph-by-paragraph with LibriVox audio playback (Implementation: Web Audio API timestamp mapping to paragraph index).
- ▸Inline word translation via DeepL API on tap without page navigation.
- ▸Public-domain library browser pulling from Project Gutenberg catalog by language.
- ▸Reading progress tracker with daily streak to drive retention.
Target Audience
Adult language learners at B1-B2 level, approximately 2M active self-studiers paying for tools like LingQ or Pimsleur in the US and EU.
Example Use Case
Maria, learning Spanish at B1 level, opens Don Quixote, sees Spanish and English side by side, hears the LibriVox narrator, taps words she doesn't know, and completes a 20-minute reading session without switching apps once.
User Stories
- ▸As a B1 Spanish learner, I want to read a classic novel with audio and inline translation, so that I can immerse without switching between four different apps.
- ▸As a language learning hobbyist, I want to track my daily reading streak, so that I stay consistent and can see my progress over time.
- ▸As a paying subscriber, I want to export unknown words as Anki flashcards, so that I can review vocabulary during my commute.
Done When
- ✓Reader: done when dual-language paragraphs display side by side and the audio player advances highlight to the current paragraph automatically.
- ✓Translation: done when user taps any word and a tooltip with the DeepL translation appears within one second without navigating away.
- ✓Auth: done when user clicks Google sign-in, is redirected back to their last reading position, and their streak counter appears in the nav.
- ✓Payment: done when Stripe checkout completes, user is redirected to the app, and flashcard export button becomes enabled immediately.
Is it worth building?
$9/month x 200 users = $1,800 MRR at month 3. $9/month x 1,000 users = $9,000 MRR at month 9. Math assumes 2% conversion from SEO + community traffic.
Unit Economics
CAC: $8 via Reddit community posts and SEO. LTV: $108 (12 months at $9/month). Payback: 1 month. Gross margin: 88%.
Business Model
SaaS subscription
Monetization Path
7-day free trial, $9/month solo plan, $19/month for vocabulary flashcard export and progress tracking.
Revenue Timeline
First dollar: week 3 via beta upgrade. $1k MRR: month 4. $5k MRR: month 10.
Estimated Monthly Cost
DeepL API: $25, Vercel: $20, Supabase: $25, Stripe fees: $18. Total: ~$88/month at launch.
Profit Potential
Full-time viable at $5k-$10k MRR with low churn if reading streaks are implemented.
Scalability
High — add more language pairs, upload your own EPUB, premium voice narration via ElevenLabs.
Success Metrics
Week 2: 50 beta signups from Reddit r/languagelearning. Month 1: 30 paid users. Month 3: 85% monthly retention.
Launch & Validation Plan
Post in r/languagelearning asking if people would pay $9/month for a combined reader-audio-translation tool, collect 100 upvotes or DMs before building.
Customer Acquisition Strategy
First customer: DM 20 active posters in r/languagelearning and r/learnspanish offering 3 months free for weekly feedback. Ongoing: SEO targeting 'read Spanish books with audio' keywords, ProductHunt launch, language learning YouTube creator partnerships.
What's the competition?
Competition Level
Medium
Similar Products
LingQ (expensive, clunky, no free content library), Language Reactor (Chrome extension only, Netflix-dependent), Readlang (no audio sync) — none combine royalty-free audio plus reading plus translation in one native web app.
Competitive Advantage
Free public-domain content library removes licensing cost, simpler UI than LingQ, audio sync is a unique mechanic no competitor offers at this price.
Regulatory Risks
GDPR compliance for EU users required. Project Gutenberg and LibriVox content is public domain — no copyright risk. DeepL data processing agreement needed.
What's the roadmap?
Feature Roadmap
V1 (launch): dual reader, audio sync, inline translation, Gutenberg library. V2 (month 2-3): vocab flashcard export, reading streak, 5 language pairs. V3 (month 4+): user EPUB upload, Anki sync, mobile PWA.
Milestone Plan
Phase 1 (Week 1-2): reader UI, Gutenberg fetch, audio player ships. Phase 2 (Week 3-4): DeepL translation, Supabase auth, Stripe billing live. Phase 3 (Month 2): streak system, flashcard export, ProductHunt launch.
How do you build it?
Tech Stack
Next.js, DeepL API, LibriVox RSS, Project Gutenberg API, Supabase, Stripe — build with Cursor for backend sync logic, v0 for reader UI components
Suggested Frameworks
Next.js App Router, DeepL Node SDK, Supabase Auth
Time to Ship
3 weeks
Required Skills
Next.js, DeepL API, audio sync with Web Audio API, Supabase auth.
Resources
Project Gutenberg API docs, LibriVox RSS feeds, DeepL API docs, Web Audio API MDN.
MVP Scope
app/page.tsx (library browse landing), app/reader/[bookId]/page.tsx (main reader view), app/api/translate/route.ts (DeepL proxy), app/api/books/route.ts (Gutenberg catalog fetch), lib/audio.ts (LibriVox sync logic), lib/db/schema.ts (Drizzle schema), components/ReaderPane.tsx (dual column layout), components/AudioBar.tsx (player controls), .env.example (DeepL key, Supabase URL)
Core User Journey
Sign up -> pick a book and language pair -> reader opens with audio synced -> tap words for translation -> hit daily streak -> upgrade for flashcard export.
Architecture Pattern
User selects book -> Gutenberg API fetches text -> paragraphs split and stored in Supabase -> LibriVox RSS parsed for audio URL -> Web Audio API plays and highlights paragraph -> tap word -> DeepL API returns translation -> inline tooltip rendered.
Data Model
User has many ReadingSessions. ReadingSession belongs to one Book and tracks paragraph progress. Book has many Paragraphs. Paragraph has one TranslationCache.
Integration Points
DeepL API for translation, Project Gutenberg API for book catalog and text, LibriVox RSS for audio files, Supabase for user data and progress, Stripe for billing, Vercel for hosting.
V1 Scope Boundaries
V1 excludes: user EPUB uploads, mobile app, spaced repetition flashcard system, community features, custom vocabulary lists.
Success Definition
A paying stranger discovers PolyRead via Google, reads for 20 minutes, upgrades without founder contact, and logs in again the next day.
Challenges
Audio-to-text paragraph sync is the hardest technical problem — LibriVox files don't have timestamps, requiring forced alignment or manual offset mapping per book. Distribution is the real killer: language learning is a crowded SEO space dominated by Duolingo's content budget.
Avoid These Pitfalls
Do not attempt audio-word-level sync in V1 — paragraph-level sync ships in days, word-level takes months. Do not build a custom book upload system before validating demand on public-domain content. Finding first 10 paying customers takes 3x longer than the build — post in communities before writing one line of code.
Security Requirements
Supabase Auth with Google OAuth, RLS on all user tables, DeepL key server-side only, rate limit translation endpoint at 60 req/min per user, GDPR data deletion endpoint.
Infrastructure Plan
Vercel for Next.js hosting, Supabase for Postgres and auth, Cloudflare CDN for static assets, GitHub Actions for CI, Sentry for error tracking.
Performance Targets
100 DAU at launch, 2,000 req/day. Translation API under 400ms. Page load under 2s. Paragraph text cached in Supabase after first fetch.
Go-Live Checklist
- ☐Security audit complete.
- ☐Stripe payment flow tested end-to-end.
- ☐Sentry error tracking live.
- ☐Monitoring dashboard configured.
- ☐Custom domain with SSL active.
- ☐Privacy policy and terms published.
- ☐10 beta users signed off on reader UX.
- ☐Rollback plan documented.
- ☐ProductHunt and Reddit launch posts drafted.
First Run Experience
On first run: three featured books are pre-loaded (Don Quixote in Spanish, Le Petit Prince in French, Faust in German) with audio linked and paragraphs split. User can immediately open a book, play audio, and tap words for translation without signing in. No manual config required: Gutenberg content seeded at build time, demo translation works with server-side key.
How to build it, step by step
1. Define Drizzle schema: User, Book, Paragraph, ReadingSession tables with relationships. 2. Run npx create-next-app polyread with TypeScript and Tailwind. 3. Build Gutenberg API fetcher to pull book metadata and paragraph text into Supabase. 4. Build LibriVox RSS parser to extract audio URLs per book. 5. Create dual-pane ReaderPane component with paragraph highlighting using v0. 6. Wire Web Audio API to advance paragraph highlight on estimated time offset. 7. Add DeepL translation API route with 24h Supabase cache per word. 8. Add Supabase Auth with Google OAuth and reading progress persistence. 9. Add Stripe $9/month subscription gate on flashcard export and unlimited books. 10. Verify: open a Spanish book, play audio, watch paragraphs highlight, tap a word, see translation, confirm Stripe checkout completes and access unlocks.
Generated
May 21, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.