explaingit

bootuz/keywordista

11SwiftAudience · developerComplexity · 3/5Setup · moderate

TLDR

A free, self-hosted Mac app for indie iOS developers to track how their apps rank for specific keywords across all 175 App Store storefronts, with daily automated checks and overnight chart-position notifications.

Mindmap

mindmap
  root((keywordista))
    What it does
      Keyword rank tracking
      Chart position alerts
      Historical data
    Tech stack
      Swift and Vapor
      Svelte dashboard
      SQLite local storage
    How it works
      Menu bar app
      Local web server
      Daily automated checks
    Audience
      Indie iOS developers
      Self-hosted only
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Track daily keyword ranking changes for your iOS app across multiple App Store countries without paying for a subscription service.

USE CASE 2

Get browser notifications when your app enters or drops off Apple's top free chart.

USE CASE 3

View a full historical record of keyword ranking positions over time in a local web dashboard.

Tech stack

SwiftVaporSvelteSQLiteNode.js

Getting it running

Difficulty · moderate Time to first run · 30min

macOS 13 or newer required, Swift 5.10 and Node 18 needed only if modifying the source code.

In plain English

Keywordista is a self-hosted tool for independent iOS app developers who want to track how their apps rank for specific keywords in Apple's App Store, without paying for a subscription service. It runs entirely on your Mac, stores all data locally, and gives you a real history of ranking positions over time instead of one-time screenshots that go stale. The way it works: a small menu-bar app sits in your Mac's top bar and manages a local web server. That server uses a Swift-based framework called Vapor to handle data, stores everything in a local SQLite database, and serves a web dashboard you open in your browser at a local address (127.0.0.1:8080). The dashboard is built with Svelte, a web framework, and shows keyword rankings across any of Apple's 175 App Store storefronts. Every night at 3am UTC, the server automatically checks how your apps rank for the keywords you are tracking. At 4am, a second check watches Apple's top free app charts, and if any of your apps enters, moves within, or drops off those charts, your browser fires a notification. The data collection is careful: one request per second to Apple's servers, and the server only listens on your local machine, so no one outside your Mac can reach it. To install it, you download a pre-built file, drag the app into your Applications folder, and launch it. There is also a way to run it without the menu-bar app if you prefer to manage the server yourself. If you want to modify the code, you need Swift 5.10 or later and Node 18 or later. The project has three distinct layers: the Vapor backend, the Svelte web dashboard, and the macOS menu-bar wrapper. A few things are noted as not yet finished. The app has slots reserved for Apple Search Ads popularity data but no actual fetching of it yet. Chart position history over time and automatic updates for the menu-bar app itself are also listed as future additions. Currently the tool only runs on macOS 13 or newer.

Copy-paste prompts

Prompt 1
I'm using Keywordista to track my iOS app's keyword rankings. How do I add keywords for a new app in the local dashboard at 127.0.0.1:8080?
Prompt 2
Help me analyze keyword ranking data from Keywordista, which positions indicate a keyword worth targeting versus one I should drop?
Prompt 3
I want to set up Keywordista on my Mac. Walk me through installing the binary and accessing the local dashboard.
Prompt 4
Based on Keywordista showing my app ranks between position 15 and 30 for my target keywords, what ASO improvements should I prioritize?
Open on GitHub → Explain another repo

← bootuz on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.