In progress
heyAppa
Playful language-learning app – starting with Korean.
Problem
Learning a language with its own script takes stamina – and practice that's fun. I'm learning Korean myself. A learning app shouldn't leave anyone out along the way, including people who learn with a keyboard or a screen reader.
Solution
heyAppa is a playful language-learning app, starting with Korean. Its mascot Appa, a purple dragon, accompanies learners through the app – with a dedicated character bible as the binding reference for how he looks.
- Translations and stories generated with an LLM via the Anthropic SDK.
- Review with flip cards; custom ordering by drag and drop – with mouse, touch or keyboard.
- Interface in German, English and Korean.
Accessibility
Before the redesign, accessibility came first, in three rounds. It is now a baseline that must not regress.
- Contrast tokens, focus trap in dialogs and keyboard control for reviews; global shortcuts no longer fire inside input fields.
- Visible focus and focus management in context menus; no nested interactive controls, and focus returns after flipping a card.
- Keyboard sorting with screen reader announcements; hints and announcements in German, English and Korean, covered by tests.
Architecture and decisions
- Next.js 16 (App Router) with React 19, TypeScript and Tailwind 4; Prisma 6 with PostgreSQL and pgvector; Zod at the boundaries, tests with Vitest.
- Runs on AWS with infrastructure in Terraform; deployment runs the migration check, build and service restart in sequence.
- Agents with clear roles: Claude Code implements exactly one task per pull request, Codex reviews the change read-only, and findings go back into the same PR. Visible changes only move on after my visual review, and merging is always manual.
- The agent works as an edit-only worker in a fresh working directory; an orchestrator owns branch, commit and PR and only allows approved paths.
- Redesign on a frozen foundation: design brief, a design system as the implementation contract and briefs per screen – the logic stays untouched.
Status
heyAppa is in development. The accessibility rounds are complete, and the redesign is planned and documented.