ASO
    App Store
    Indie Dev
    Building in Public

    Building in Public Challenge: Winning the ASO

    A practical guide to App Store Optimization for indie developers. Learn how to choose keywords, craft titles, and rank higher with limited resources.

    Berkin Sili
    January 2, 2026
    6 min read

    Although I've had the chance to work on iOS apps used by almost 100k people, my indie apps haven't been very successful so far.

    The most successful one peaked at around 8k users, which was still far from what I was hoping for. (And to be fair, that app already had a fan base on Google Play — I only built the iOS version while collaborating with the original creator.)

    As a developer, coding is the fun part for me. Shipping features, improving architecture, polishing flows… that's where I'm comfortable.

    But I often find myself going too deep into details or adding features that don't really affect an app's success.

    Things like icons, screenshots, and ASO keywords honestly aren't my strongest suit.

    At this point, I've accepted something pretty brutal:

    No matter how cool or well-functioning my app is, if I can't nail ASO, it will probably end up in the trash bin.

    So I decided to do something different.

    I picked two of my chronically unsuccessful apps, followed an ASO tutorial step by step, applied the best practices properly, and decided to share the results publicly.


    The Apps

    Capishi

    An AI-powered interview coaching app I released around a month ago, built using SwiftAI Boilerplate Pro.

    Me-Log

    An app I built for myself two years ago, back when I was a digital nomad in Portugal, living a fairly isolated life.

    It's a simple journaling app that lets you write secure entries, rate your days, and track your mood over days, weeks, and months.

    I recently shipped a big update for Me-Log, but realized something embarrassing:

    I hadn't touched the title, keywords, or ASO setup at all.

    So it's been failing ASO consistently for two years — very stable failure.


    After this long introduction, let's move into action.

    Below are the main points I extracted from the two short books that were gifted by Astro when I subscribed to their annual plan.


    1. Titles: "Cool" Loses, Descriptive Wins

    Instead of clean, short titles that sound cool, ASO rewards descriptive titles that clearly state the problem being solved.

    Examples:

    • Capishi → Interview Preparation – Capishi
    • Me-Log → Secure Journaling – Me-Log

    One thing that really stuck with me from the books is that word order matters.

    If your app isn't in a very niche category, you need to balance:

    • keyword popularity
    • keyword competition

    As an indie dev or solo-preneur, your goal should always be ranking in the top 10.

    So it's important not to marry your title. Make changes to your metadata, and if needed, change them bi-weekly.


    2. Keyword Research (This Is Where I Was Guessing Before)

    There are tons of ASO tools out there, but most of them are insanely expensive — hundreds of dollars per month — though some offer free trials.

    For this post, I decided to go with Astro, which is around $100/year.

    If you don't want to spend money, free trials can still get you pretty far.

    How Astro works:
    You start by entering your current or candidate keywords and compare them based on popularity and difficulty.

    To generate candidate keywords, I did the most obvious thing:
    I described the problem my app solves to ChatGPT and asked it to generate alternative ways of expressing it.

    In my experience, Gemini and ChatGPT work best for this kind of task.

    The goal here isn't perfection or cool names — it's coverage.

    Initial keyword set (before any decisions)

    I started with the keywords I already had for Capishi, and the results were pretty clear.

    Initial keywords – raw Astro list for CapishiInitial keywords – raw Astro list for Capishi

    Then I started adding suggested keywords from ChatGPT.

    At this stage, the books strongly recommend not optimizing yet, just observing:

    • popularity
    • difficulty
    • relevance

    Filtering and making decisions

    After reviewing the data and rereading The Perfect Keyword, I realized something important:

    Popular keywords don't matter if you can't realistically rank for them.

    So instead of chasing:

    • "AI interview coach"
    • "AI mock interviews"

    I focused on low-difficulty, high-relevance terms, even if their popularity was lower.

    This is where the second pass came in.

    Keywords filtered and refined after decisionsKeywords filtered and refined after decisions

    Examples of keywords I intentionally leaned into:

    • mock interview
    • interview prep
    • interview buddy
    • practice questions

    And keywords I consciously deprioritized for now:

    • generic "AI coach" terms
    • broad career keywords with high competition

    The books repeat this idea constantly:

    Early-stage apps don't win by targeting big keywords.
    They win by ranking first for small, boring ones.


    3. Keyword Placement (This Part Was Eye-Opening)

    Keyword placement is not random.

    Priority order:

    1. Title → most important keywords
    2. Subtitle → second tier
    3. Keywords field → everything else

    For Capishi's title, among the most promising keywords, I decided to go with:

    "Interview Buddy – Capishi"

    It had strong popularity with relatively low difficulty.

    Capishi subtitle decision

    Repeating a keyword across the title, subtitle, and keyword field doesn't strengthen it — it actually wastes space.

    This directly affected how I chose the subtitle.

    Because "Interview" and "Buddy" were already in the title, I avoided repeating them.

    I ended up choosing a subtitle that:

    • reinforces intent
    • targets lower-difficulty keywords
    • stays human-readable

    In the end, I went with:

    "Prep Questions & Get Feedback"

    This allowed me to cover the keywords questions and feedback.

    After that, I shared Astro's keyword list with ChatGPT again and asked it to suggest keywords that:

    • don't repeat words in the title or subtitle
    • cover as many popular terms as possible

    Me-Log title & subtitle decisions

    I followed pretty much the same steps for Me-Log.

    Me-Log initial keyword analysisMe-Log initial keyword analysis

    I ended up making quite dramatic changes.

    To be honest, this category is the opposite of niche. The competition is extremely high, and I'm not expecting miracles — but let's see.

    Me-Log final keyword listMe-Log final keyword list

    I decided to go with:

    • Title: Emotion Log Journal
    • Subtitle: Simple diary for feelings

    Unfortunately, I had to upload new builds for both apps to apply these changes, since keyword updates also require review.

    So right now, I'm waiting for App Store reviews — arguably the most fun part of being an iOS developer 🙂

    Once they're approved, I'll share another post with the results and whether this actually moved the needle.

    Ready to build your AI iOS app?

    Get SwiftAI Boilerplate Pro and ship your app this week.

    Get Started