Full-Stack Application · Personal Project
Hengo — Focused Korean Learning Platform
- Next.js 16
- React 19
- TypeScript
- Supabase
- Vercel AI SDK
- OpenAI
- Tailwind CSS
Project Summary
Problem
Generic Korean apps teach textbook basics but rarely help an engineer explain a production incident, decode a manager's message, or practice workplace Korean under realistic pressure.
Approach
Hengo V2 is a practical Korean-learning assistant for someone living and working in Korea. Its focused product loop is Capture → Review → Practice → Speak → Improve, with Today, Vocabulary, Practice, Coach, and Study as the five primary destinations.
Screenshots

What I Built
- Today’s Mission combines due vocabulary, phrases, corrections, and scenario practice
- AI Coach supports conversation, message analysis, phrasing, and structured feedback
- K-Specialist interview preparation includes practice, scoring, and retry flows
- Goals, habits, progress, and learning history share one mobile-friendly workspace
Implementation
Next.js 16 and React 19 form a client-side SPA over Supabase Auth and Postgres with RLS. TanStack Query manages server state, while thin Next.js AI routes verify the Supabase JWT and use the Vercel AI SDK with OpenAI for structured JSON, streamed SSE feedback, transcription, speech, and voice-coach workflows. Tailwind CSS v4 and shadcn-style primitives provide the responsive interface.
Architecture Flow
Backend Evidence
Key endpoints
- POST
/api/ai/chat/streamStream an authenticated AI coaching conversation
- POST
/api/ai/analyzerAnalyze workplace Korean tone and meaning
- POST
/api/ai/vocab/generateGenerate a structured vocabulary deck
- POST
/api/ai/message-generatorGenerate workplace Korean at an appropriate formality level
Engineering Decisions
Challenge
Combining learning, interview, and productivity tools without creating a crowded interface
Decision
Organized features into focused workspaces with Today’s Mission as the daily entry point
Challenge
Keeping AI requests secure while most application data is accessed directly from the browser
Decision
Kept data behind Supabase RLS and routed only AI calls through JWT-verified Next.js handlers
Takeaways
- A product becomes easier to return to when its first screen answers one clear daily question
- Hide-and-preserve is a safer product migration strategy when existing routes and user data still have value
Luyra — Personal Finance Workspace