Kevin Lewis
AI Language Learning
Mobile App
Expo
OpenAI API
Supabase Auth
Generated Content

OtaskuLang

A mobile-first AI language practice app that generates a daily Bento of personalized learning cards. The app focuses on short practice loops for Japanese, Spanish, and Korean, combining onboarding, level-based preferences, generated study content, progress tracking, quizzes, short stories, and text-only conversation practice.

What this explores

OtaskuLang explores how AI-generated practice can stay useful inside a constrained daily routine instead of becoming an open-ended chat surface. The Bento model turns generated content into scoped cards that can be studied, skipped, completed, saved, and reviewed.

  • How to personalize daily practice by language, level, and user preference
  • How to mix generated vocabulary, grammar, stories, quizzes, and conversation
  • How to validate and normalize AI-generated language content before display
  • How to keep production-like paths strict when auth or AI configuration is missing
  • How to connect mobile practice loops to durable backend state
Core capabilities
  • AI-generated Daily Bento packs for short, repeatable practice
  • Language onboarding and level selection for Japanese, Spanish, and Korean
  • Daily language rotation based on saved preferences and current date
  • Progress tracking for completion, skips, saves, quiz answers, and study selections
  • Text-only AI conversation sessions with corrections and vocabulary suggestions
  • Short story study mode with selectable words and phrases
  • External Anki and AnkiWeb companion actions
  • Kotoba Senpai quick-help assistant for translation, grammar, rewrites, and furigana help
Architecture notes
  • Expo React Native mobile app with Expo Router and TypeScript
  • Local Next.js API layer for backend routes
  • Supabase Auth with local development fallback
  • Neon Postgres persistence with SQL migrations
  • Upstash Redis caching for prompt and Daily Bento content
  • OpenAI-powered generation with configurable model selection
  • AsyncStorage support for local Expo development paths
  • Production-like runtime paths fail closed when required services are missing

AI and content generation

The app uses OpenAI-powered generation to produce structured Daily Bento content and conversation replies when configured. Generated content is treated as application data: it is normalized, validated, cached by user/date/environment, and presented through bounded study modes instead of being treated as final authority.

Technical stack
  • Expo, React Native, React, Expo Router, and TypeScript for the mobile app
  • Next.js backend API routes for local and production-like service paths
  • Supabase Auth, Neon Postgres, Upstash Redis, and AsyncStorage
  • OpenAI API for Bento generation, conversation responses, and assistant support

Current status

Active / Building. The project has production-like backend paths and integrated auth, persistence, caching, and AI generation patterns, while some external content provider integrations are still future work. Public descriptions should avoid claiming a public launch, production traffic, or complete song, article, or video provider integrations.