BuildCycle
// REFERENCE PROJECT: RETAIL-TECH · MOBILE APP & DATA PLATFORM

SparFux

Find nearby supermarket deals and plan the shop together.

Anyone trying to save money flicks through several supermarket brochures every week and keeps the shopping list somewhere else. SparFux puts both into one app: users pick nearby stores, swipe or search through current offers, compare prices and share shopping lists. Behind it sits a data system of its own. A Python scraper fleet collects offers from 12 retailer sources, normalises them and assigns product categories with AI, while a Dart API handles users, lists, personalisation and notifications.

View in the App Store →
SparFux
Live offer engine
12 retailers
SparFux swipe view
SCRAPER → API → APPone offer model
Industry
Retail-tech · Consumer savings
Type
App for iOS and Android + data platform
Cycle
Product build and ongoing operation
Stack
Flutter · Dart · MongoDB · Python/Selenium · Gemini · Firebase
// THE STARTING POINT

Supermarket deals are scattered by retailer, branch and calendar week. Finding one product means opening several apps or brochures, and the shopping list lives somewhere else again. The job was to connect that path end to end: collect local offers reliably, turn inconsistent retailer data into one searchable model and make search fast enough that people actually plan with it. The app had to stay light, and the system behind it had to cope with source pages that change all the time.

// WHAT WE BUILT
✓A Flutter app for iOS and Android with swipe and grid views, full-text search and filters for price, discount and category
✓Location-based store search with a map view, retailer selection and offer counts for nearby branches
✓Shared shopping lists with invite links, custom entries, product search and checking items off together
✓Firebase sign-in, push notifications, favourites, price history, personalisation and premium features
✓A Dart/MongoDB API for offer search, users, live list events, store data, statistics and notification scheduling
✓Twelve retailer connectors with 16 parallel scraper workers, deduplication, store mapping and AI-assisted categorisation
// HOW THE PROJECT RAN
Phase 1: Core flow
From brochure browsing to a planned shop
We pinned down what users actually want to get done: find a relevant offer nearby and turn it into a planned purchase. Stores, offer search and shopping lists were built around exactly that flow.
Phase 2: App
Browse quickly or search with intent
Swipe cards make casual browsing obvious at once. Search, a dense grid and filters cover purposeful shopping. Both paths end up in the same per-store shopping lists.
Phase 3: Data platform
One offer model across twelve retailers
Retailer-specific scrapers feed one normalised offer and store model. Worker scheduling, retry logic, deduplication and AI categorisation turn volatile web pages into usable product data.
Phase 4: Live product
Shared lists, alerts, store release
The backend adds live events for shared lists, favourites, personalised categories and offer alerts. SparFux is published in the App Store.
Outcome
0
active retailer sources feeding one normalised offer model
0
connected codebases: app, product API and data collection
Status and limits

Live in the App Store. The Flutter codebase covers iOS and Android. Because offers come from retailer websites, data collection has to be adjusted whenever a source page changes; that is part of ongoing operation.

// THREE REPOSITORIES, ONE PRODUCT

From retailer page to shared shopping list in one connected system.

The interface is only the final layer. SparFux works because data collection, product logic and the app share one offer model and one operating routine.

01PYTHON · SELENIUM · GEMINI · 16 WORKERS

Offer data

Retailer-specific collectors schedule branches, normalise changing source data, remove duplicate offers and classify products with image-aware AI.

02DART · MONGODB · FIREBASE · REST

Product API

A typed Dart service owns users, stores, offer search, ranking, shared-list events, favourites, statistics and push notifications.

03FLUTTER · IOS · ANDROID · GOOGLE MAPS

App

One Flutter codebase turns the system into swipes, search, maps, price history and shared shopping lists on iOS and Android.

// THE APP IN USE

Easy to use, with a serious data system behind it.

Swipe view: quick decisions on offers nearby
Swipe view: quick decisions on offers nearby
Retailer comparison: one entry point across supermarket chains
Retailer comparison: one entry point across supermarket chains
Store map: nearby branches define the personal offer feed
Store map: nearby branches define the personal offer feed
Price overview for direct comparison when you know what you need
Price overview for direct comparison when you know what you need
Category filters turn weekly deals into a short list
Category filters turn weekly deals into a short list
Price history as context before an offer becomes a purchase
Price history as context before an offer becomes a purchase
NEXT PROJECT
Vendra →

Does your product depend on data from many inconsistent sources? Describe your plan and get a first assessment of scope and timeline.