← James Edwards
← James Edwards

Drip AI

Instant outfit feedback powered by AI.

Role
Product Engineer
Year
2024
Platform
iOS
Status
Sunset
Stack
Swift · UIKit · Go · PostgreSQL · Redis
Upload your outfit: a photo of an outfit
Get instant feedback, powered by AI: a fit rating with style and coordination notes
Style tips for any fit: a grid of outfits
And for any occasion: choosing what the fit is for
Improve your style: what to improve, item by item

Drag for more · click a screen to open it

Instant outfit feedback powered by AI. Upload your fit and get real-time style tips for any occasion.

Drip scored a photo of an outfit and returned structured styling feedback: an overall rating, sub-scores, and what to change. You could add an occasion and a goal, share the result as an image, and invite friends for free ratings.

I built the iOS app in UIKit and the Go API behind it. It reached the App Store about five weeks after the first commit, in October 2024.

01How it works

  • Download the app
  • Upload your outfit
  • Get your analysis
Choosing what the fit is for: a grid of occasions, or your own
What the fit is for.
Fit check results: an overall score and a sub-score per dimension
The scored result.
A fit rating composed as an image and shared to an Instagram story
Shared to a story.

Outfit ratings require a subscription. Additional ratings may require extra purchases.

02Model output as data

The rating came from a vision model asked to fill a fixed JSON template: scores for coordination, style, originality or fit for the occasion, and goal alignment, plus a summary and suggestions. Two prompt variants covered whether the user had named an occasion.

Each result was parsed into a typed struct and stored as JSONB under a version number, so older ratings still rendered correctly after the rubric or the prompt changed.

The cheap checks ran first.

File type, a 10 MB size limit and an NSFW check all short-circuited ahead of the model call and the S3 upload, so nothing was billed or stored for a request that was going to be rejected.

03Payments and quotas

Every account started with a free allowance, counted on the user row. Past that, a Redis key capped ratings at three a day, with its 24-hour window set by the first rating of the day, so it reset predictably instead of sliding. Each stored rating recorded whether it was free or paid.

Purchases ran through StoreKit and RevenueCat. The webhook handler checked whether a transaction had already been processed before applying it, and followed transfers between app user IDs, so a retried event could never credit twice.

Sign in with Apple was done on the server too: the API generated its own Apple client secret from the signing key, exchanged the identity token with Apple, and validated it before issuing its own session.

A one-time offer paywall at sixty percent off
The one-time offer.

04From the App Store listing

Ready to upgrade your style? DRIP AI is here to give you quick, no-nonsense advice on what works and what doesn’t. Just upload your fit and let the AI do the heavy lifting, delivering tips that help you sharpen your look for any occasion, whether you’re on vacation or just hanging with friends.

We keep things simple because looking good shouldn’t be complicated. DRIP AI gives you the tools to boost your style and feel great in whatever you wear.