Free, open-source App Store optimization for indie developers.
Track keyword rankings, see Apple's official popularity data, and watch your apps climb.
Native macOS app · your data never leaves your Mac · no servers · no subscription.
ASO tools cost $50–500/month. Most indie devs fly blind instead.
Podium is the third option: a native Mac app that does the essential ASO loop — which keywords matter, where do I rank, am I improving — for free, forever. It's the first open-source tool built on the official Apple Ads Platform API (released August 2026), so popularity numbers come from Apple, not from scraping.
- Keyword rank tracking — your position in App Store search results for any keyword, in any of 175 storefronts, with daily history and charts. Bulk-add keywords across multiple countries at once.
- Official popularity scores — Apple's 0–100 popularity for your tracked terms (via your free Apple Ads account).
- Discover — browse Apple's official most searched terms across several countries and categories at once — rank, popularity, and every field Apple returns.
- Competitor compare — track any App Store app as a competitor and see their rank next to yours on every keyword you track.
- Ads performance dashboard — spend, impressions, taps, installs, CPI, and Apple's own bid recommendations, at the campaign / ad group / keyword / search-term level.
- Ratings watch — current rating and count for every app you track.
- Menu bar + notifications — today's movements at a glance; get notified when a rank changes.
- CSV export — your data is yours.
- Read-only by design — Podium can see your Apple Ads data but can never spend a cent or change a campaign.
- Native Liquid Glass UI — built for macOS 26, using Apple's system materials throughout.
There is no Podium server. The app talks only to Apple (itunes.apple.com, api.ads.apple.com, appleid.apple.com). Credentials live in your macOS Keychain; history lives in a local SQLite file. Delete the app and it's all gone.
Download: grab the latest zip from Releases, unzip, drag Podium.app to Applications.
The app is not yet notarized: the first time, right-click → Open → Open (once per install).
Build from source:
git clone https://github.com/SyntaxFear/Podium.git
cd Podium
brew install xcodegen
xcodegen generate
xcodebuild -project Podium.xcodeproj -scheme Podium -configuration Release buildRequires Xcode 26+ / macOS 26+ (for native Liquid Glass).
- Launch Podium → Start tracking now (zero setup).
- Add app → search any App Store app — yours, or a competitor's.
- Add the keywords people would use to find it. Ranks appear immediately; charts build daily.
Apple's popularity numbers require a free Apple Ads account — no campaigns, no payment method needed:
- Create the Apple Ads account (free) and, in User Management, invite a user with the API Account Manager role. Apple quirk: the API user must be a different Apple Account than the admin, and the invited email must be that account's primary email.
- In Podium, click Connect Apple Ads. The app generates a secure key on your Mac and shows you exactly what to paste where.
- Paste the public key in Apple Ads → Account Settings → API (signed in as the API user), copy the credentials block back into Podium, done.
The private key never leaves your Keychain. Podium requests read-only scope.
Podium/
├── App/ SwiftUI macOS app (wizard, keywords, discover, settings, menu bar)
├── Sources/
│ ├── PodiumKit/ Reusable engine: ES256 OAuth, Ads API client, rank checker,
│ │ GRDB storage, refresh + diffing, CSV export — fully unit-tested
│ └── PodiumSmoke/ CLI for live smoke tests (`swift run podium-smoke rank ...`)
└── Tests/ 25 XCTest cases, all mocked — `swift test`
PodiumKit is UI-free on purpose: a CLI or MCP server for AI agents can reuse the same engine (planned).
- Live verification of the reports/recommendations endpoints against a real Apple Ads account
- Notarized builds + Homebrew cask
- Review monitoring, change-history timeline
- MCP server so AI assistants can query your ASO data
- Google Play
Issues and PRs welcome.
MIT — built by Levan Parastashvili.
