← All Projects

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.

Sport achievements with 7 points in the trophy blob, the next pack 5 points away and a Level 2 counter
Achievement unlocked toast for Start Small with confetti over the list
  • 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.

Welcome slide with the purple number one trophy and a Hello! headline
Welcome
Welcome slide with seven category discs around a glowing blob
Categories
Categories sheet with Sport at 7 points and 6 of 50 unlocked, and six more categories
Switcher

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.
Confirmation sheet for Start Small asking Have you completed this action? with No and Yes
Confirm
Achievement unlocked toast for Start Small with confetti over the list
Unlocked
Sport achievements with 7 points in the trophy blob, the next pack 5 points away and a Level 2 counter
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.
Game On pack opened after 5 points, under a folded frosted header with the points capsule
New pack
Victory Lap bonus pack offering to unlock one premium achievement for free
Bonus pack

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.

  1. Catalogue

    350 achievements in 42 packs, every text in English and Russian, versioned by date.

  2. Backend

    The same file is seeded into Firestore and served by an API on Google App Engine.

  3. App

    Bundles the catalogue and swaps in a newer one when the server has it.

  4. Progress

    Stored on the device; anonymous Firebase sign-in authorises feedback and bonus calls.

  5. 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
Travel achievements with 2 points and collected Tourist at Home and Walking Tour cards
Travel
Navigation drawer with the seven categories, Intro, Share, Rate Us, Your Ideas and the language picker
Drawer

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.