---
title: "Beardly case study"
url: "https://hamzaamalik.com/work/beardly"
author: "Hamza Ahmad"
updated: "2026-10-12"
---

# Beardly

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

- Role: Founder and Lead Engineer
- When: Jun to Sep 2026
- Platforms: iOS, Android
- Status: Pre-launch. In internal testing on Google Play.
- Link: https://beardly-landing.vercel.app/

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

## Key facts

- 12 styles
- Credits and subscription
- Solo build

## Stack

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

Case study by Hamza Ahmad, senior Flutter developer. Contact: hamza@kmavericks.com
