All Case Studies
Case study · Web app · Live

Every introduction, explained.

We design, build and maintain Amanina for Mama Hala Consulting: a matchmaking web app for families who marry with intention, in English, Arabic and French.

Mama Hala Consulting runs Amanina. Amanina's own press page names who built it. Open amanina.ca Amanina's press page

amanina.ca
The amanina.ca homepage in English: the hero and three screens from the app
Screenshot · amanina.ca · 10 Oct 2026
EN · AR · FR
Languages
4
Parts to every introduction
53
Days to public launch
From our build log, 4 Oct 2026
791
Commits after launch
From our build log, 4 Oct 2026

Where each fact comes from: amanina.ca and its press and privacy pages (the link sits beside each claim), or our own build log, dated 4 October 2026. Amanina publishes no member, match or success figures, so this page has none. Screens marked Demo show made-up people.

The brief

Mama Hala Consulting wanted matchmaking the way families have always done it, carried into an app: a few introductions at a time, each one chosen and explained; family brought in with the member's consent; every faith kept as the member holds it — Muslim, Christian, Jewish, Druze and secular alike; real people only. It had to read naturally in English, Arabic and Quebec French, and install from a link, with no app store between a family and the door. The Marriage Compass — “Questions Our Family Consultants Ask” — is Mama Hala Consulting's own. Our job was to carry it into software without flattening it.

Built to keep bots, fakes and abuse out

The two systems that do the most to keep Amanina safe — and where a person still decides.

1

A live selfie, read by Claude's vision

Before anyone is introduced, each member proves they're a real person with a live selfie, or a government ID through Didit. Anthropic's Claude reads the selfie: is this one real person, here right now — not a bot's upload, a screenshot, a photo of a screen, a printout, a stock or celebrity picture, or a computer-generated face? And is it the same person as the profile photos?

  • Only members who pass are matched — on both sides of every introduction.
  • A new photo goes public only once it matches the member's selfie. Until then it stays private.
  • A clear fail is asked to try again. Anything unclear — or a selfie that doesn't seem to match the photos — is held for a person on Amanina's team, never rejected automatically.
  • The selfie itself is never stored.
  • If a government ID and the profile disagree, a person reviews it.
2

Every photo and every message, screened against the community guidelines

Claude screens each photo before it's stored and each message as it's sent. Nothing is sampled.

  • Photos: explicit images are refused outright, and only a photo that clearly passes is stored — otherwise the member is asked to try again. The same image can't be reused on another account.
  • Messages: scam scripts, requests for money, pushing a new contact off the app, pressure and threats, impersonation, harassment, hate and sexual content.
  • The most serious — threats of violence, sexual coercion — are stopped before they're delivered. Anything else flagged is delivered with a mark and put in front of a person, who decides: dismiss, warn, ban, or close the conversation.
  • Members' own reports land in the same queue.
Both sides of one introduction
Demo · made-up people, our own words

Step through one introduction the way Amanina makes it, from two people's own words to the moment both say yes. Nobody here is a real member, and nothing here is generated: we wrote every line.

  1. 1Two people, in their own words

    Each fills in the Marriage Compass: what they believe, how they live, what they're looking for. Photos stay blurred.

    Member A · reads EnglishDemo
    • A home where everyone still eats together.
    • Faith kept quietly, every day.
    • Children within a few years.
    • Photos: blurred
    Member B · reads ArabicDemo
    • بيتٌ يجتمع فيه الجميع حول المائدة.
    • إيمانٌ يُعاش بهدوء، كلَّ يوم.
    • أطفالٌ خلال سنواتٍ قليلة.
    • الصور: مموّهة
  2. 2Checked first

    Some things are never traded off against a good conversation, so they are checked, not weighed.

    …and a pair that fails one is never read.

    A and B
    1. A real person, confirmed
    2. Age, and who each is looking for
    3. Faith: within their own faith; across faiths only when both have said they are open
    4. What each has ruled out
    5. Close relatives kept apart for members who verified their ID — by one-way hashes, not names

    Member C: stopped at something B ruled out. Nothing more is read.

  3. 3The reasoning, in four parts

    Not a score out of a hundred. Four sections in plain words, before either of them decides: Amanina's own format.

    Demo
    What caught our eye

    You both described the same home: one where everyone still eats together.

    Why you two

    You keep your faith the same way, you both want children within a few years, and each of you named a parent as the first person you ask.

    Worth asking

    What does ‘close to family’ look like on an ordinary weekday?

    Something to watch for

    You expect to move for work; she plans to stay near her family. Better named now than found in month six.

    FitStrong fit
  4. 4A band, not a number

    A percentage claims a precision nobody has. Amanina says it plainly: a decimal it cannot stand behind is false precision. So the card carries a band.

    Demo numbers84%87%81%
    Demo
    FitStrong fit
  5. 5Same introduction, each in their own language

    One introduction, two readers. He reads it in English; she reads it in Arabic.

    Demo
    What caught our eye

    You both described the same home: one where everyone still eats together.

    Why you two

    You keep your faith the same way, you both want children within a few years, and each of you named a parent as the first person you ask.

    Worth asking

    What does ‘close to family’ look like on an ordinary weekday?

    Something to watch for

    You expect to move for work; she plans to stay near her family. Better named now than found in month six.

    FitStrong fit
    Demo
    ما استوقفنا

    وصفتما كلاكما البيتَ نفسه: بيتًا يجتمع فيه الجميع حول المائدة.

    ما يجمعكما

    تعيشان إيمانكما بالطريقة نفسها، وتريدان أطفالًا خلال سنواتٍ قليلة، وسمّى كلٌّ منكما أحدَ والديه أوّلَ من يستشيره.

    سؤالٌ يستحقّ أن يُطرَح

    ماذا يعني لكِ «القرب من العائلة» في يومٍ عاديّ من أيام الأسبوع؟

    ما يستحقّ التأمّل

    تنوين البقاء قرب عائلتكِ، وهو يتوقّع الانتقال من أجل عمله. خيرٌ أن يُسمّى هذا الآن من أن يُكتشَف في الشهر السادس.

    التوافقتوافق قوي
    Demo
    Ce qui a retenu notre attention

    Vous avez tous les deux décrit le même foyer : un foyer où toute la famille se retrouve encore à table.

    Pourquoi vous deux

    Vous vivez votre foi de la même manière, vous souhaitez tous les deux des enfants d'ici quelques années, et chacun de vous a nommé un parent comme la première personne qu'il consulte.

    À se demander

    À quoi ressemble « être proche de la famille » un jour de semaine ordinaire ?

    À surveiller

    L'un de vous compte rester près de sa famille ; l'autre s'attend à déménager pour son travail. Mieux vaut le nommer maintenant que le découvrir au sixième mois.

    AffinitéForte affinité
  6. 6Nothing moves until both say yes

    Answer for each of them.

    Member A · reads EnglishDemo
    Member B · reads ArabicDemo
    • Photos clear for both at once, and either can blur them again. Families can meet first, in the Majlis.
    • Nothing moves.
