lila/documentation/STARTUP_ROADMAP.md
2026-05-25 01:04:49 +02:00

17 KiB
Raw Blame History

Lila — Feature & Startup Strategy Roadmap

Context for any LLM reading this: Lila is a language learning/vocabulary app with two core differentiators: (1) media-based practice — users learn vocabulary extracted from real media they love (e.g., a Shakira song, the first chapter of Harry Potter, or an episode of Breaking Bad), and (2) multiplayer modes — users practice vocabulary together or competitively in real-time sessions. The app is currently at an early MVP stage. The existing MVP was built around OpenWordNet, which is being replaced because it produces unreliable translations (sense-disambiguation issues). The team is migrating the data pipeline to Kaikki, which structures entries per word sense and links translations to specific senses rather than vague general concepts. This migration is the current technical priority. The project is a TypeScript monorepo (pnpm workspaces) with an Express/WebSocket API (apps/api), a React frontend using TanStack Router (apps/web), a data ingestion pipeline (data-pipeline) backed by SQLite/Drizzle, shared packages (packages/db, packages/shared), and Docker-based deployment orchestrated with Caddy. Documentation restructuring (human-readable vs. AI-optimized docs) is being handled in a separate parallel workstream.


Current State (Ground Truth — 2026-05-15)

What Works Today

  • Singleplayer quiz — Duolingo-style, 5 language pairs (en↔it/de/es/fr), 3 or 10 rounds, POS + difficulty filters
  • Multiplayer — Create/join lobby by room code, 24 players, simultaneous answers, 15s server timer, live scoring, winner screen
  • Auth — Google + GitHub via Better Auth
  • Deployment — Live at lilastudy.com, Hetzner VPS, Caddy HTTPS, Docker Compose, CI/CD via Forgejo Actions
  • Database — PostgreSQL with Drizzle ORM, daily backups

What's In Progress / Blocked 🚧

  • Kaikki data pipeline migration — Stage 1 (extract) and Stage 2 (reverse link) complete on sample data. Stage 3 (enrich) being rewritten for sub-stage architecture. Stages 46 not started.
  • Guest play — No try-before-signup flow yet. Auth required for all game routes.
  • Game session store — Still in-memory. Valkey container exists locally but not wired up.
  • Media ingestion — Not started. No pipeline for subtitles/lyrics → vocab extraction yet.

The Strategic Gap

The app is currently a generic vocabulary quiz. The media-based practice feature (the differentiator) does not exist yet. It depends on:

  1. Kaikki pipeline reaching production (fixes translation quality)
  2. A media ingestion prototype (subtitles/lyrics → text → vocab extraction → quiz)

Stream 1: Documentation Restructure (Parallel Track)

Status: Complete. Human-readable branch (README, STATUS, ARCHITECTURE, BACKLOG, DECISIONS, DEPLOYMENT, DATA_PIPELINE, MODEL_STRATEGY, LLM_SETUP, design/GAME_MODES) and AI-context branch (0006, prompts/meta.md, 99-current-task.md) are live in documentation/.


Stream 2: Feature Roadmap (Three Lanes)

Lane A — Attract & Keep Users

Goal: A user lands on Lila, understands the value in 10 seconds, and completes a satisfying vocabulary practice session in under 2 minutes.

Current Reality Check:

  • Singleplayer and multiplayer quizzes are already working and deployed.
  • The app is functional but not differentiated — it's a generic vocabulary quiz right now.
  • The "wow" moment requires the media-based practice feature, which does not exist yet.

