Inspiration
The African beauty retail market is worth over $10 billion, yet most AI skincare tools are built for lighter skin tones and Western product catalogs. Walk into a beauty store in Lagos, Accra, or Nairobi and you'll find shelves full of products with no personalisation, no guidance, and no technology helping customers make the right choice for their skin. We built SkinScout to change that. The idea was simple: what if a customer could walk up to a screen, take a selfie, and in seconds receive a skin analysis, personalised product recommendations featuring brands available in African markets, and a virtual try-on of the makeup — all powered by AI? Perfect Corp's technology made this possible. Their skin analysis API detects skin type, concerns, hydration, and radiance with clinical precision. Their virtual try-on renders makeup with photorealistic accuracy across all skin tones.
What it does
SkinScout is a four-step AI beauty advisor built for African beauty retail: Step 1 Upload The user uploads a selfie. No account required, no app to download. A clean web interface, accessible on any device. Step 2 AI Skin Analysis (Perfect Corp) Perfect Corp's Skin Analysis API analyses the photo and detects skin type, skin tone, hydration score, radiance score, and specific concerns including acne, visible pores, uneven texture, and fine lines. Step 3 Personalised Recommendations (Llama 3.1 via Groq) An AI advisor generates personalised product recommendations — 2 skincare products and 2 makeup products — specifically selected for the user's skin profile. Products are sourced from brands available in African markets (Zaron, Neutrogena, Morphe, NYX, SheaMoisture, Cetaphil, Dermalogica) with prices in Nigerian Naira. Step 4 AR Virtual Try-On (Perfect Corp) For makeup products (lipstick and blush), users can trigger a real AR virtual try-on powered by Perfect Corp's Makeup VTO API. The result image shows the actual makeup applied to the user's photo with photorealistic rendering. Skincare products gracefully display "Preview unavailable" — because you can't try on a serum.
📱 Share to WhatsApp One tap shares the full results — skin profile, recommended products, and prices — to WhatsApp, meeting users on the platform where African commerce already happens.
How we built it
SkinScout is a full-stack web application built with Node.js + Express on the backend and a single-page HTML/CSS/JS frontend.
Perfect Corp Integration — S2S Workflow: Every Perfect Corp operation runs through their Server-to-Server REST API at yce-api-01.makeupar.com. The workflow for both skin analysis and makeup VTO follows the same pattern:
- File Upload Init — POST to /s2s/v2.0/file/{feature} to get a signed S3 PUT URL and file_id
- Image Upload — PUT the raw image buffer to the presigned S3 URL
- Task Creation — POST to /s2s/v2.0/task/{feature} using the src_file_id
- Task Polling — GET /s2s/v2.0/task/{feature}/{task_id} every 2.5 seconds until task_status === "success"
For makeup VTO, we implemented category-aware effect builders:
- Lipstick → lip_color category with shade-to-hex color mapping
- Blush → blush category with pattern name (1color1) and matte texture
- Skincare → graceful fallback, no VTO attempted
AI Recommendations: Product recommendations are generated by Llama 3.1-8b-instant via Groq's API. The prompt is engineered specifically for African market context — brands available in Nigeria, prices in Naira, and deep awareness of melanin-rich skin concerns including hyperpigmentation, uneven tone, and moisture retention.
Architecture: All API calls happen server-side. No API keys are exposed to the browser. The frontend communicates exclusively with our Express backend via /api/analyze-skin, /api/recommendations, and /api/try-on endpoints.
Challenges we ran into
The biggest technical challenge was understanding Perfect Corp's S2S workflow. The file upload is a two-step process — you must first call the File API to receive a presigned S3 URL, then PUT the raw image buffer directly to S3, and only then use the returned file_id to create a task. Early attempts that skipped the S3 upload step returned silent 500 errors from the AI endpoints.
The second challenge was makeup VTO category mapping. Perfect Corp's Makeup VTO API does not support a "foundation" category — discovering this required reading the full error response, which listed every valid enum value. We pivoted to concealer and blush as the coverage and colour products, which are valid categories with distinct payload schemas.
The third challenge was making the shade-to-hex mapping meaningful. Since Perfect Corp's lipstick and blush effects use raw hex color values rather than named shades, we built a text-based color picker that interprets shade names from the AI recommendations — "Cairo," "Berry Rouge," "Warm Neutral" — and maps them to appropriate hex values for the AR render.
Finally, the CORS and local development setup required serving the frontend via Express rather than opening the HTML file directly, since Perfect Corp and Groq API calls are backend-only and file:// origins are blocked by browser security policy.
Accomplishments that we're proud of
The market angle. Building explicitly for African beauty retail — with African brands, Naira pricing, and skin analysis tuned for melanin-rich skin concerns — is something we haven't seen in any other Perfect Corp integration. It felt important to build something that serves a market that is consistently underserved by beauty technology.
The end-to-end flow working. From selfie upload to skin analysis to AI recommendations to real AR try-on — all in under 30 seconds — with zero user accounts, no app download, and a WhatsApp share button at the end. The whole experience is designed for a retail kiosk context where a customer has 60 seconds of attention.
The graceful degradation. Skincare products correctly show "Preview unavailable" without errors or broken states. The app always gives the user something useful, even when a VTO isn't applicable.
What we learned
Perfect Corp's S2S API is production-grade infrastructure — it's fast, reliable, and the task polling pattern (typically completing in 3 attempts at 2.5 second intervals) is genuinely impressive for real-time AR rendering.
We also learned that "skin analysis" and "virtual try-on" are fundamentally different product problems. Skin analysis is diagnostic — it tells you what's happening. VTO is experiential — it shows you what's possible. Combining both in a single flow creates something much more compelling than either alone.
Most importantly: the African beauty market doesn't need a watered-down version of Western beauty tech. It needs tools built specifically for its skin tones, its brands, its price points, and its platforms. WhatsApp isn't a gimmick — it's where commerce happens.
What's next for SkinScout - AI Skincare Advisor for African Beauty Retail
SkinScout's immediate next step is a physical retail deployment — a kiosk experience for beauty stores in Lagos and Accra where customers walk up, scan their face, and receive a printed or WhatsApp-shared recommendation card with products available in that specific store.
On the technical roadmap: • Expand makeup VTO to include eye_shadow and lip_liner as Perfect Corp adds support • Integrate real product catalog APIs from African beauty distributors (Zaron, Health Plus) • Add a retailer dashboard showing aggregate skin type and concern data across customers — anonymised insights for inventory planning • Deploy as a Shopify plugin for African e-commerce beauty brands
The business model is B2B SaaS: NGN 150,000/month per retail location, with a revenue share on attributable purchases. 50 locations = NGN 7.5M/month. The market is there. The technology is ready.
Built With
- african-beauty
- ar-beauty
- express.js
- groq
- llama-3.1
- node.js
- perfect-corp
- retail-tech
- skin-analysis
- virtual-try-on
- youcam-api

Log in or sign up for Devpost to join the conversation.