I put the UAE Dirham symbol on the web before the browsers caught up
The UAE Dirham got its own currency sign, U+20C3, in 2025. I shipped dirham, an npm package that renders it as a web font, a CSS utility, and a React component, so any product could show the real symbol before the fonts and keyboards caught up. It now pulls more than 34,000 downloads a year. I did the same for the Saudi Riyal, U+20C1, with riyal, which carries a Tailwind plugin, a Next.js font helper, VAT helpers, and currency conversion.
Why does a currency symbol need a package?
A new Unicode character takes years to reach every device. In that gap, a payments screen either shows a blank box or falls back to "AED" and "SAR." For a fintech product in the Gulf, that blank box is a trust problem on the exact screen where trust matters most. dirham and riyal close the gap today, on every browser, with one import.
The Dirham sign ships in Unicode 18.0 in September 2026. Until every phone, browser, and font update lands, and that takes years, the symbol renders as a missing glyph on most devices. A package that carries its own web font sidesteps the whole wait.
What do the packages actually do?
dirham gives you the symbol as a self-hosted web font, a CSS class, a React component, and a Web Component for Vue, Angular, Svelte, and plain JavaScript. Version 1.5.3 adds animated counters, masked currency inputs, live FX hooks, a Tailwind plugin, and a Next.js font helper.
riyal covers the same ground for the Saudi Riyal across React, Vue 3, Svelte 5, React Native, and Web Components, and it throws in VAT helpers and currency conversion because a Saudi checkout usually needs both.
Who uses them?
Developers building for the UAE and Saudi markets, across the whole front-end stack. The two packages together run past 36,000 downloads a year. For a regional currency utility, that is real adoption, not a hobby repo, and it maps to actual products showing real prices to real customers in the Gulf.
What does this have to do with AI in fintech?
The same instinct runs through both. Find the gap between what the standard promises and what production needs, then close it in code. A currency symbol that browsers do not render yet is a small version of the problem I solve at scale, shipping AI inside regulated fintech where the demo works but the production system has to survive compliance, legacy cores, and real load.
I ship small things people use, and I ship them before the standard is comfortable. That is the whole job.