Building “99 Names of Allah”: A Month of Learning, Bugs, and Small Wins

A month ago, I sat down to build something simple: an app that teaches you one beautiful name of Allah every day. No fancy plan, no big team—just me, my laptop, and an idea I really cared about. Here’s the story of how it went from a blank page to a real website people can use, one week at a time.

Week 1: Just Get Something Working

Every project starts messy, and mine was no different. The first goal was small: show one name a day, in Arabic, English, and Urdu, with a button to hear it recited out loud.
That sounds easy, but even something small has a hundred tiny decisions hiding inside it. What happens when someone opens the app for the first time? What if they close it and come back tomorrow? Does it remember where they left off? I decided every name should save its own progress automatically, so nothing gets lost between visits, even if the person never makes an account.
By the end of week one, I had the heart of the app working:

  • A card that shows today’s name, its meaning, and a “Learned” button
  • A tasbih counter so people could count their recitations right on the card
  • Audio recitation for each name, so it’s pronounced correctly

It didn’t look pretty yet. But it worked, and that felt like a real milestone.

Week 2: Making It Feel Like a Habit, Not Just a List

Once the basics worked, I asked myself a question: why would someone come back every day? An app that lists 99 names isn’t very different from a book. What makes it special is the feeling of building a streak—like a small daily promise you keep to yourself.
So that week I added:

  • Streaks and milestones: little celebrations at 10, 25, 50, and all 99 names learned
  • Search and themes: so instead of scrolling through numbers, you could look up names by feeling, like “mercy” or “power”
  • Quiz mode: a quick 10-question game to test what you remember, with only 10 seconds per question to keep it fun and a little challenging
  • Shareable cards: a clean image of each name you could send to family or post online

The hardest part here wasn’t the code; it was the design. I wanted the app to feel calm and respectful, like something you’d actually want to sit with during a quiet moment, not a flashy game app. I went back and forth a lot on colors and fonts before settling on a warm, gentle look with soft greens and gold.

Week 3: The Invisible Work: SEO and Notifications

This week was less exciting to build but really important. Nobody sees this part of an app, but it decides whether people can even find it.
I did a full SEO audit, basically making sure that when someone searches “99 names of Allah” on Google, my site has a real chance of showing up. That meant fixing technical details like:

  • Making sure every page had the correct “canonical” address (so Google doesn’t get confused by duplicate versions of the same page)
  • Writing clear titles and descriptions for each page
  • Adding structured data that helps search engines understand what the page is actually about, not just what it says

I also connected Firebase Cloud Functions to send a scheduled push notification once a day, reminding people it’s time to learn a new name. Setting up something to run automatically, every single day, without me touching it, was a small thrill the first time it actually fired on schedule.

Week 4: Blog, Voice, and Making It Feel Complete

The last stretch was about turning the app into a full little world. I added:

  • A blog section: with real articles about the meanings of the names, written and stored as structured content so new posts could be added easily
  • Firebase Storage integration: for the audio files, so recitations load quickly and reliably
  • An iOS home screen guide: with step-by-step screenshots, showing people how to add the web app to their phone so it opens like a real app: no browser bar, no clutter

That last one seems small, but it mattered a lot to me. A lot of people don’t want to bookmark a website, they want an icon on their home screen they can just tap. Writing clear instructions for something like this takes more care than you’d think, because you have to imagine someone who’s never done it before, sitting there confused.

The Challenges Nobody Sees

If I’m honest, most of the hard parts weren’t glamorous:

  • Getting the Urdu and Arabic text to display correctly everywhere, in the right direction, at the right size, without breaking the English layout next to it
  • Making sure progress saved correctly—nothing is worse than losing your streak because of a bug
  • Balancing “simple” with “complete.” Every time I added a feature, I had to ask: does this make the app feel calmer, or does it just make it busier? A few ideas got cut because they didn’t fit the quiet, reflective feeling I wanted.

There’s no dramatic bug story here, just a lot of small, careful decisions, repeated over and over, until the whole thing holds together.

What I Learned

Building this taught me that a good app isn’t really about how much you can add, it’s about how much you can leave out while still making something people want to return to. A daily habit tool lives or dies on small details: does it load fast, does it remember you, does it feel calm instead of demanding.
I also learned that the “invisible” work—SEO, notifications, instructions pages—often takes as much care as the visible features. Nobody claps for a well-written canonical URL, but without it, nobody finds the app at all.

What’s Next

There’s still more I want to add to improve how the daily reminder feels. But for now, I’m proud that something I started as a rough idea a month ago is a real, working site that people can open every day and learn something meaningful from.

If you want to see it for yourself, you can check it out at 99namesofallah.rizwanrafiq.com.

Thanks for reading — and if you’re building something of your own, my advice is simple: start small, ship it, and let the daily use teach you what to build next.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.