Public voting opens soon — nominees are live now.
Overview
One selfie reveals your colour season. Then BeSuited scores any garment against your own palette, 0 to 100, no flattery. Designed and shipped to both app stores in three weeks by one person working with an AI coding agent.
Project Details
Category
-
Customer
Self initiated product, internal work
Submitted by
Szymon Dziedzic
Timeframe
June to July 2026
Tech Stack
Flutter, Dart, Riverpod, go_router, Firebase (Auth, Firestore, Storage, Cloud Functions, FCM), OpenAI GPT-5.5 vision with structured outputs, RevenueCat, AdMob, Figma driven through the Figma MCP, Claude Code as the coding agent, Netlify.
Services
Product strategy, UX and UI design, design system, Flutter development, backend and AI integration, monetisation, store release. All of it.
Demo Link
-
Team
Szymon Dziedzic: product, design, architecture, every technical call and review of every commit. Claude Code: the AI pair that wrote the Flutter app, Cloud Functions and release tooling from written specs. No agency, no contractors.
Link to case study
Description
THE INITIAL PROBLEM. Colour analysis works. The right palette makes skin look rested, the wrong one makes it look ill. But it is sold as a luxury service: a few hundred zloty, booked weeks ahead, delivered once. What you get is a paper fan of swatches that never makes it to the shop. Meanwhile the actual decision happens in a fitting room or in front of a product page, where nobody remembers whether warm autumn allows this particular rust. I wanted that answer available at the moment of the decision, and honest even when the honest answer is no.
THE PLAN. Three constraints were fixed before a line of code was written. First, twelve colour seasons instead of the popular four, with palettes taken from real colour theory and stored in a catalogue, so the model classifies and never invents pigments. Second, the verdict must be deterministic. The vision model returns structured JSON with per colour scores, and the band (not a match, moderate, almost, perfect) is computed in code, so identical input gives identical output. Third, the interface had to look like a fashion magazine rather than a utility. Bodoni Moda, warm charcoal and bone, gold foil, generous whitespace, with 43 surfaces specified in a design bible before implementation started.
THE TEAM. Szymon Dziedzic, product owner, designer and engineer, responsible for product definition, art direction, UX and UI, and every technical decision from the data model to the store release. Claude Code, the AI pair that wrote the implementation: the Flutter codebase, the Cloud Functions, the integration test harness and the release tooling, working from written specifications in a tight review loop. Every commit was reviewed and accepted by a human. No agency and no contractors, a one person studio working with an AI agent.
EXECUTION. The product was written in a tight loop with that agent. I wrote the specifications, made every product and design call and reviewed every diff. The agent wrote the Flutter code, the Cloud Functions and the tooling. The architecture is feature first (presentation, application, domain, data) on Riverpod and go_router. Every AI call runs server side in Firebase Cloud Functions, so the OpenAI key never ships in the client. The same loop produced the parts nobody sees in a screenshot: a driven integration test running on a real simulator against real Firebase, seeded demo accounts, an automated store screenshot pipeline, and scripts that provision subscriptions through the App Store Connect and Google Play APIs. Design was not left behind. The store artwork and the imagery in this submission were built as vector compositions in Figma through the Figma MCP, from the same source of truth as the app.
WHAT IT COST AND WHAT BROKE. Roughly three weeks from empty repository to two live stores. The hard parts were never the AI features. A Firestore Storage rule that failed closed only on the client path, invisible to admin SDK smoke tests, cost a full debugging session and taught me to always replay the real client path after a rules deploy. A simulator slice framework silently copied into a release archive caused an App Store rejection twice before the root cause was pinned down. Apple rejected the build three times in total, for a tracking prompt, a sign in asset and account deletion, and each one was diagnosed and resubmitted within a day.
LESSONS LEARNED. Trusting an asynchronous state mirror instead of the source of truth was the one recurring bug class. Routing that read a cached profile instead of Firestore produced four separate defects with four different symptoms. Determinism turned out to be a product feature rather than an engineering nicety. Users forgive a cautious verdict, never a score that changes when they scan the same sweater twice. And an AI agent multiplies whoever is steering it. Output quality tracked specification quality almost perfectly, which is why the design bible and the spec bundle were written first and kept current to the last commit.
WHY THIS DESERVES AN AWARD. First, it ships an answer rather than a vibe. The verdict bands are computed deterministically outside the model, and a low confidence analysis asks for a retake instead of fabricating a season, so the app is willing to say it does not know. Second, three weeks, one person, two app stores, including subscriptions, consent flows, security rules and three store rejections, with no agency and no contractors. Third, it is a genuine vibe coding case study with a written specification bundle, review of every commit and automated integration tests on a real device, which makes it evidence about how this way of building behaves, including where it fails. Fourth, editorial craft rather than a template: 43 surfaces designed to a bible, Bodoni Moda display type, warm charcoal and bone, gold foil gradients and a full dark mode. Fifth, it solves a real and repeated purchase decision, turning a once in a lifetime luxury service into something used in a fitting room, thirty seconds at a time.
Project Outcomes
-
Target Audience
-
Why Us
Three weeks, one person and an AI agent, from empty repository to production on iOS and Android. The verdict is deterministic and honest enough to tell you not to buy the sweater. Editorial craft across 43 designed surfaces.
https://apps.apple.com/app/besuited/id6787063878
Explore More
Previous Editions


