You translated your product.
Now prove it's ready.
Ritla crawls your site, runs 41 deterministic Arabic and RTL checks across breakpoints, and returns a scored report with evidence and developer-ready fixes, before your users find the problems for you.
Free · one page · no signup · 3 scans a day
14 issues. Weakest page /checkout
Deterministic by design. Measured, not asserted.
“Ritla scores 99/100 on Ritla. The missing point is the tracked-Arabic specimen printed on our own page, which really is a defect.”
The engine that never guesses
Deterministic analysis of the DOM and computed styles. Fast, reproducible, and conservative by design: no AI judgment calls at scan time.
- 1R001 · criticalNo dir="rtl" on the root: the whole page reads left to right.
- 2R051 · highletter-spacing on Arabic tears the connected script apart.
- 3R070 · mediumName field forced LTR: Arabic enters against the caret.
- 4R062 · medium"$" price on a SAR/AED market page.
- 5R040 · highButtons overflow the 390px viewport: horizontal scroll.
Layouts break differently at every width. Ritla renders all 3.
Evidence, not opinions
Every issue carries a screenshot, a selector, a severity, a confidence level, and a concrete fix. Exportable as tickets your team can act on today.
The before and the after, rendered
Live text in this page's own CSS, not a screenshot: tracking tears Arabic letterforms apart, and you can see it without reading a word of Arabic. Every issue carries the same pair.
letter-spacing: 0.3emletter-spacing: 0:lang(ar) { letter-spacing: 0; }Catch regressions the deploy they ship
Signature diffing is live in the dashboard today: every re-scan reports what is new, what is fixed, and what regressed. Scheduled re-scans. Email when a scan finds regression.
in buildSlack, webhooks and CI · deploy triggers
“3 new Arabic issues since your last scan”
A gate in your CI
Ritla runs as one step in the workflow you already have, and fails the build on critical Arabic defects — so a regression stops at the pull request rather than at a customer.
Alerts today · Scheduled re-scans · Email when a scan finds regression
Prove your
Arabic is ready
Free · one page · no signup · 3 scans a day
Anyone shipping Arabic
with their name on it
Built first for product teams entering Saudi Arabia and the UAE with no Arabic QA on staff. Nobody on your team needs to read Arabic to know whether the Arabic build broke.
Launching in the GCC
You localized for Saudi and the UAE, but nobody on the team reads Arabic. Score every release and know before your market does.
Team plan · score every release →Where checkout is revenue
A misdirected input or a "$" price on an Arabic checkout costs real orders. Every report names your weakest page, so checkout cannot hide.
Starter or Team · scan on demand →Proving localization work
Attach a before and after Ritla score to every delivery. White-label reports are in build; early partners get them from us, manually and first.
Agency plan · partner programme →Arabic changes how
an interface behaves
Four behaviors, rendered live in this page's own HTML and CSS. No screenshots, no mockups. You do not need to read Arabic to see which side is wrong.
طلبك رقم 48213
Mirroring is layout, not translation
Both rows are the same markup. The shipped one hardcodes its direction, so translated Arabic sits in an English skeleton: reading order, status and action all on the wrong side.
<html dir="rtl">Phone numbers scramble without isolation
The digits are in the correct order in the markup, both times. Spaces between digit groups are direction-neutral, so the groups reorder and the plus sign detaches. One attribute holds the number together.
<span dir="ltr">+966 …</span>Inputs inherit direction, except where they must not
Type in them. The shipped name field is locked LTR, so Arabic enters against the caret. The fix is not forcing everything rightward: the email field stays LTR on purpose, because identifiers read left to right. Knowing the exception is the competence.
input[type=email] { direction: ltr }One numeral system at a time
Both rows carry the same numbers. The shipped one drifts between Arabic-Indic and Western digits mid-sentence, which real localization pipelines do constantly; the ready one commits to a system.
Intl.NumberFormat("ar-SA-u-nu-latn")Built to never cry wolf
Latin text on an Arabic page is often correct. Ritla is engineered to prefer a missed flag over a false alarm.
Start free. Pay when it's part of your process.
Checkout is in build, so paid plans are switched on by hand — usually the same day. Ask below, or write to hello@ritla.app.
Ask for a workspace
If your first full report surfaces nothing you think is worth fixing, email hello@ritla.app and we refund you. No form, no argument, no questions about what you tried.
Level up your Arabic build
View all guidesFair questions
What is Ritla?
Automated QA for Arabic and RTL quality. You give it a URL; it crawls the site, runs 41 deterministic checks across breakpoints, and returns a scored report with screenshot evidence, affected selectors, and suggested fixes.
How is Ritla different from Lighthouse or a localization platform?
They measure different things. Localization platforms QA your translation strings and workflows; browser suites test whether pages render across devices. Ritla renders the Arabic product your customer actually sees and checks the result itself: direction, bidi, mirrored layout, Arabic typography, numerals, forms. Translated strings are the input. Ritla measures the output.
My site already has dir="rtl". Am I done?
No, and that is exactly the point. A page can be technically compliant and still be wrong for an Arabic user: torn letterforms, unmirrored components, misdirected inputs, Western number formats. Ritla measures Arabic readiness, not attribute presence.
What about false positives?
They are the product risk, so the engine is conservative by design: allowlists for brands, URLs and code; confidence tiers on heuristic checks; per-rule issue caps; and every rule is tested against both broken fixtures and clean Arabic pages that must not trigger it.
Does Ritla use AI to judge my site?
Not at scan time. Every check is deterministic and reproducible: the same page always gets the same score. A vision-based judgment layer for things like layout mirroring is on the roadmap, clearly flagged and separate.
Can it run in CI?
That is the plan for team accounts: scan on every deploy, diff against the last release by signature, and fail the build on new critical issues. Alerts go to Slack, email, or a webhook. Today the scan runs from the dashboard and the public page.
Can you fix what you find?
Yes. Beyond the exportable tickets, we take on full LTR to RTL conversion as a project engagement, delivered by the team behind the rule engine and certified by a clean final scan.
What if the report tells me nothing I did not already know?
Then you should not pay for it. Email hello@ritla.app and we refund you, with no form and no questions about what you tried. The engine is deterministic, so if it found nothing worth fixing on your site, that is a fact about your site rather than a negotiation.