๐Ÿ’„
๐Ÿ’„
๐Ÿ’„
๐Ÿ’„
๐Ÿ’„

GlowNote

iOS ยท TestFlight

A native iOS app that helps users reuse the looks they already know work.

GlowNote is a native iOS app built around a simple product thesis: beauty tools are most useful when they help people remember and repeat what already works for them. Instead of centering the experience on product lists, the app treats each successful look as the core unit, then connects products, usage history, color patterns, and lightweight AI assistance around it. The result is a more grounded workflow for capturing personal beauty knowledge and turning it into something reusable over time.

What I owned

  • End-to-end product ownership from concept, interaction design, and information architecture to full native iOS implementation
  • Definition of the look-centric product model, including Look / Product / Tag relationships and the surrounding workflow logic
  • SwiftUI app architecture, state management, and local-first persistence layer for structured records and media-backed beauty history
  • Inventory system design and implementation, including product lifecycle tracking, usage history, and reminder logic
  • Multi-path product intake flows spanning camera capture, photo import, barcode scanning, and natural-language entry
  • AI-assisted metadata pipeline for look and product structuring, with clear boundaries around trust and user control
  • Seasonal color mapping and swatch visualization system for turning repeated usage into visual preference patterns
  • Bilingual localization across content structure, UI flows, and product semantics

Tech Stacks

SwiftUICombineCodableUserDefaults / @AppStorageLocal JSON persistencePhotosUIUIKit interoperabilityVisionKitVisionUserNotificationsOpenAI APIDeepSeek APIOpen Beauty Facts APILocalization (English / Chinese)

Why this exists

GlowNote exists because many beauty products help users buy more, but very few help them understand themselves better. I wanted to build a tool that starts from lived experience instead of endless discovery: what combinations have worked, in what context, with which products, and why. The product is designed to strengthen personal judgment, reduce decision fatigue, and make beauty routines feel more stable, intentional, and self-defined.

Key Decisions

Why make Look the core object instead of Product?

That decision shaped the entire product. Most beauty apps assume the product is the thing to organize, compare, or acquire. I wanted the app to begin one level closer to real user behavior: people remember looks that worked. By making Look the core object, GlowNote becomes a system for reuse and pattern recognition rather than collection management.

What role does AI play in GlowNote?

Beauty is too subjective for AI to be the decision-maker. In GlowNote, AI is intentionally narrow and supportive: it helps structure messy input, suggest metadata, and reduce manual effort, but it does not claim authority over taste. That boundary was important to the product's trust model.

Why choose a local-first architecture?

Privacy and trust were product concerns, not just technical ones. Users are storing personal photos, routines, and preferences, so keeping core records on device made the app feel safer and more legible. External services are only involved when users explicitly invoke AI features.

Why support multiple low-friction intake paths?

If capture feels rigid, users stop logging. I designed multiple intake paths because beauty routines happen in messy, real contexts: at a mirror, in a store, mid-routine, or after the fact. Photo, barcode, and natural-language entry all serve the same goal of lowering the cost of turning experience into structured memory.

Why position inventory as a supporting system rather than the main focus?

Inventory matters, but not as an end in itself. I treated it as a supporting layer because the real value is not knowing what is owned in the abstract, but knowing what is worth reaching for again. In GlowNote, inventory supports look reuse, lifecycle tracking, and better product judgment rather than completionism.

Why add a seasonal color map?

Many users are not missing products; they are missing a clear model of their own preferences. The seasonal color map turns scattered choices into a visual pattern, helping users see recurring fit across products and looks instead of relying on isolated trial and error.