The 99 beautiful names of Allah — Arabic, transliteration, English and Urdu meanings, with a short reflection for each. Fully offline: no account, no network permission, no analytics.
- Package / bundle ID:
com.muzamil.asmaulhusna - Themes: System, Light, Dark (ink blue, ivory + bronze)
- Content:
lib/src/data/names.dart
For reproducible app captures and Play Store artwork, see the screenshot guide.
| Font | Used for | Source | Licence |
|---|---|---|---|
| Jameel Noori Nastaleeq | Urdu | urdufonts.net | Free of charge for Urdu lovers |
| PDMS Saleem Quran | Arabic | urdunigaar.com | © 2001 Pakistan Data Management Services |
| Google Sans | Text | Google Fonts | SIL OFL 1.1 |
| Boldonse | Titles | Google Fonts | SIL OFL 1.1 |
The same credits appear in the app under Settings → Fonts & credits.
assets/fonts/ holds copies trimmed to exactly what the app draws (about
350 KB in total; Jameel Noori Nastaleeq alone goes from 10.5 MB to 75 KB).
After changing any text in lib/, download the full fonts into
tool/fonts_src/ (see its README) and regenerate:
pip install fonttools uharfbuzz
python3 tool/subset_fonts.py
The script lays out every Urdu string with HarfBuzz, keeps only the glyphs used, and checks the trimmed font lays them out identically.
The icon uses the approved stacked Urdu اسماء الحسنیٰ wordmark: outlined
Jameel Noori Nastaleeq lettering in muted bronze on ink blue. The same
AppLogo widget appears in Settings → About and generates the native icons.
The vector master and usage notes live in design/brand/.
To update the vector geometry and regenerate every icon:
python3 tool/icon/build_wordmark.py
tool/icon/make_icons.sh
The first command requires fonttools; the second requires Flutter and
ImageMagick. Exports include iOS icons, Android legacy/adaptive/themed icons,
the Play Store icon (store/app_icon.png), website icons and the README asset.
After icon changes, also run tool/screenshots/make_screenshots.sh so screenshots
show the current identity.
website/ is the landing page, live at
https://99.teamsazen.com (Cloudflare Pages). node build.mjs fills src/index.html with all 99 Names read from
lib/src/data/names.dart, so the site's Names section never drifts from the
app, writes one page per Name at /names/<name> from src/name.html (the two
Names transliterated Al-Majid get their number in the URL: al-majid-48,
al-majid-65) and generates sitemap.xml with every page, and copies public/ (fonts from assets/fonts/, screenshots) and the
privacy policy from docs/privacy-policy/ into dist/. The privacy policy URL
for Google Play (and any later store) is https://99.teamsazen.com/privacy;
edit docs/privacy-policy/index.html and redeploy to change it. Deploy with
cd website && npm run deploy. Arabic and Urdu use the app's trimmed fonts, so
any new Arabic or Urdu text on the site must already exist in the app; Boldonse
and Google Sans are full copies.
The site uses the Sazen studio design shared with teamsazen.com and the other
app sites: a floating glass header that always stays in view, full-width
sections, the app's ivory, ink blue and bronze in light mode and pure black in
dark mode, and a dark footer that links back to https://teamsazen.com. Styles
live in website/public/styles.css (also used by the privacy page), motion and
the Names search in website/public/site.js, with Lenis (MIT) in
website/public/js/ and Plus Jakarta Sans (SIL Open Font License) self-hosted
in website/public/fonts/. Nothing is loaded from other servers.
flutter build apk --release --split-per-abi
flutter build appbundle --release
flutter build ipa --release
Android release builds are still signed with the debug key — add a signing
config in android/app/build.gradle.kts before publishing.
The source code is licensed under MIT: use, modify, and share all or part of it, including commercially, while keeping the required copyright and license notices.
The 99 Names name, logos, app icons, and branded artwork are not licensed for reuse as your own app branding. Published forks should use their own identity unless permission is granted. See the branding policy; third-party content retains its own terms.
99 Names is fully free. To improve the official app under the 99 Names name, contributions here are always welcome.
Contributions are welcome! Open an issue or send a pull request.