Must-Haves for First Users:

  1. Guest Play (Zero-Friction Onboarding) [in backlog next]

    • No signup required for first session.
    • Capture email or OAuth only after the user experiences value.
    • Critical for viral loops and investor demos.
    • Status: Planned in BACKLOG.md. Not yet implemented.
  2. One Polished Media Demo [not started]

    • Pick ONE piece of media and make it flawless end-to-end: subtitles/lyrics → Kaikki-based vocab extraction with sense-disambiguated translations → playable quiz with timestamps/context.
    • Language pair: en→es (biggest market, most content)
    • Media candidates: Breaking Bad S01E01, a Shakira song, or Harry Potter and the Sorcerer's Stone Ch. 1.
    • This is the primary "wow" moment. Differentiates Lila from all other vocabulary apps.
    • Blocker: Requires (a) Kaikki pipeline in production, and (b) a media ingestion prototype.
  3. One Additional Multiplayer Mode [design exists, not implemented]

    • Proves the mode-agnostic lobby architecture works and adds variety beyond the current simultaneous-answer flow.
    • Recommended first mode: Race to the Top (target score, no round limit) — simplest to implement, changes only scoring logic.
    • Alternative: TV Quiz Show (buzzer — first to press answers) — most visually distinct, but requires new answer flow.
    • Status: Lobby infrastructure is mode-agnostic. Each mode adds game logic only. See design/GAME_MODES.md for full designs.
    • Why it matters: Duolingo has no multiplayer. Anki has no multiplayer. Real-time modes are a genuine differentiator even without media.
  4. Social Proof / Shareable Output [not started]

    • Post-game card: "I learned 12 words from La Tortura — can you beat my score?"
    • Image export or copy-paste text for Reddit, Discord, Twitter.
    • This is the organic growth engine.
    • Blocker: Requires media demo to exist first.

