Skip to content
Hamza Ahmad
Menu

AI image app

Pre-launch

Beardly

Upload a selfie, pick a beard style, get a photorealistic preview. Built solo with Flutter, Firebase and Gemini.

Beardly: AI beard previews from one selfie

Beardly shows you what a beard would look like before you grow it. Upload a selfie, choose one of 12 styles in grow or shape mode, and get a photorealistic preview from Gemini.

I built it solo: the Flutter app, the Firebase Cloud Functions backend, billing and the Next.js 15 landing site.

What I built

  • 12 beard styles across two modes, served from Firestore with a bundled fallback
  • Credit packs plus a Pro subscription with a server-enforced monthly allowance, on RevenueCat
  • Anonymous-first sign-in, linked to Apple or Google before purchase
  • Model key kept server-side, App Check on every call, idempotent purchase webhooks with refund on failure
  • A delete-my-data flow, and CI to the Play internal testing track

Stack

  • Flutter
  • Riverpod
  • Firebase
  • Cloud Functions
  • Gemini
  • RevenueCat
  • Next.js 15
  • GitHub Actions

Screens

Beard styles in grow and shape modes
Beard styles in grow and shape modes
Before and after previews
Before and after previews
Credit packs and the Pro plan
Credit packs and the Pro plan
Server-side model key and App Check
Server-side model key and App Check
How Beardly is built
How Beardly is built