Collector
An achievement list for real life: pick a category, tick off what you have done and collect the rest. Seven 2020 apps rebuilt in 2026 as one Flutter app that works offline.


350
real-life achievements in the catalogue
7
categories, from sport to travel
7 → 1
2020 apps merged into one
42
packs: regular, premium and bonus
- Client
- KorLab, our own product
- Category
- Lifestyle, gamification
- Platforms
- iOS on the App Store, Android in testing on Google Play
- Our part
- Everything: product, design, art, app, backend
- Timeline
- First released 2020, rebuilt 2026
The brief.
Context
In 2020 we shipped Collector as seven React Native apps, one per topic: sport, travel, cooking and so on. Each turned real activities into achievements to tick off. In 2026 we brought it back as one app, with the topics as categories and the same artwork, palette and copy.
Challenge
Seven apps meant seven listings, seven codebases and a topic per install. The rebuild had to merge them into one product without losing what made them recognisable, and keep a glass interface with glow, blur and confetti cheap to draw, since Flutter's Impeller renderer redraws every offscreen layer on every frame.
Approach
We rewrote it in Flutter around one catalogue of 350 achievements that the app bundles and the backend serves, so it works offline and updates without a release. Progress stays on the device behind anonymous sign-in. The 2020 identity carries over into a 2026 glass design, built to a strict rendering budget.
Seven apps, now seven categories.
A three-slide welcome introduces the idea, then the user picks a category. Each 2020 app is now a category with its own 50 achievements, and the category chip in the header switches between them in one tap.



Tick it, confirm it, collect it.
Tapping a check asks one question: have you done this? A yes earns a point, lights the card up and fires a toast with confetti. Repeatable activities are counters instead of checkboxes, and they climb through levels as the user logs them.
- 40 of the 350 achievements are counters with up to six levels.



Points open the next pack.
Achievements come in packs. Regular packs open once a category has enough points, so the list grows as the user collects. Premium packs are one-off in-app purchases, and bonus packs unlock one achievement at a time.
- A premium pack only appears once the store confirms it can sell it, so no build shows a dead purchase button.


One catalogue, offline first.
The catalogue is a single JSON file kept identical in the app and the backend. The app ships with it, so it works on a plane, and pulls a newer version from the API when there is one. Task ids never change, because progress on the device is keyed by them.
Catalogue
350 achievements in 42 packs, every text in English and Russian, versioned by date.
Backend
The same file is seeded into Firestore and served by an API on Google App Engine.
App
Bundles the catalogue and swaps in a newer one when the server has it.
Progress
Stored on the device; anonymous Firebase sign-in authorises feedback and bonus calls.
Stores
Listing texts and screenshots live in the repository and are published by a workflow.
The 2020 look, in glass.
We kept the original identity: the smoky violet night, the magenta accent, pink-to-violet icon discs, the trophy and Nunito. On top came frosted cards that glow once collected, progress rings and a header that folds into a frosted bar. That bar is the only live blur; lists and cards are never blurred.
- Night
- Sheet
- Accent
- Disc top
- Disc bottom
- Action end
- Gold


What we built.
Our part
- Product, design and artwork, 2020 and 2026
- Flutter app for iOS and Android replacing seven React Native apps
- Catalogue of 350 achievements shared with the backend
- Points, levels and pack progression
- Premium packs as in-app purchases
- Backend API on Google App Engine
- Store listings and screenshots generated from code
Stack
- App
- Flutter
- Dart
- Provider
- flutter_svg
- in_app_purchase
- Backend
- Google App Engine
- Firestore
- Firebase Auth
- Operations
- Firebase Analytics
- Crashlytics
- GitHub Actions
- TestFlight and App Distribution
- Stores
- App Store Connect API
- Google Play Developer API
Have an app from a few years ago?
Let's bring it back.
We rebuild older products on a current stack and keep what made people like them. Tell us about yours.



