2023 — present · iOS, Android, Web, Desktop
Skinlav
Skin analysis from physical test strips instead of a selfie, with personalised product recommendations and an online store.
Built for Skinlav, a Cyprus cosmetics brand · technology partner
- Flutter
- On-device ML
- PyTorch
- Next.js
- Stripe
- Firebase
Problem
Selfie-based skin analysis is at the mercy of lighting and camera quality. Skinlav wanted objective measurements from sebum and desquamation test strips that a customer applies to the forehead and cheeks, then photographs.
Architecture
- Flutter mobile app that guides the test, captures the strips and runs custom models on the device to measure sebum and desquamation per facial zone and derive the skin type.
- Model training and conversion pipeline in Python (PyTorch to TFLite and ONNX) for on-device inference.
- Next.js and TypeScript store on Stripe’s product catalogue with incremental static regeneration; the app hands its analysis to the store by deep link, and it travels with the order into Stripe Checkout.
- Native Windows and macOS CRM (Flutter desktop), a full replacement for Bitrix24 with the data migrated over: deals, six-zone diagnostics, ingredient stock, Stripe payment links; a local ObjectBox database synced through Google Drive with a single-writer lock, and over-the-air updates on both platforms.
- Flutter Web stock manager with batch and expiry tracking and a full audit trail.
- Firebase backend: Cloud Functions, Firestore, Auth, Storage, Remote Config, Hosting.
Result

- Every part of the platform designed and built by me; the app is live on both mobile stores.
- Selected for the COSMOPRIME showcase at Cosmoprof Worldwide Bologna, 26–28 March 2026.