Skip to content
Archive project2026

LabelFacts

An app for understanding product labels and tracking everyday choices.

iOSAndroid
Let’s build something like this
LabelFacts interface 1
LabelFacts interface 2
AppAMG / 26
Project
LabelFacts
Our role
Design · Software development
Platforms
iOS · Android

01 / Behind the product

A real need. A considered solution.

01

Challenge

Reading a product label and tracking everyday choices are different tasks. Barcode lookup has its own problem: if every scan waits on an external API the experience is slow, and if the source provider goes down the app stops working.

02

Approach

Lookup runs through a four-layer chain: an in-session memory cache (zero latency), a Firestore cache, a Cloud Function that runs the full API chain server-side, and a direct Open Food Facts fallback if that fails. The barcode format is validated locally first. The scoring engine combines Nutri-Score, the NOVA processing level and its own ingredient database, and a methodology screen inside the app explains how the score is built. The daily view brings selected products and the day’s summary together; the paywall runs on RevenueCat.

03

Result

Barcode and product search, scan history, category rankings and a daily product journal; the Firebase-backed iOS and Android app was delivered to the client. An archive project.

03 / Scope & details

The details make the experience.

  • 01

    A four-layer lookup chain: memory, Firestore, Cloud Function, Open Food Facts

  • 02

    Scoring that combines Nutri-Score, NOVA and an ingredient database

  • 03

    An in-app methodology page

  • 04

    Scan history, rankings and a daily product journal

Technology

React NativeExpoTypeScriptFirebase

INSIDE THE PRODUCT

The engineering behind the interface.

Systems we built and concrete problems we addressed in this project.

01

A four-layer lookup chain

lookupProduct validates the barcode format (8–14 digits) first, then walks session memory → Firestore cache → Cloud Function → direct Open Food Facts. A product opened from history never touches Firestore; no loading flash.

02

Scoring is transparent

src/lib/scoring combines Nutri-Score, the NOVA processing level and its own ingredient database; the score is capped in specific cases and the in-app methodology page explains it.

03

Offline and payments

NetInfo tracks connectivity and FlashList keeps long lists smooth; the RevenueCat paywall and Meta SDK events ship in the same app.

Your idea could be next.

What could we build for you?

From a first release to a growing platform. Let’s plan the design, development and launch together.

Tell us about your project

From Türkiye to the US, UK, Australia and everywhere in between.