Single-person iOS studio toolkit (Xcode, scripts, sanity)

May 2026 · 6 min read

The hardware, Xcode setup, scripts, and operational habits that let one person ship 48 iOS apps in a year - without burning out.

Surviving App Review: 5 rejections we learned from

April 2026 · 6 min read

Five App Store rejections we collected building 48 apps - what triggered each, how we resolved them, and the preflight checklist we now run.

Best privacy-first iOS apps for 2026

April 2026 · 7 min read

Apps that respect your data - tested in 2026. No third-party trackers, no behavioral SDKs, no surprise cloud uploads.

The iOS privacy nutrition label, demystified

March 2026 · 6 min read

App Privacy nutrition labels are confusing and easy to fill in wrong. Here's the decision tree we use to fill them out for every app we ship - and the categories where studios accidentally lie.

Inside ADWize: AdSense analytics in your pocket

February 2026 · 5 min read

Why we built ADWize, the trade-offs of consuming the AdSense API on-device, and what we'd build differently next time.

How BodiLog uses HealthKit and SwiftData together

February 2026 · 6 min read

The data architecture behind BodiLog - when HealthKit is the source of truth, when SwiftData is, and how we resolve conflicts without losing user trust.

Best iOS weight tracker apps in 2026

February 2026 · 6 min read

Comparison of the best iOS weight tracker apps in 2026 - HealthKit integration, trend smoothing, and privacy stories.

Custom Product Pages (CPP): the underused ASO weapon

January 2026 · 5 min read

Custom Product Pages let you run up to 35 variants of your App Store listing per app. Most indie devs skip them. Here's how to use them and what we measured.

Behind Pomoly: building a focus timer that doesn't nag

January 2026 · 5 min read

How we designed Pomoly - a Pomodoro timer that ships Live Activities, widgets, and ambient sounds without the gamification trap most focus apps fall into.

Localizing iOS apps to 15 languages without hiring translators

December 2025 · 7 min read

Every app we ship is localized to up to 15 languages. We don't hire translators. Here's the workflow that produces respectable copy at near-zero cost.

App Store screenshot anatomy: the 3-line formula we use

December 2025 · 6 min read

What makes the first three App Store screenshots actually convert. The formula we apply to every app launch - value claim, hero feature, trust signal.

Best Pomodoro & focus timer apps for iPhone (2026)

December 2025 · 6 min read

Comparison of the best Pomodoro and focus timer apps for iOS in 2026 - Live Activity support, ambient sounds, and pricing.

Pricing your indie iOS subscription: what we've learned

November 2025 · 6 min read

Yearly vs monthly, the weekly trap, trial length, and per-country pricing. The pricing decisions we now default to across our 48-app catalog.

Paywall design: 3 patterns we've tested across 48 apps

October 2025 · 7 min read

Hard paywalls vs feature gates vs free + nudges. We've shipped all three across our catalog. Here's how each performs and when we pick which.

Free trial vs lifetime unlock: what converted better

October 2025 · 5 min read

We tested 7-day free trials against one-time lifetime purchases on the same apps. Here's what each did to conversion, retention, and revenue per user.

Best iOS habit tracker apps in 2026

October 2025 · 7 min read

An honest comparison of the best iOS habit tracker apps in 2026 - what each does well, what they cost, and which one fits your style.

App Intents & Shortcuts: the iOS discovery surface most apps ignore

September 2025 · 6 min read

App Intents put your app in Spotlight, Siri, Shortcuts, and the Action Button. Most indie apps never wire them up. Here's why you should and how to ship one in an afternoon.

Setting up RevenueCat for an iOS app in 30 minutes

September 2025 · 7 min read

A no-fluff walkthrough of getting RevenueCat live in a SwiftUI iOS app - dashboard, SDK, paywall, sandbox testing - in about half an hour.

Live Activities done right: when to ship, when to skip

August 2025 · 5 min read

ActivityKit Live Activities and Dynamic Island work brilliantly for some apps and badly for others. Here's how we decide - and what we'd do differently next time.

iPad-first SwiftUI without splitting your codebase

August 2025 · 6 min read

Most universal iOS apps treat iPad as a stretched iPhone. The result is bad on both. Here's how we ship iPad and iPhone from one SwiftUI codebase that respects each.

SwiftData migrations: 5 patterns that actually work

July 2025 · 7 min read

Production-tested SwiftData migration patterns from 30+ shipped iOS apps. Schema versioning, lightweight changes, custom plans, and the case where you give up and rebuild.

Building widgets people actually use (WidgetKit, 2026)

July 2025 · 6 min read

Most widgets are forgotten. Here's how we design WidgetKit widgets across our apps that survive on the home screen - update budgets, glanceability, and the three-tier mental model.

SwiftUI vs UIKit in 2026: when to still pick UIKit

June 2025 · 6 min read

SwiftUI is the default for new iOS apps in 2026, but there are still narrow situations where UIKit is the right call. Here's the line we draw.

Our shared SwiftUI starter: what's in it, what's not

June 2025 · 7 min read

How a focused 1,500-line SwiftUI starter let us ship 48 iOS apps in a year - and what we deliberately keep out of it.

How we shipped 48 iOS apps in a year

May 2025 · 6 min read

Lessons learned building a calm, useful catalog of small SwiftUI apps - what worked, what didn't, and the templates we now reuse on every project.

Why SwiftData (with CloudKit) changed our process

April 2025 · 4 min read

SwiftData removed an entire layer of plumbing from our stack. Here's how we use it across a half-dozen production apps - and where it still trips us up.

ASO for tiny studios that ship a lot

April 2025 · 5 min read

You don't need a big budget to rank. A practical playbook for keyword research, screenshot iteration, and localization - the same one we run for every release.