Tattoo Remover AI
Removing tattoos, scars and stretch marks from photos.
Swift · SwiftUI · Go · PostgreSQL · RevenueCat
Tattoo Remover AI removes tattoos, scars and stretch marks from photos. You paint over what you want gone, the app generates a version without it, and you can compare before and after with a slider before saving.
I built it alone and submitted it to App Store review in under 80 hours.


Shipping quickly without starting over
Most of that time went into what was actually new for this product: the SwiftUI client, the selection workflow, and a Go backend that runs generations across several image models behind the same API, so the app is not tied to a single provider. Generations run asynchronously, so the app submits, follows progress, and saves the result when it lands.
Authentication, billing and storage came from Drip, an earlier app of mine. I hardened them rather than rewriting them.


Getting billing right
A subscription includes a weekly allowance, split across generation quality tiers, and extra credits are only spent once that allowance runs out. Both come out of the same advisory-locked transaction, so two requests arriving at the same time cannot spend the same credit.
If a generation fails, the credit goes back. Subscription webhooks can arrive more than once, so they are deduplicated before anything is granted, and quota resets follow the subscription period rather than a local clock.
