Inspiration, and the story of building it this way

Our co-founder Marwa Elsaadany is a Ph.D. translator and certified OTTIAQ member, permit #35182. She signs certified translations, so the liability is hers when a figure moves. Most of her billable hours went not to translating but to re-reading her own work to confirm nothing had. A mistranslated legal document is rarely a bad sentence. It is $500,000 becoming $50,000 inside prose that reads perfectly.

She described that to us in June and the problem stopped sounding like translation. It sounded like verification, which software does better than people. We started building that week, and made one decision early: AI produces the work, deterministic code checks it, because a model asked whether it dropped a number will say no.

Building this way is humbling. Early on a small-sample test told us we were 1.58 chrF++ ahead; at 189 segments the same test came back 1.17 behind. We had been fooled by our own experiment. When AI produces output faster than you can evaluate it, the scarce discipline is not engineering, it is refusing to believe yourself.

How we use AI day to day

Four people, two repositories, no paid staff. That ratio only works because AI is in our process, not just our product.

Google Antigravity is our primary development environment, Kiro our secondary. Both read the same versioned agent context: an AGENTS.md per repository and 36 skill files maintained in parallel, so either follows our conventions rather than its own defaults. An agent working from stale conventions writes code that passes tests and violates the architecture. Documentation is generated, not written: a scheduled job refreshes an evidence index across a codebase too large to maintain by hand.

The most consequential use is adversarial. Our benchmark harness scores errors with an LLM judge running on GPT-4.1 or Claude Sonnet 4.5, never Gemini, and a function refuses any judge from the translator's own family, because a model grading its own family prefers it. We use one vendor's AI to keep another's honest. That is how we promoted Gemini 3.7 Flash on August 14: a pre-registered gate, 158 segments of UN legal text, chrF++ 65.16 to 66.34 at p=0.0020. Evidence, not release notes.

What AI decides, what humans decide

A document enters as PDF, DOCX, spreadsheet or scan and leaves translated with layout intact. Seven numbered stages plus a conditional refinement loop; four call Gemini, the rest deterministic Python.

Gemini decides four things with consequences. It infers jurisdiction, register and currency convention. It proposes terminology with legal nuance notes and locks one default into every clause prompt, enforced by a matcher that can fail the document. It decides whether work ships: one critical finding sets is_completed = False and nothing is delivered. And it decides whether to spend more of our money on itself, re-translating only flagged clauses, capped at three passes, with no human approving that spend.

One layer is not a model. A 1,110-line deterministic verifier re-extracts every figure, date, amount, cross-reference and sub-clause marker from both sides and compares them. Three of four quality dimensions are pure code.

Humans decide what correct means and who is accountable. Marwa designed the decision architecture and the quality weights, and she signs the certification, because an OTTIAQ signature means a liable person stands behind the document. We automated the verification, not the responsibility.

Revenue and traction

Our first customer, a Quebec agri-food manufacturer, bought 34,966 billed words of French to Arabic legal translation, delivered in four hours against a two-week estimate. We invoiced CAD 10,045.44 in services and it is paid, settled by cheque at list rate with no discount. A second engagement is accepted at CAD 8,506.54 for 73,986 words of public health content, delivering after this window so it counts as no revenue. Total expenses for the period were CAD 1,537.03, so we finished profitable.

We sell two ways. Certified human service from CAD 0.22 per word, and a machine-payable API at USD 0.0005 per word where an agent reads a live x402 manifest, signs a USDC payment on Base and receives the translation with no human in the transaction. That channel is live and pre-revenue; we report it as capability, not traction.

Jobs and economic opportunity beyond the founding team

Actual, stated plainly: no jobs created yet. Four founders, unpaid, no hires or contractors. What we enabled is other people's work. A notarial firm closed a client file that could not close without a certified translation. A public-sector centre serving refugees and asylum seekers commissioned material for the population it serves.

Potential is not a hiring plan. Certified translation is capped by how many documents one credentialed person can personally verify. Remove verification from their hours and the credential stops being an hourly ceiling and becomes a multiplier: it earns more while a document costs less. Our first hires will be certified attesters rather than translators, adding capacity to a constrained profession instead of displacing anyone. The larger opportunity is the roughly 2,900 members of our order, each holding their own credential and limited only by time, and any developer who can offer certified-grade translation through our API without employing translators.

Category impact

We entered under Professional Services Access, where the everyday person is someone whose document must be accepted: an asylum claim, a foreign credential, a court exhibit. Access is limited because the verification that makes a document trustworthy is billed at a credentialed rate.

Moving that verification to AI lowers that cost, and not by lowering the standard. On WMT25's blind English to Egyptian Arabic set, 332 official segments across 87 documents, we preserve 92.68% of legal invariants against 82.93% for the nearest of ten frontier systems, all significant on a 1,000-resample paired bootstrap. We publish our losses too, including the corpus where we score worse than a plain prompt, because a system that never reports a loss cannot be believed.

Built With

  • antigravity
  • base
  • cloud-run
  • cloud-sql
  • cloud-storage
  • cloud-vision
  • coinbase-agentkit
  • fastapi
  • firebase-app-hosting
  • firebase-auth
  • gemini-3.6-flash
  • gemini-api
  • google-cloud
  • google-drive-api
  • langchain
  • langgraph
  • memorystore
  • next.js
  • postgresql
  • python
  • redis
  • secret-manager
  • shadcn
  • usdc
  • x402
Share this project:

Updates

posted an update

Gemini 3.7 Flash is now the only model in production

We promoted gemini-3.7-flash on 2026-08-14. Not because a new model shipped, but because a pre-registered gate told us to.

The test: unpc:en-fr dev split, 158 segments of real UN legal text. Prompts byte-identical between the two arms, the model as the only variable, and the decision metric named before the run, so that a favourable move on one of four metrics could not be selected after the fact.

What moved:

  • chrF++ 65.16 to 66.34, at p=0.0020 on a paired bootstrap
  • BLEU +1.55, TER improved
  • 25.9% fewer output tokens
  • 36.7% less wall clock

What we are not claiming. Launch coverage widely described 3.7 Flash as half the price of its predecessor. Relative to what we were actually paying, it is not: both sit at $0.75 per million input tokens, because 3.6 was discounted to match. Our cost per segment fell because the model emits fewer output tokens at the same rate, not because the rate changed. We measured instead of repeating the launch post.

One honest wrinkle: 3.7 Flash ignores our requested temperature, so this system is no longer bit-reproducible between runs. That is written into the run record rather than quietly dropped from our reproducibility claim.

3.6 Flash stays in the price book. Every figure we published before August 14 was measured on it, and those rows have to stay priceable.

Full run record: benchmarks/journal/2026-08-14/

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