Inspiration
Every big life event comes with the same quiet anxiety: will my skin look right, and will I be wearing the right thing? Someone preparing for a wedding, a job interview, or a first date usually ends up juggling two completely separate worlds — skincare advice from one place, outfit inspiration from another — with no single thread connecting them.
We wanted to build something that treats skin and style as part of the same story, the way they actually are in real life. That's where GlowDay came from: an app that starts with you — your real detected skin — and builds everything else around it, from a personalized countdown skincare plan to outfit recommendations that are actually chosen for your undertone, not just "popular this season."
What it does
GlowDay lets a user set an upcoming event with a target date and walks them through a connected journey:
- Guided Skin Scan — a real selfie is analyzed by YouCam Skin AI, returning genuine metrics across 14 skin concerns (acne, texture, pigmentation, redness, and more).
- Countdown Skincare Plan — using those real concerns and the days remaining until the event, Gemini Flash 2.5 generates a personalized, cosmetic-only AM/PM routine and weekly milestone phases — never medical advice, just practical guidance.
- Undertone-Matched Outfits — GlowDay also calls YouCam's Skin Tone Analysis to get the user's real detected skin color, then applies our own CIELAB-based colorimetry rule to classify it as warm, cool, or neutral — and ranks a curated outfit catalog against that undertone.
- Virtual Try-On — the user tries on a ranked outfit using YouCam Apparel VTO, seeing a photorealistic render of themselves in the outfit within seconds.
- Event Readiness Summary — everything comes together into a single Readiness Score combining skincare progress and outfit selection, with a shareable summary card.
The two YouCam APIs don't just sit side by side — the skin scan's output feeds directly into the outfit ranking. That connection is the core of what we set out to build: skin and style as one experience, not two.
How we built it
- Mobile client: Flutter, targeting iOS and Android from a single codebase, with an "editorial warmth" visual language — terracotta and gold tones, serif headings, soft-elevation cards.
- Backend: Django + Django REST Framework acting as the orchestration layer — the only place that ever touches our YouCam, Gemini, and Supabase service keys, keeping everything secure server-side.
- Auth & data: Firebase Authentication and Cloud Firestore, with Firebase custom claims enforcing role-based access.
- File storage: Supabase Storage for selfies and rendered try-on images, kept private with signed URLs and referenced by path from Firestore.
- Core AI: the real YouCam Skin AI and Apparel VTO REST APIs, called server-side, end to end — no mocked responses anywhere in the shipped app.
- Supplementary AI: Gemini Flash 2.5 via the AIML API, used only for turning structured skin data into plain-language routine text — never for image analysis, which stays strictly YouCam's job.
We built the app in tightly scoped phases, prioritizing the two YouCam integrations first — before any secondary feature — so the core, judged functionality was real and working as early as possible in the build.
Challenges we ran into
Finding the real undertone signal. YouCam's skin-analysis endpoint returns rich concern data (acne, texture, pigmentation, and more) but no undertone field. Rather than fake it, we searched the wider YouCam API suite and found a dedicated Skin Tone Analysis endpoint that returns a real detected skin color hex value. From there, we built our own CIELAB b* (yellow-blue chroma) classifier — grounded in dermatological colorimetry standards like the Monk Skin Tone scale — to turn that real color into a warm/cool/neutral undertone. Our first threshold attempt was too naive (a simple R−B delta) and misclassified neutral tones as warm; recalibrating it against real CIELAB math and cross-checking against reference skin tone swatches got the classification right.
Keeping AI boundaries honest. With two different AI systems in play, we set a hard rule early: YouCam owns 100% of image analysis and rendering; Gemini is only ever used for text generation from already-structured data. When the Gemini call fails or is unreachable, the app never silently substitutes a fake AI-generated plan — it shows a clearly labeled fallback template with a retry action, so nothing is ever misrepresented to the user.
Recovering from an interrupted build. Partway through building the undertone-to-outfit ranking feature, a power outage killed the session mid-edit. Rather than guessing what had been finished, we treated the codebase itself as the source of truth — running the full test suite, diffing against git, and tracing exactly which files were mid-change before resuming. That experience pushed us to commit incrementally from that point on, so any future interruption would leave a clean recovery point instead of ambiguity.
What we learned
That connecting two AI capabilities meaningfully takes more than calling both APIs — it takes finding the real data thread between them (in our case, a color value) and being willing to build genuine logic (real color-theory math, not a lookup table) on top of it. We also learned the value of being transparent about what's really AI-generated versus a fallback, and how much smoother development gets once you commit to disciplined, incremental checkpoints instead of long uncommitted stretches of work.
What's next for GlowDay
- Deeper personalization of the skincare plan using longitudinal progress data across multiple scans
- Expanding the outfit catalog with real partner brand integrations
- Bringing salon/clinic booking referrals to more cities
- Exploring additional YouCam capabilities (makeup try-on, hairstyle) to round out the "event readiness" concept even further
Log in or sign up for Devpost to join the conversation.