Project Story — Flamingo AI
Inspiration
In a crowded market of language apps, most products follow the same script: fixed lesson flows, repetitive exercises, and one-size-fits-all content. Learners get bored, progress stalls, and cultural nuance is ignored. We wanted an app that feels alive — one that adapts to a learner’s level, cultural background, goals, and mood. Flamingo AI was inspired by that gap: a desire to make language learning adaptive, customizable, and genuinely joyful.
What it does
Flamingo AI is an AI-driven, offline-friendly Progressive Web App that delivers personalized language lessons and practice exercises.
Core features:
- AI-Generated Lessons: Dynamic exercises (multiple-choice, short answer, contextual dialogues) generated on demand based on user level and interests.
- Adaptive Difficulty: Content evolves with the learner — the AI adjusts difficulty, vocabulary, and scenarios.
- Multilingual & Cultural Context: Support for arbitrary language pairs and culturally appropriate examples.
- Gamification & Motivation: XP, streaks, and progress tracking to keep learners engaged.
- Offline-First Experience: Fully usable without network connectivity; syncs progress when online.
- Accessibility & Localization: Screen-reader support, keyboard navigation, and easily translatable UI.
How we built it
We chose a modern, testable stack focused on performance and developer velocity.
Frontend & tooling
- React 19 + TypeScript 5.8
- Tailwind CSS for styling
- Vite 7, Workbox service worker, code splitting and lazy loading for PWA behavior
AI & orchestration
- Kiro for orchestrating AI workflows and calling external LLMs for content generation and automated QA
Testing & deployment
- Vitest + Playwright for unit & E2E tests
- Automated accessibility checks and content validation scripts Framing progression this way guided how we design content generation and difficulty ramps.
Challenges we ran into
- Balancing AI creativity vs. curriculum coherence. Free-form generation is powerful but can produce inconsistent difficulty or bad examples; we added validation layers and templates to constrain outputs.
- Offline capability. Shipping an offline-first experience meant careful caching strategies, compact model fallbacks, and robust sync logic.
- Hackathon constraints. Timeboxed development forced prioritization: ship a highly polished core experience rather than many half-finished features.
Accomplishments we're proud of
- A production-ready PWA with high Lighthouse scores and real offline usability.
- A scalable multilingual framework where new language pairs can be added quickly and reliably.
- Automated content validation and a testing suite covering UI, E2E flows, and content correctness.
- Clean, accessible UI and a gamified experience that keeps learners returning.
What we learned
- Orchestrating AI workflows (via Kiro) requires both creative prompts and guardrails — prompts alone aren’t enough.
- Cultural context materially improves retention and engagement; literal translations aren’t enough.
- Offline-first apps demand a different mental model for sync, state reconciliation, and UX.
- Good engineering practices (types, tests, CI) pay off hugely when iterating fast under pressure.
What’s next for Flamingo AI
- Native mobile builds (React Native) for better device integration and background sync.
Built With
- css
- gemini
- kiro
- react
- tailwind
- typescript
- vite
- vitest
- workbox


Log in or sign up for Devpost to join the conversation.