Eleven primitives.
One coherent loop.
Events and Score are the always-on foundation. Add only the progress, competition, economy, and recognition mechanics your product actually needs.
Start with facts.
Add mechanics deliberately.
Each primitive has one job and explicit connections to the others. The result is a product model your team and coding agent can reason about, review, and version.
Earn score
Choose which product actions matter and express what each action is worth.
Actions become scoreEvents
The actions users take
Immutable records such as completing a lesson, logging a workout, or making a purchase. Every other primitive derives from these facts.
- Example
lesson.completed- Connects
- Feeds scoring and conditions
Score
What each action is worth
Multipliers, bonuses, cooldowns, and daily caps define the behavior your product encourages without rewriting the event history.
- Example
+10 · daily cap 3- Connects
- Feeds progress and rank
Build progress
Turn score into visible momentum and give users a reason to return.
Score becomes progressScopes
Progress by area
Separate progress into meaningful categories such as a global score and a score for each subject, skill, team, or product area.
- Example
global · mathematics- Connects
- Segments score and boards
Levels
A climb users can see
Convert accumulated score into a tunable progression curve, with quick early momentum and later milestones that feel earned.
- Example
base 100 · exponent 1.6- Connects
- Derived from score
Streaks
Reward showing up
Track consecutive daily, weekly, or monthly periods using one qualifying event, any event in a set, or several required actions.
- Example
daily practice · day 7- Connects
- Derived from event periods
Create competition
Compare relevant progress over a fair period without forcing every user into one global race.
Progress becomes rankLeaderboards
Show who is on top
Rank users by a scoped score over daily, weekly, monthly, or all-time windows, with cohorts that keep the comparison motivating.
- Example
weekly · cohort · top 100- Connects
- Reads score within a scope
Create an economy
Give users something to hold, save, and spend on useful product benefits.
Participation becomes choiceBalances
What users can hold
Create named pools such as coins, energy, hearts, or credits with their own starting value and optional holding limit.
- Example
coins · maximum 5,000- Connects
- Funded by grants
Store
What users can buy
Offer items, perks, or unlocks with a clear price, the balance they spend, and the benefit delivered after purchase.
- Example
freeze-token · 250 coins- Connects
- Spends a balance
Recognize success
Set meaningful goals and define exactly what completing them unlocks.
Milestones become rewardsAchievements
Permanent milestones
One-time recognition with a name, rarity tier, and event, score, category, boolean, or compound completion condition.
- Example
first-week · gold- Connects
- Evaluates a condition
Challenges
Time-boxed goals
Measurable daily, weekly, monthly, seasonal, or one-time objectives with difficulty and a defined completion target.
- Example
weekly-lessons · 5- Connects
- Completes into grants
Grants
What success unlocks
Reusable reward payloads that add score, credit a balance, deliver a store item, or unlock a product benefit.
- Example
currency +50- Connects
- Rewards achievements and challenges
A primitive is a capability,
not a mandatory feature.
A habit app might use Streaks and Achievements. A learning product might add Scopes, Levels, and Leaderboards. A loyalty product can layer Balances, Store, Challenges, and Grants on the same event history.
Let the agent choose the smallest useful set.
Streakline maps the journeys already present in your repository and proposes only the primitives that support them.