Skip to content
Back to Series Top
LingoBun

LingoBun: Hardening an AI Language-Learning Product for Production

Published: 15/02/2026

Shipped an LLM-powered language-learning app with the unglamorous half of AI engineering in place: Redis-backed rate limiting and cost caps on every AI call, Zod-validated config, and 180 Vitest tests protecting the pipeline from regressions.

Stack
Next.jsRedisZodVitest

Context

Language learning has never lacked tools. Over the years, I've tried various apps that promise faster, easier, or more fun ways to learn. Some were beautifully designed. Others were highly engaging. Yet despite the time spent tapping, swiping, and collecting virtual rewards, real progress was often limited.

LingoBun was born out of this frustration—and out of a belief that serious learning still works, and can work even better when supported by thoughtful design.

This is one of several posts on LingoBun's design and development — see the full collection for the rest. It also became my testbed for the unglamorous half of shipping an LLM product: rate limits and cost caps on every AI call, environment config validated with Zod, and a 180-test Vitest suite protecting the pipeline from regressions.

Beta version of LingoBun’s main screens:

screens of LingoBun: part 1
Screens of LingoBun: part 1

screens of LingoBun: part 2
Screens of LingoBun: part 2

screens of LingoBun: part 3
Screens of LingoBun: part 3

You May Also Like