Decisions we built in — and where to check them
  1. 1

    A band, never 87%

    A decimal nobody can stand behind is false precision, so fit is shown in words.

    “Strong fit”, never 87%. — amanina.ca
  2. 2

    Blurred until it's mutual

    Photos clear only when both are interested, and either can blur them again.

  3. 3

    Real people first

    Every member is confirmed a real person before matching begins. The live selfie is checked, then discarded.

  4. 4

    Some mornings, nobody

    When no one is worth introducing, the app says so. The queue is never padded.

    Some mornings, nobody. — amanina.ca
  5. 5

    Faith, as each holds it

    Introductions begin within each member's own faith, and cross faiths only when both have said they are open.

  6. 6

    Four sides, not two

    Family comes in with the member's consent; a parent can begin the search, but their son or daughter's word decides.

What Amanina keeps, and what it never keeps

Drawn only from Amanina's published privacy policy, and no deeper.

  1. The live selfie
    Checked that it's a real, live person, then discarded. Never stored on Amanina's servers.
    Discarded
  2. ID document and its selfie
    Uploaded straight to Didit's own hosted flow. They never reach Amanina's servers.
    Never reaches Amanina's servers
  3. The lineage part of the name on an ID
    Turned into one-way hashes that keep close relatives apart. The name itself isn't kept.
    KeptOnly the hashes
  4. Photos
    Screened, then kept blurred to others until interest is mutual.
    Kept
  5. Profiles, messages and consents
    An encrypted store in Canada.
    Kept
  6. Matching, scam scanning, photo screening and the real-person check
    Anthropic's Claude, with Amanina's own scoring rules.
    Not used to train models

Source: amanina.ca/privacy, sections 5 to 7. If it isn't in the policy, it isn't on this map. amanina.ca/privacy

No face check says no on its own

When a photo and a live selfie don't seem to match, the decision goes to a person, or back to the member to try again — never to an automatic rejection. Face technology errs most on the people Amanina serves: women, people in head coverings, people with darker skin. Modest dress is never counted as a mismatch.

Photo and selfie don't seem to match
  • A person decides
  • The member tries again
  • Automatic rejection
How it's built

We built Amanina as one TypeScript monorepo: a public site and an installable web app from a single Expo codebase, an API behind them, and shared packages for languages, legal text and the matching rules. Introductions are read by Anthropic's Claude together with Amanina's own scoring rules, as its privacy policy says. It reads them only after the checks that are never traded off.

Next.js 16ExpoReact Native WebTypeScriptTurborepoUpstash RedisVercelStripeResendDiditWeb PushPasskeys (WebAuthn)Anthropic Claude
Launch was day 53. We kept going.

Amanina went live on 9 July 2026. By 4 October our build log had 1,492 commits on main, 791 of them after launch. Mama Hala Consulting runs Amanina; we keep the platform running:

  • 14 scheduled jobs — matching runs, reminders, the final deletion after the 7-day grace period when a member leaves, and a watchdog.
  • A console for the people who run it, with alerts when something needs a human.
  • A copy-review ledger: approved wording in every language is registered, and the test chain fails if it changes unreviewed.
  • 181 API routes behind one app installed from the browser.
  1. 17 May 2026First commit
  2. 9 July 2026Public launch
  3. Maintained since

From our build log, 4 Oct 2026

The result

Amanina has been live since 9 July 2026, installed from the browser on iPhone, Android, Mac and Windows, in English, Arabic and Quebec French. Every member is confirmed a real person, and every introduction is explained before anyone decides. We are still building it.

3
EN · AR · FR
Languages
4
a band, never a percentage
Parts to every introduction
53
Days to public launch
From our build log, 4 Oct 2026
791
to 4 Oct 2026
Commits after launch
From our build log, 4 Oct 2026
What neither of us publishes, and why
  • Member, match or success numbers. Amanina says a number would be read as a promise. amanina.ca/press

  • Prices and our fees. Pricing is Amanina's to state, and ours is between us and our client.

  • The matching rules themselves. They belong to Amanina.

  • Anyone's story. Not even the ones members chose to share on amanina.ca.

One client, two builds
mamahala.caamanina.ca

Mama Hala Consulting's own practice platform came first: a website, a 12-phase booking flow and an iPhone admin, in English and Arabic. Amanina came second.

Read the first case study

Building something people will trust with what matters most? Tell us what it has to get right.

Timeline: 53 days to launch · maintained since
Amanina — Matchmaking Web App | EiGENRA