Already Shipped (Don't Rebuild):

  • Singleplayer quiz (5 languages, POS/difficulty filters)
  • Multiplayer lobby + real-time game (24 players, simultaneous answers, 15s timer, scoring)
  • Auth (Google + GitHub)
  • Live deployment with CI/CD

Nice-to-Haves (Post-Launch):

  • Additional multiplayer modes (Chain Link, Elimination Round, Cooperative Challenge)
  • Leaderboards
  • Spaced repetition review queue

Lane B — Investor-Ready

Goal: Walk into a pitch with engagement metrics and a defensibility story tied to Lila's unique data pipeline.

Checklist:

  1. Metrics Instrumentation [not started]

    • Track: DAU/MAU, session length, quiz completion rate, multiplayer match completion rate, Day 1 / Day 7 retention.
    • Tool: PostHog, Mixpanel, or Plausible (self-hosted).
    • Need 46 weeks of real-user data.
    • Note: The app is live but has no analytics. This is a prerequisite for any investor conversation.
  2. Growth Mechanic [not started]

    • The shareable card (Lane A.3) must be live and instrumented.
    • Measure k-factor (viral coefficient). Even 0.3 is a story.
    • Blocker: Requires media demo.
  3. Defensibility Story [partially true, not yet proven]

    • Data moat: Lila's Kaikki → media mapping pipeline produces sense-disambiguated vocabulary tied to specific media timestamps. Competitors using generic word lists or OpenWordNet-style dumps cannot match the precision.
    • Current reality: The Kaikki pipeline exists but is not in production. The media mapping pipeline does not exist yet.
    • What investors would ask: "You have a quiz app. Where's the media feature you pitched?"
    • Requirement: Media demo + Kaikki production data must be live before investor conversations.
  4. Monetization Hypothesis [deferred to business co-founder]

    • Not the technical founder's priority right now.
    • Will be owned by business co-founder or advisor after traction.
    • Options to test later: freemium (free curated media, premium for uploads/unlimited multiplayer/stats), B2B schools, affiliate links to streaming/books/music.

Investor Timeline:

  • Now → Month 2: Finish Kaikki pipeline + ship media demo + add metrics.
  • Month 23: Soft launch to 100 strangers, gather retention data.
  • Month 3+: Investor-ready if retention curves look good.

Lane C — Co-Founder-Ready

Goal: A potential co-founder looks at Lila and thinks, "This person can build, and there's a real product here."

Checklist:

  1. Clean Codebase + Documentation [in progress]

    • Documentation restructure is complete.
    • README must get a new dev from git clone to docker compose up in < 5 minutes.
    • Status: Docs are done. Code cleanliness is ongoing (BACKLOG.md next/later items).
  2. Live Demo with Real Users [partially done]

    • App is live at lilastudy.com with real auth and multiplayer.
    • Gap: No real users yet. The current app is a generic quiz — not compelling enough for strangers to stick around.
    • Requirement: Media demo must be live before pitching to potential co-founders.
  3. Clear Vision Doc [not written]

    • 1-page: What Lila is, what it isn't, and the 18-month arc.
    • Include: target languages, target media types, target user persona, and what "success" looks like at 6 / 12 / 18 months.

Co-Founder Search: Deferred

  • Not needed now. No savings, no traction, no differentiated product. A business co-founder can't raise money or design monetization from a generic quiz.
  • Revisit in Month 6+ after media demo + 100 users + retention data.
  • Exception: If Reaktor.berlin accepts solo founder, take it. If they require a team, evaluate then — but don't rush a bad match.

Stream 3: Building the Startup (Technical Founder Journey)

Phase 0 — Runway Acquisition (Now → June)

Goal: Secure full-time building capacity.

Profile: EU citizen, Berlin-based, no savings, currently employed but being fired May 28. Eligible for Arbeitslosengeld I (24 months employment history).

Primary Path:

  1. Register at Arbeitsamt — May 28 (immediately after firing)
  2. Apply for Arbeitslosengeld I — Same day
  3. Apply for Gründungszuschuss — Within 4 weeks of starting self-employment
    • Requires: business plan (12 pages), viability check by counselor
    • Provides: 912 months basic income (~€1,5002,000/month)
    • Best case: Full-time building, no equity cost, no co-founder needed
    • Probability: High (7080%) — low burn rate, working app, clear technical path

Parallel Path:

  • Reaktor.berlin — Already applied. Solo founder accepted (lower odds). €25K for 6 months, 2.5% equity.
    • If accepted + Gründungszuschuss approved: Choose Gründungszuschuss (no equity, longer runway)
    • If accepted + Gründungszuschuss rejected: Take Reaktor, build solo for 6 months
    • If rejected: Continue with Gründungszuschuss or Arbeitslosengeld I

Backup Path:

  • Arbeitslosengeld I only — If Gründungszuschuss rejected. €1,0001,500/month. Continue building full-time.
  • Part-time job — If Arbeitslosengeld I insufficient. Slower progress but sustainable.

Not Pursuing:

  • Full-time job + nights/weekends — Burnout risk, Lila stalls
  • Freelance/consulting — No current skill set or client network, too time-consuming to build
  • EXIST/INVEST/YC/Techstars — Wrong stage, too competitive, too long timeline

Phase 1 — Differentiate the MVP (Month 13)

Duration: 23 months
Rule: Build first, measure second, align third.

Assumption: Gründungszuschuss approved (full-time building). If not, same tasks but slower.

Tasks:

  1. Finish Kaikki pipeline (Stage 36)

    • Complete enrich sub-stage rewrite
    • Run full sample, validate quality
    • Production sync to PostgreSQL
    • Timeline: 24 weeks
  2. Build media ingestion prototype

    • Pick ONE media piece (Breaking Bad S01E01, Shakira song, or Harry Potter Ch. 1)
    • Pipeline: subtitles/lyrics → text extraction → vocabulary identification → Kaikki sense-matching → quiz generation
    • UI: media selection → quiz with context ("This word appears at 00:04:23")
    • Language pair: en→es
    • Timeline: 24 weeks (parallel with Kaikki pipeline)
  3. Ship guest play

    • Make auth optional on game routes
    • "Try without account" button on landing page
    • Capture email/OAuth after first session
    • Timeline: 1 week
  4. Add one additional multiplayer mode

    • Race to the Top recommended (simplest: target score, no round limit)
    • Changes only scoring logic, reuses existing lobby infrastructure
    • Timeline: 12 weeks
  5. Add metrics instrumentation

    • PostHog or Plausible
    • Track: signups, quiz starts, completions, multiplayer matches, retention
    • Timeline: 1 week
  6. Soft launch to 100 strangers

    • Reddit (r/languagelearning, r/Anki, r/Refold), language-learning Discords, Hacker News Show HN
    • Collect qualitative feedback
    • Timeline: 1 week (after media demo is live)

Phase 2 — Validate & Measure (Month 34)

Goal: Prove that the media feature resonates and that retention curves exist.

Tasks:

  • Analyze metrics: Do users who try media-based practice return more than singleplayer-only users?
  • Iterate on media selection and quiz UX based on feedback
  • Polish shareable output (social cards)
  • Fix hardening items from BACKLOG.md Phase 7

Decision gate: If 100 users show positive retention signals (Day 1 > 30%, Day 7 > 10%), proceed to Phase 3. If not, iterate on media feature or pivot.


Phase 3 — Funding or Revenue (Month 46)

Goal: Secure runway beyond Gründungszuschuss/Arbeitslosengeld I.

If metrics are positive:

  • Apply to accelerators: Reaktor.berlin (next batch), Y Combinator, Techstars Berlin
  • Angel outreach: Berlin ed-tech angels, former founders in language learning
  • EU grants: EXIST (if university partnership), INVEST (Berlin-specific)

If metrics are weak:

  • Iterate on media feature or pivot value proposition
  • Consider B2B angle (schools, language institutes) if consumer traction is low
  • Part-time work to extend runway while iterating

Co-founder search: Not a priority. If funding requires a team (some accelerators), evaluate then. Otherwise, hire contractors or employees for specific gaps.


Phase 4 — Scale (Month 6+)

Goal: Grow user base, build team, secure Series A or sustainable revenue.

Only relevant if Phase 3 succeeds. Otherwise, continue iterating.


Suggested Execution Order

Month 0 (Now → May 28)

  • Week 1: Finish Kaikki Stage 3 enrich sub-stage rewrite. Run full sample, validate quality.
  • Week 2: Register at Arbeitsamt (May 28). Apply for Arbeitslosengeld I. Ask about Gründungszuschuss.

Month 1 (June)

  • Week 12: Submit Gründungszuschuss application. Prepare business plan (12 pages).
  • Week 3: Start media ingestion prototype (parallel). Pick one media piece, get text extraction working.
  • Week 4: Continue Kaikki pipeline + media prototype.

Month 2 (July)

  • Week 12: Complete media ingestion prototype. End-to-end: media → quiz.
  • Week 3: Ship guest play. Add additional multiplayer mode (Race to the Top).
  • Week 4: Add metrics (PostHog/Plausible). Polish shareable output.

Month 3 (August)

  • Week 1: Soft launch to 100 strangers. Gather feedback.
  • Week 23: Iterate based on feedback. Fix hardening items from BACKLOG.md.
  • Week 4: Analyze metrics. Decision gate: proceed or iterate?

Month 46 (SeptemberNovember)

  • If metrics positive: Apply to accelerators, angels, grants.
  • If metrics weak: Iterate or pivot.
  • If Gründungszuschuss expires: Transition to Arbeitslosengeld I, part-time work, or funding.

Open Questions (Answered)

Product Reality Check

  • What actually works today? — Singleplayer quiz, multiplayer, auth, deployment
  • What is broken or placeholder? — Kaikki pipeline Stage 3, guest play, in-memory session store
  • What language pairs are supported? — en↔it/de/es/fr
  • Exact blocker on Kaikki Stage 3? — No blocker, work in progress

Target Audience

  • Who is the ideal first user? — Immersion learner (Netflix watcher) + social learner
  • What languages for launch? — en→es for media demo (biggest market), all 5 pairs live

Business Model

  • Monetization hypothesis? — Deferred to business co-founder or advisor after traction
  • Unit economics? — Deferred until product-market fit

Competitive Landscape

  • Direct competitors? — Duolingo, Anki, LingQ, FluentU, Quizlet
  • What they do poorly? — No real media integration, no real-time multiplayer, no sense-disambiguated translations

Runway & Constraints

  • Full-time or nights/weekends? — Transitioning to full-time via Gründungszuschuss
  • Funding/savings? — No savings. EU citizen, Berlin-based, eligible for Arbeitslosengeld I
  • Hard deadline? — None. Self-paced. Gründungszuschuss application deadline: within 4 weeks of May 28
  • Local or remote? — Berlin-based, but open
  • What do they do? — Not needed now. Revisit Month 6+ after traction
  • Known candidates? — None. Starting from zero
  • Equity mindset? — Deferred until co-founder search begins

End of Lila feature & startup strategy doc.