Skip to content
All client work
Flutter WebData PipelineCo-development

PriceHarvest

Co-development partner

A Flutter web app that tracks prices across retailers and tells shoppers the moment to buy — co-developed by IN2Labs.

Visit priceharvest.app

At a glance

Our role
Co-development partner
Product
Cross-retailer price tracking with buy-timing alerts
Platform
Flutter Web
Core problem
Continuous price collection and change detection at low cost

The challenge

What made this hard

Price tracking looks simple and is not. The product is only useful if the data is current, which means collection has to run continuously across many retailers, each with its own structure and its own tolerance for automated traffic. Every architectural decision trades off freshness against cost, and a naive implementation either goes stale or runs up an infrastructure bill far larger than the product can support.

The approach

Scheduled collection instead of always-on infrastructure

The workload is bursty by nature: collection runs on a cadence, then the system is idle. Paying for always-on servers to support a periodic job is the most common way this category of product becomes uneconomical.

We built collection on scheduled serverless functions, so compute is billed against actual work rather than reserved capacity. That keeps the cost curve tied to the number of tracked items instead of to wall-clock time.

Change detection as the product, not raw price history

Users do not want a table of prices. They want to be told when to act. That distinction drives the data model: the valuable event is a meaningful change, not each individual observation.

Storing observations and deriving change events from them keeps history intact for context while making the alerting path cheap to query. It also means the definition of a "meaningful" change can be tuned without re-collecting anything.

Flutter Web for a small team

Flutter Web let one codebase and one skill set cover the product surface — the pragmatic choice for a small team where splitting across separate web and mobile stacks would have meant shipping half as often.

Outcome

What shipped

  • A live consumer product at priceharvest.app
  • Serverless, scheduled collection with cost proportional to tracked items
  • A data model built around change events rather than raw observation dumps
  • A single Flutter Web codebase maintainable by a small team

Stack

Flutter WebDartFirebaseCloud FunctionsFirestore

Building something like this?

Free 30-minute technical review. Tell me where you're stuck — we'll tell you what it takes.

Book a 30-min technical review

Free 30-minute technical review

No pitch. Straight answer.

Start