Back to all work
Knowledge
AI learning app · web + mobile · A daily lesson, code drills and vocabulary, graded by AI.
The learning side of Life Client, built as its own app: a daily lesson drawn from real science and tech articles, code logic drills scored out of 10 with a hint and a video when you struggle, a vocabulary builder with a practice mode, and a reading list with AI summaries.
Context
Self-study tools are scattered: a lesson app, a code-practice site, a vocabulary deck, a read-it-later list. Knowledge puts the four in one daily routine and ties them to Life Client's progression system. It runs as its own deployment, so it can be linked, iterated on or spun out without touching the rest of Life Client.
How it works
- Its own app, one data layer: A separate Next.js deployment with its own Vercel project and domain, sharing Life Client's Firebase project, Google sign-in and TypeScript data package. A Life Client account works here with no separate signup.
- AI behind authenticated routes: Lessons, drills, grading, vocabulary and summaries are seven API routes on Vercel Functions. Each one verifies the caller's Firebase ID token before generating anything, and firebase-admin stays server-only. The Gemini key never reaches the browser.
- Real sources, not generic text: The daily lesson and the reading list draw on real science and tech feeds instead of Wikipedia, with real article links and a relevance check. Titles fetched from the web are decoded properly (HTML entities).
- Practice that adapts: Code drills are scored 0 to 10 by the model. Under 7 you get a hint and a video; you can edit your answer, skip or delete a drill, and try loops in a JS/TS scratchpad. Correctly practised vocabulary moves into a Dictionary.
- Progress that counts: An Insight stat, a streak and a drill history live in the app and feed Life Client's characteristics. The mobile app's Knowledge tab calls the same API routes.
What I built
- A daily lesson generated from real science and tech articles, with real links.
- Code Drills scored 0-10, with a hint and a video under 7, an editable answer, skip/delete and a JS/TS scratchpad.
- A vocabulary builder with a practice mode and a Dictionary for words you have learned.
- A reading list where each link gets an AI summary.
- Insight progression, streak and drill history inside the app.
- The same design system as Life Client's web app, then a dark "command-center" redesign.
Engineering & quality
- Every API route authenticates the caller before spending a single model token.
- Data access goes through the shared data facade, so the app follows Life Client's Firebase to Supabase migration without a rewrite.
- Model choice documented in the code: Gemini's free flash-lite model called directly, because routing through an AI gateway required a card on file for any request.
- Generation quality fixed in the open: repeated words, difficulty drift and article relevance each got their own fix.
Timeline
- 25 Aug 2026: Extracted from Life Client into a standalone app.
- 26-27 Aug 2026: Practice mode and Insight stat, drill scoring and scratchpad, real article feeds, Dictionary.
- 8 Sep 2026: Data access moved behind the shared facade.
- 24-25 Sep 2026: Design system unified with the web app, then the dark redesign.
In numbers
- Commits on this app: 20
- Sections: 4
- API routes: 7
Next.js · TypeScript · Firebase Auth + Firestore · Vercel Functions · firebase-admin · Google Gemini (flash-lite) · Expo (mobile tab)