JF
Back to case studies

Case Study

FrenchPractice: AI-assisted verb practice that adapts to the learner

FrenchPractice is a language learning product I built to make French verb conjugation practice more personal, more explainable, and less repetitive than generic exercise banks.

Founder / AI Product EngineerApril 2026 - July 2026AI-assisted learning product

Why I Built It

Learning French has made one thing obvious to me: practice is most useful when it is specific to what you are actually trying to learn. Generic drills can help, but they often miss the verbs, tenses, and patterns that are currently blocking progress.

FrenchPractice started from that frustration. I wanted a system where a learner could bring their own verb list, practise against their real weak spots, receive explanations when they made mistakes, and keep being challenged without the product becoming a thin wrapper around generic AI output.

Product Idea

The core workflow is a stateful learning loop. A user maintains a personal verb list, the system tracks exposure and review history, and new exercises are generated only when existing practice material is insufficient, stale, or too recently viewed.

That makes the AI layer part of the learning system rather than a novelty feature. It has to respect user progress, avoid unnecessary generation, and create targeted exercises that support spaced repetition instead of overwhelming the learner with endless new content.

What I Built

I built the full product workflow across application UI, server-side logic, database state, AI orchestration, and interaction design.

  • Personalised verb lists that drive targeted conjugation practice.
  • A spaced repetition scheduling system based on user history, recency, and review state.
  • Mistral AI generation workflows for creating new exercises when the available practice pool is not useful enough.
  • AI-generated explanations that help users understand conjugation mistakes, grammar patterns, and verb-specific usage.
  • Dispute and correction fields so users can challenge generated answers and provide feedback for later review.

Engineering Approach

The main technical challenge was balancing novelty with repetition. A useful learning system should not regenerate everything just because it can, but it also should not keep showing the same stale examples when a learner needs fresh practice.

I designed prompts and generation constraints to produce targeted conjugation exercises while reducing generic, repetitive, or pedagogically weak AI output. The system checks whether suitable exercises already exist before generating new ones, which keeps the AI usage deliberate and tied to the learning workflow.

What It Shows

FrenchPractice is representative of the kind of work I enjoy most: starting with a real user problem, designing the workflow, building the product end to end, and using AI where it makes the experience meaningfully better.

It also reflects how I think applied AI products should be built. The model is not the product. The product is the complete system around the model: state, constraints, feedback, review, user trust, and the practical details that make it useful over time.