Inspiration
Picture this: You're standing in the makeup aisle at Target, completely overwhelmed. There are 47 different foundations, each claiming to be "your perfect match." You pick one that looks about right, take it home, and... it makes you look like an Oompa Loompa. Sound familiar?
That was me (okay, us) one too many times. We got tired of wasting money on products that looked great in the package but terrible on our faces. We were frustrated by beauty advice that treated everyone the same—"this red lipstick looks great on everyone!" (Narrator: it did not look great on everyone.)
The real lightbulb moment came when a friend spent $200 on skincare products that were completely wrong for her skin type. She had dry, sensitive skin and bought products designed for oily, acne-prone skin. Her face rebelled. It wasn't her fault—how was she supposed to know? She's not a dermatologist.
We thought: what if there was a way to actually know what works for your specific face? Not guesswork. Not marketing hype. Real, personalized recommendations based on your actual features.
That's how IDazzle was born.
What It Does
IDazzle is like having a beauty expert in your pocket, but without the judgment when you admit you sometimes sleep in your makeup (we won't tell).
Here's the deal:
You upload a selfie - Nothing fancy, just a regular photo. We're not asking for studio lighting here.
We analyze your face - Using actual AI (not just buzzwords), we figure out:
- Your face shape (finally settle the "do I have a round face?" debate)
- Your skin type (oily, dry, combination, or that mysterious "normal")
- Your undertone (warm, cool, or neutral—this is the secret to not looking like a ghost in photos)
- What your skin is actually dealing with (dryness, pores, texture, the works)
You get real recommendations - Not generic "drink more water" advice. We're talking:
- Foundation shades that won't require mixing three different bottles
- Lipstick colors that don't make your teeth look yellow
- Skincare products for your actual skin concerns
- A routine you can actually stick to (no 27-step regimens)
You can try before you buy - Our virtual try-on lets you see how that lipstick or eyeshadow looks on you before you spend $30 on something you'll use once.
You save money - We compare prices across stores so you're not overpaying. We show you where to buy. We even tell you what's in stock nearby.
The fashion side:
We didn't stop at makeup. IDazzle also helps you build a wardrobe that actually works for your coloring:
- Color palettes tailored to your undertone (no more "does this look good on me?" dressing room panic)
- Style suggestions for any occasion
- Virtual try-on for clothes (because returns are annoying)
- Links to shop everything directly
How We Built It
We'd love to say it was all smooth sailing, but that would be a lie.
The stack:
We went with Angular 21 because we wanted something modern, fast, and that wouldn't fall apart when we added features. The standalone components architecture has been a game-changer for keeping things clean.
For the actual face analysis, we integrated the YouCam API. These folks have spent years perfecting their face detection tech, and it shows. The accuracy is impressive—we've tested it on friends with all different face shapes and skin types, and it's scary good.
For live fashion and product data, we use Google's Gemini API. This is what lets us pull real products from real stores with real prices. No outdated data, no "product no longer available" disappointments.
The architecture:
We went with server-side rendering (SSR) because:
- It's faster for the initial load (nobody likes staring at a blank screen)
- It's better for SEO (we want people to actually find us)
- It handles our API calls server-side, keeping keys secure
The backend is a custom Node.js server that handles both the SSR and our API routes. In development, we run two servers for hot reloading. In production, everything runs on one server. Clean and simple.
The design:
We wanted something that felt premium but approachable. You know, like that friend who always looks put-together but never makes you feel bad about your sweatpants.
The color scheme is pink-forward (we're a beauty app, after all) but not aggressively girly. The typography mixes Playfair Display for headings (elegant) with Poppins for body text (readable). We used Material Icons because they're clean and recognizable.
Challenges We Ran Into
Oh boy, where do we start?
Challenge 1: The Camera Permissions Nightmare
Getting camera access to work consistently across all browsers and devices was... an experience. Safari on iOS had different requirements than Chrome on Android. Some browsers would give us the camera but not the correct resolution. Others would work perfectly in development and then fail in production.
We eventually built a robust camera service that handles all the edge cases: permission denials, device switching (front/back camera), and proper cleanup when users navigate away. It's not glamorous work, but it makes the app actually usable.
Challenge 2: API Rate Limits Are Real
We learned this the hard way during testing. YouCam's free tier has rate limits, and we hit them. Hard. Our solution was to implement a caching layer and demo mode that serves realistic mock data when APIs are unavailable. It's actually made the app more resilient.
Challenge 3: Making AI Feel Human
There's a fine line between "impressively accurate AI analysis" and "creepy robot judging my pores." We spent a lot of time crafting the copy to feel helpful, not clinical. The beauty score was particularly tricky—we wanted it to be fun without making anyone feel bad about their face.
Challenge 4: The Virtual Try-On
This one nearly broke us. Showing a static image is easy. Showing a user's photo with a product realistically applied is hard. We ended up using a combination of the YouCam virtual try-on API and some creative fallbacks for when the API isn't available. It's not perfect, but it's surprisingly good for a web app.
Challenge 5: Fashion Images
We needed product images but didn't want to deal with copyright issues or scrape websites. Our solution was to create an image placeholder service using free images from Pexels. It's legal, it looks good, and it's reliable.
Accomplishments That We're Proud Of
We actually use it ourselves.
This sounds small, but it's huge. We built IDazzle to solve our own problems, and now we genuinely reach for it when shopping for beauty products. That's the best validation—building something you actually want to use.
The accuracy is legit.
We tested the face analysis on friends, family, and coworkers. The feedback has been overwhelmingly positive. People are genuinely surprised by how accurate the undertone detection is—it's the kind of thing most people don't know about themselves, and it changes how they shop for makeup.
It works on mobile.
We didn't build a "desktop-first, mobile-maybe-later" app. From day one, we optimized for mobile because that's where people actually use beauty apps. The camera integration, the touch targets, the scrolling—it all works smoothly on phones.
We didn't overcomplicate it.
There's a temptation in hackathons to add every feature imaginable. We resisted. IDazzle does a few things really well instead of many things poorly. The interface is clean, the flow is intuitive, and you don't need a tutorial to figure out how to use it.
The virtual try-on actually works.
We've seen too many "virtual try-on" features that are basically just putting a semi-transparent color over your lips. Ours actually looks realistic. It's not perfect, but it's good enough to help you make decisions.
What We Learned
APIs are great until they're not.
We learned to always have fallbacks. APIs go down. Rate limits get hit. Keys expire. Building resilient software means assuming everything will fail at some point and planning accordingly.
User testing reveals everything.
We thought our interface was intuitive until we watched someone try to use it. They clicked things we didn't expect. They missed buttons we thought were obvious. They were confused by terms we thought were self-explanatory. Watching real people use your app is humbling and essential.
Beauty is personal.
We can't tell you how many conversations we had about tone. Not skin tone—writing tone. How do you tell someone their skin is "oily" without making them feel bad? How do you recommend anti-aging products without implying they look old? We rewrote our copy a dozen times to get it right.
SSR is worth the complexity.
Server-side rendering added complexity to our build process, but the performance gains are real. The app loads fast, even on slow connections. SEO works. Social sharing works. The complexity was worth it.
Good enough ships.
We could have spent months perfecting every feature. Instead, we focused on the core experience and shipped. The virtual try-on isn't perfect. The product database isn't exhaustive. But it works, and it's out there, and we can improve it based on real feedback.
What's Next for IDazzle
We're just getting started.
User accounts and history
Right now, your analysis disappears when you close the browser. We want to let you save your results, track changes over time (is that skincare routine actually working?), and build a profile of your preferences.
Social features
Beauty is social. We want to let users share their looks, get feedback from friends, and see how products look on people with similar features. Imagine being able to see that lipstick on 20 people with your same skin tone before buying.
AR try-on
Our current virtual try-on is good, but augmented reality would be next-level. Imagine holding up your phone and seeing makeup applied in real-time as you move. That's the dream.
Expanded product database
We're starting with makeup and fashion, but there's a whole world of beauty products out there: hair care, fragrances, tools, supplements. We want to be the app that helps you navigate all of it.
Professional features
We've had makeup artists ask if they can use IDazzle with clients. We're thinking about a professional tier that lets artists save client profiles, create look books, and manage appointments.
Mobile apps
We're a web app now, but native mobile apps would let us do more with the camera, send push notifications for skincare reminders, and work offline. It's on the roadmap.
International expansion
Right now, we're focused on the US market. But beauty is global. We want to expand to other countries, support more currencies, and eventually localize for different languages and beauty standards.
IDazzle is built with Kilo Code by people who love beauty but hate the guesswork. We're just getting started, and we're so excited to see where this goes.
Built With
- angular.js
- kilo
- kilo-code
- kilo.ai
- youcam-api
Log in or sign up for Devpost to join the conversation.