Quest Engine: From Brazil Pilot to a Self-Serve Growth Lever
A 0→1 gamification system built as the primary activation and retention lever for a market launch, then iterated hard post-launch based on what real usage revealed.
The problem
Loco needed an activation and retention lever for its Brazil launch — something that would get new users into a habit loop quickly, without leaning on push notifications, which are an easy crutch and a poor first impression.
Approach
I designed Quest Engine around two complementary mechanics: Short Quests (parallel, built for instant gratification) and Long Quests (sequential, built for habit formation). Rather than hard-coding tasks, I built the whole thing on a configurable Retool backend, so growth managers could self-serve on task type, duration, validity, and repetition criteria — for example, "watch X minutes of a stream" — without needing an engineer for every new campaign. Quests were also personalized per streamer, showing up contextually across live streams, streamer pages, quest pages, and category pages, and filtered by country using CloudFront headers so campaigns and rewards could be tuned per market. The reward economy itself mixed time-spent currency with purchased currency, borrowing engagement-loop principles from gaming economy design.
What shipped for the MVP
The MVP went live to Brazil on April 29, 2025, covering configurable tasks (watch stream, chat/sticker, follow, app launch), a reward claim flow spanning in-app Gold and external rewards like Amazon Pay gift cards, and segment-based targeting — all owned end-to-end, from the user-facing task dashboard and progress states down to the growth-ops tooling for creating quests, segment templates, and reward codes. It landed 5% task completion in pilot with zero push notificationsHard.
Iterating after launch
Shipping the MVP wasn't the end of the work — real usage surfaced real friction, and I went through six rounds of iteration rather than letting the feature sit:
- Redesigned the task-card timer and CTA logic across 6 lifecycle states, fixing an ambiguity users kept hitting right after completing a task
- Unified multi-task rendering into a single carousel with deterministic, status-based ordering
- Moved reward claiming inline instead of redirecting to a separate page, eliminating a two-back-press navigation trap that had crept in with an earlier change
- Cut Amplitude event volume by switching from near-continuous progress tracking to five bucketed completion bands — a pure cost optimization with no loss of insightHard
- Shipped a Metabase report giving the growth team a direct, self-serve input for sizing reward windows, instead of relying on ad hoc requests to engineering
- Added Retool-based cloning for quests and tasks, cutting the time needed to roll out multi-country and multi-language variants