Skip to main content
Qomero
All work

Case study · Product, AI

Marking that admits when it fails.

Synolang marks and practises IELTS Writing (WiMentor) and Speaking (SiMentor), one account. The web app runs at despa.qomero.vn.

Status: LIVE3,179 registered users

Screenshot of the despa.qomero.vn homepage

Context

Qomero's product for IELTS learners, live at despa.qomero.vn.

Problem

IELTS learners need to know which criterion holds them back, and what to change.

Published scope

WiMentor (Writing) and SiMentor (Speaking) under one account, one credit balance, one history.

What we did

Marking per criterion, Task 1 charts read from a screenshot, sample answers at a target band. Every run returns a full, partial or failed result and says which. Credits are reserved first and charged only on a result.

Verified result

3,179 registered users (Synolang, as of 2026-10-30).

Limits

Registered users, not paying or active users. Counted on 2026-10-30.

  • 3,179

    registered users

    Source: Synolang, as of 2026-10-30

Before the build

IELTS learners need to know which criterion holds their writing back and what to change. A band score alone does not say how to revise.

Synolang was built as one place to learn: practice worth doing, and documents for every skill.

What we decided

  1. Failures are not hidden. Every run returns a full result, a partial result or a failure, and says which.

  2. Charge only for a result. Credits are held before a run and charged only when there is one.

  3. One data contract. WiMentor (writing) and SiMentor (speaking) share it; any drift fails the check.

  4. One account. One credit balance and one history across writing and speaking.

Charge for a resultCharge for a result. Reserve credits; Marking run; Full result; Partial result; Failure; Charge credits; Not charged.Reserve creditsMarking runFullresultPartialresultFailureChargecreditsNotcharged
One shared accountOne shared account. WiMentor · Writing; SiMentor · Speaking; Shared data contract; Shared; Account; Credit balance; History.WiMentor· WritingSiMentor· SpeakingShared data contractSharedAccountCreditbalanceHistory

Architecture

SYNOLANG stack diagram. Data flows are not specified in the source; no arrows are drawn.

Drawn from documented technologies; data flows are not inferred.

Synolang

Stack: Python, FastAPI, HTMX, Next.js, Supabase. Marking uses a model we trained ourselves. Live at despa.qomero.vn.

What the system handles

  • Task 1 and Task 2 essays are marked criterion by criterion, with feedback and suggested revisions.
  • Speaking is assessed; shadowing is practised session by session.
  • Task 1 charts are read from a screenshot.
  • Sample answers are written at the learner's target band.
  • A run fails part-way: the learner sees it marked failed and is not charged.
Assessment and practiceAssessment and practice. Essays; Speaking; Criterion by criterion; Speaking assessment; Feedback and revisions; Shadowing.EssaysSpeakingCriterionbycriterionSpeakingassessmentFeedbackandrevisionsShadowing

Result

  • 3,179

    registered users

    Source: Synolang, as of 2026-10-30

More case studies

Sound familiar?

Tell us how that work runs today. We start there.