At Dashe Corp, we build simple apps for health and productivity. A fasting timer. A supplement tracker. A water intake logger. A blood pressure monitor. A daily counter. Each one does one thing well, and each one is free.
Free apps have a problem: they need money to exist. The standard answers are ads (which sell your attention), paywalls (which lock features behind a subscription), and data harvesting (which sells you). We don’t do any of those. But “free forever with no revenue” is not a business model. It’s a hobby.
This white paper describes E-Gems — a cross-app virtual currency that rewards you for building healthy habits. Use any Dashe Corp app, earn gems. Spend gems on themes, widgets, and premium features across any app in the ecosystem. Or don’t spend them at all. The apps stay free either way.
This is how we plan to build it, why we think it will work, and what could go wrong.
The Problem with Free
A free app with no monetization has exactly one business model: hope. Hope that users appreciate the craft. Hope that the developer can afford server costs. Hope that eventually something will figure itself out.
The app industry has settled on four monetization models, and none of them are great:
| Model | How It Works | The Catch |
|---|---|---|
| Ads | Sell user attention to advertisers | Ruins the experience. Requires tracking. Health apps showing weight loss ads is dystopian. |
| Hard paywall | Pay upfront or get nothing | No one discovers the app. Downloads collapse. |
| Freemium | Free core, paid premium | Works, but deciding what to lock is adversarial. Lock too much and the free tier feels broken. |
| Data harvesting | Sell user data to third parties | Unethical. Especially for health data. |
We wanted a fifth option. Something where the free experience stays genuinely complete, but engaged users can unlock extras by using the app, not by paying. And if they want to fast-track, they can pay — but they never have to.
The closest model is Duolingo. You can learn a language entirely for free. Gems are earned through lessons, spent on streak freezes and cosmetics. Super Duolingo ($12.99/month) gives unlimited hearts and faster progression. Over 8 million people pay for it.
The difference: Duolingo is one app. We have five. That turns out to be both harder and more interesting.
The Idea: One Currency, Many Apps
E-Gems are a virtual currency shared across all Dashe Corp apps. Earn them in any app. Spend them in any app. Your balance, your streak, and your achievements follow you everywhere.
Fast-E Count-E Drink-E Heart-E Nutri-E
(fasting) (counting) (water) (BP) (supplements)
| | | | |
+-------+-------+-------+-------+-------+-------+-------+-------+
| |
Earn E-Gems Spend E-Gems
| |
+-------------------+---------------------------+
|
Shared Balance
Unified Streak
Cross-App Achievements
|
Gem-E Hub
(dashboard + wallet)
The apps are all named with the -E suffix: Nutri-E, Fast-E, Count-E, Drink-E, Heart-E. The currency follows the same pattern. E-Gems. The hub app that ties them together: Gem-E.
Every app stays fully functional without E-Gems. You can track your fasts, log your blood pressure, count your water intake, and never know E-Gems exist. But if you opt in, every healthy action you take starts earning toward something.
The psychological shift is subtle but powerful. “I should drink more water” becomes “I’m 3 glasses away from today’s gem bonus.” The habit stays the same. The motivation changes from guilt to reward.
Earning E-Gems
Gems are earned through meaningful actions — completing a fast, hitting a water goal, logging a reading. Not through opening the app, not through watching ads, and not through inviting friends. Every gem represents something you actually did.
| App | Action | E-Gems |
|---|---|---|
| Fast-E | Complete a planned fast | 10 |
| Fast-E | Try a new fasting schedule | 20 |
| Count-E | Log a daily count | 5 |
| Count-E | Hit a personal record | 15 |
| Drink-E | Hit daily water goal | 10 |
| Heart-E | Log blood pressure | 10 |
| Heart-E | Log morning and evening | 5 bonus |
| Nutri-E | Scan a supplement | 10 |
| Nutri-E | Log daily intake | 5 |
| Any app | 7-day streak | 50 bonus |
| Any app | 30-day streak | 200 bonus |
| Cross-app | Use 3 Dashe apps in one day | 25 bonus |
A typical daily earner using one app gets 10–15 gems per day. A power user across multiple apps could hit 40–60. The 7-day streak bonus ensures that consistent users accumulate meaningfully — roughly 120–150 gems per week for a single-app user, 350+ for a multi-app user.
Importantly, there is no daily cap on earning. If you complete three fasts, log your blood pressure twice, and drink your water goal — you earn all of it. We want to reward engagement, not ration it.
Spending E-Gems
Spending creates the second half of the economy. Without meaningful things to spend gems on, the currency inflates into meaninglessness. Duolingo learned this the hard way — their original Lingot currency became a joke because the shop had three items and users hoarded thousands of lingots with nothing to buy.
Our spending categories:
| Item | Cost | Type |
|---|---|---|
| Streak freeze (1 day) | 50 gems | Consumable |
| Custom app theme | 200 gems | Permanent |
| Custom app icon | 150 gems | Permanent |
| Widget style pack | 300 gems | Permanent |
| Advanced statistics | 500 gems | Permanent unlock |
| Data export (CSV/PDF) | 200 gems | Permanent unlock |
| Seasonal badge | 100 gems | Collectible |
The prices follow a deliberate logarithmic curve. Streak freezes are cheap enough that any regular user can afford them (3–5 days of earning). Custom themes take about two weeks of daily use. Advanced statistics take a month. This creates both quick wins and aspirational goals — the same psychology that makes Starbucks loyalty work (25 stars for a drink modifier vs. 400 for merchandise).
Permanent unlocks are critical. Once you earn advanced statistics, you keep them forever. This avoids the subscription fatigue trap where users feel they are renting features they already paid for.
Design principle: Every feature that is unlockable with E-Gems must be genuinely optional. The core app experience — tracking fasts, logging water, scanning supplements — is always free and fully functional. E-Gem features are enhancements, not necessities.
Streaks and the Fear of Losing Them
The streak is the single most powerful mechanic in our system. It is also the most psychologically dangerous, so we need to get it right.
How Streaks Work
A streak counts consecutive days where you complete at least one earning action in any Dashe Corp app. Drink your water goal on Monday, complete a fast on Tuesday, log your blood pressure on Wednesday — that is a 3-day streak. You don’t need to use the same app every day.
This cross-app design is intentional. It means you are never punished for rotating between apps based on your actual needs. Fasting on weekdays, water tracking on weekends — the streak stays alive.
Streak Milestones
| Milestone | Bonus |
|---|---|
| 7 days | 50 E-Gems + “Week Warrior” badge |
| 30 days | 200 E-Gems + “Monthly Master” badge |
| 100 days | 500 E-Gems + “Century” badge |
| 365 days | 2,000 E-Gems + “Year One” badge |
Protecting the Streak
A streak freeze costs 50 E-Gems and protects one missed day. You can stack up to two. This means even at the base earning rate of 10–15 gems/day, you can afford a streak freeze every 3–5 days. You are never one bad day away from losing a month of progress.
Subscribers to Gem-E+ get an automatic streak shield — one free freeze per week, applied automatically if you miss a day. This is one of the most compelling subscription perks, borrowed directly from Duolingo Super’s playbook.
The Psychology of Loss Aversion
Kahneman and Tversky’s prospect theory (1979) established that losing something feels roughly twice as painful as gaining the same thing feels good. A 100-day streak is not just 100 days of effort — it is 100 days of potential loss.
This is the engine that drives engagement. Research from a University of Pennsylvania study found that participants at risk of losing progress were 18.4% more likely to meet their step goals than participants who had already secured their rewards. The fear of breaking the streak is a stronger motivator than the reward for maintaining it.
But we also need to be responsible with this power. Unlike some implementations, we provide meaningful protection mechanisms (streak freezes, subscriber shields), and we will never send manipulative notifications like “Your streak is about to die!” Our notifications are positive: “You’re on day 14. Nice work.”
Why It Works: The Psychology
The E-Gems system draws on five well-researched behavioral principles. Understanding them helps us build responsibly.
1. The Endowed Progress Effect
In a landmark study by Nunes and Dreze (2006), car wash customers were given loyalty cards. Group A needed 8 stamps from zero. Group B needed 10 stamps but had 2 pre-stamped. Both groups needed 8 more visits. Group B — the one with a head start — had a 34% completion rate versus Group A’s 19%.
We apply this by giving new users an initial grant of 25 E-Gems on their first day. Not enough to buy anything significant, but enough to show the progress bar at 12.5% toward a streak freeze (50 gems) before they do anything. The counter is not at zero. You are already on your way.
2. Variable Rewards
B.F. Skinner demonstrated that rewards delivered at unpredictable intervals create the strongest habits. This is why slot machines work and why social media feeds are addictive — you never know when the next good thing will appear.
E-Gems uses variable rewards sparingly and ethically. Daily earning is predictable (you know exactly how many gems you will get). But weekly challenges rotate randomly, and bonus events (“Double Gems Weekend”) appear periodically. The anticipation of “what’s this week’s challenge?” adds interest without creating compulsion.
3. The Zeigarnik Effect
People remember and are driven to complete incomplete tasks. A progress bar at 80% is a stronger motivator than a promise of reward. Apple’s Activity Rings exploit this directly — a ring at 90% feels like a waste to not close.
Every E-Gems screen shows progress toward the next milestone. Not “you have 180 gems” but “you are 20 gems from unlocking a custom theme.” The incomplete task does the motivating for us.
4. Goal Gradient Acceleration
People speed up as they approach a goal. Starbucks customers visit more frequently when they are 8/10 stars toward a reward versus 2/10. We show this visually — a gem filling up like a progress ring as you approach spending thresholds.
5. Social Proof (Optional)
An opt-in leaderboard shows where you rank among other Dashe Corp users in your city or country. Not mandatory, not aggressive, but available for people who are motivated by comparison. Duolingo’s League system drives engagement significantly — users compete weekly to avoid “demotion” to a lower league.
We will offer leagues in a future phase, but only as opt-in. Health data is personal. No one should feel pressured to share their fasting habits to stay competitive.
Balancing the Economy
Every virtual economy has faucets (where currency enters) and sinks (where it leaves). When faucets outpace sinks, you get inflation — currency becomes worthless. When sinks outpace faucets, you get deflation — the system feels punitive.
Duolingo’s original Lingot economy is a cautionary tale. High earn rate, tiny shop, no meaningful sinks. Users stockpiled thousands of Lingots with nothing to buy. The currency became a meme. They had to redesign the entire economy, introducing Hearts (a sink that punishes mistakes) and converting to Gems with higher prices.
Our Faucet/Sink Balance
FAUCETS (currency in) SINKS (currency out)
===================== =====================
Daily actions: 10-15/day Streak freezes: 50 each
Streak bonuses: 50-200 Themes: 200 each
Achievements: 25-500 Icons: 150 each
Weekly challenges: 25-75 Widgets: 300 each
Subscription drip: 50/week Statistics: 500 each
Export: 200 each
Seasonal badges: 100 each
Avg daily in: ~20 gems Avg daily out: ~12 gems
Weekly in: ~190 gems Weekly out: ~85 gems
The target ratio is roughly 2:1 — users accumulate faster than they spend, building a satisfying balance. But the accumulation rate slows as they unlock permanent features (you only buy a theme once), which naturally pushes engaged free users toward either saving for bigger items or considering a subscription for the bonus gems.
Key Economic Rules
- No expiration. Earned gems never expire. This is both an Apple requirement for IAP-purchased currency and a trust requirement for free users.
- No negative balances. You cannot spend what you don’t have. No credit, no debt.
- Transparent pricing. Every item has a fixed gem price, visible before you earn. No dynamic pricing, no “sales” that create artificial urgency.
- No loot boxes. You know exactly what you are buying. Randomized rewards are ethically questionable, legally risky (Apple requires odds disclosure), and unnecessary for our use case.
The Pinch Point
In economy design, the pinch point is where demand for a resource peaks relative to supply. This is where monetization happens naturally.
Duolingo’s pinch point: Running out of hearts mid-lesson. You are invested in finishing. You are stuck. Hearts cost 350 gems. Super Duolingo gives unlimited hearts. The conversion feels natural, not forced.
Our pinch point: The streak freeze at 80+ days. At day 83, your streak is a meaningful achievement. Missing a day would erase it. A streak freeze costs 50 gems. You have 30. The Gem-E+ subscription includes a free weekly streak shield. The conversion from free to subscriber feels natural: “I value my streak enough to protect it.”
This is fundamentally different from locking core features. You never need a subscription to track your fasts or log your water. The subscription protects your progress, not your access.
The Subscription Tier: Gem-E+
The subscription is where recurring revenue lives. But it has to feel like a genuine upgrade, not a ransom note.
| Feature | Free | Gem-E+ ($2.99/mo) | Gem-E Pro ($6.99/mo) |
|---|---|---|---|
| All core app features | Yes | Yes | Yes |
| Earn E-Gems | 1x rate | 2x rate | 3x rate |
| Monthly gem bonus | — | 200 gems | 600 gems |
| Weekly streak shield | — | 1 free/week | 2 free/week |
| Exclusive themes | — | 3 themes | All themes |
| Priority support | — | — | Yes |
| All widgets unlocked | — | — | Yes |
At $2.99/month, Gem-E+ is priced below a coffee. The 2x earning rate means the same daily actions yield 20–30 gems instead of 10–15. The 200 monthly gem bonus is enough for a theme every month or four streak freezes. The weekly streak shield alone is worth the price for anyone past a 30-day streak.
The subscription is managed through the Gem-E hub app, and the perks apply across all Dashe Corp apps. One subscription, all apps. This is explicitly allowed under Apple’s Guideline 3.1.3(b) for multiplatform services.
Why Not Gem Packs?
We will also offer one-time gem packs for users who want gems without a subscription:
| Pack | E-Gems | Price |
|---|---|---|
| Starter | 500 | $1.99 |
| Popular | 1,500 | $4.99 |
| Best Value | 5,000 | $9.99 |
These are consumable in-app purchases via Apple IAP and Google Play Billing. The $1.99 entry point is intentionally low — in the mobile games industry, the first purchase is the hardest. Supercell’s Clash of Clans smallest pack ($0.99 for 80 gems) and Duolingo’s in-app offers both exploit this “foot in the door” principle. Once a user crosses the free-to-paid threshold, subsequent purchases become psychologically easier.
The bulk discount from smallest to largest pack is about 2.5x value per dollar, incentivizing larger purchases while keeping the entry point accessible.
Technical Architecture
The E-Gems system does not require a new SDK, a new backend, or a new dependency in any of our apps. It is built as a module inside the Cuti-E SDK, which is already integrated in every Dashe Corp app for feedback and analytics.
Cuti-E SDK (already in every app) | |-- Feedback Module (existing - in-app conversations) |-- Activity Module (existing - anonymous usage pings) |-- Tokens Module (NEW - earn, spend, balance) |-- Gamification Module (NEW - streaks, achievements, levels) Cuti-E Backend (existing Cloudflare Worker + D1 database) | |-- /v1/conversations/* (existing) |-- /v1/activity/* (existing) |-- /v1/tokens/* (NEW - earn, spend, balance, history) |-- /v1/gamification/* (NEW - streaks, achievements, leaderboards)
Identity
E-Gems work in two modes:
- Anonymous (default): Gems are tracked by the device’s hashed identifier (the same pseudonymized ID used for activity pings). No account required. Works offline. Balance stored locally and synced when connected.
- Account (opt-in): When you install a second Dashe Corp app, a prompt suggests creating an account via Sign in with Apple. This enables cross-device sync, cross-platform balance (iOS ↔ Android), and streak continuity if you switch phones.
The anonymous mode means a user who only has Fast-E can earn and spend gems without ever creating an account, sharing an email, or signing in to anything. The account is only needed for cross-device scenarios.
Data Model
-- Token balances (one per user, synced across apps)
CREATE TABLE token_balances (
user_id TEXT PRIMARY KEY,
balance INTEGER DEFAULT 0,
lifetime_earned INTEGER DEFAULT 0,
level INTEGER DEFAULT 1
);
-- Transaction log (every earn and spend)
CREATE TABLE token_transactions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id TEXT NOT NULL,
app_id TEXT NOT NULL,
type TEXT NOT NULL, -- 'earn' or 'spend'
amount INTEGER NOT NULL,
reason TEXT NOT NULL, -- 'fast_completed', 'streak_bonus', etc.
created_at TEXT DEFAULT (datetime('now'))
);
-- Streaks (one per user, shared across all apps)
CREATE TABLE streaks (
user_id TEXT PRIMARY KEY,
current_streak INTEGER DEFAULT 0,
longest_streak INTEGER DEFAULT 0,
last_active_date TEXT,
freezes_available INTEGER DEFAULT 0
);
All data lives in Cloudflare D1 (SQLite at the edge), co-located with the existing Cuti-E backend. No new infrastructure. No new deployment. No new billing.
SDK Integration
For app developers (including ourselves), adding E-Gems to an app is a few lines of code:
// Already initialized for feedback
CutiE.configure(appId: "app_faste_ios", apiKey: "...")
// Earn gems when user completes an action
CutiE.gems.earn(.fastCompleted, amount: 10)
// Check balance
let balance = await CutiE.gems.balance()
// Check streak
let streak = await CutiE.gems.currentStreak()
// Spend gems (returns true if sufficient balance)
let success = await CutiE.gems.spend(.customTheme, amount: 200)
The SDK handles offline caching, sync on reconnect, and conflict resolution. If a user earns gems while offline on two devices, both sets of earnings are merged (additive) when they reconnect.
Platform Compliance
Virtual currencies on mobile platforms are heavily regulated by Apple and Google. Getting this wrong means rejection from the App Store, forced removal, or worse. Here is our compliance strategy.
Apple App Store
| Rule | Guideline | Our Approach |
|---|---|---|
| Purchased currency must use IAP | 3.1.1 | All gem packs sold via StoreKit / RevenueCat |
| Purchased currency cannot expire | 3.1.1 | Gems never expire, period |
| Cross-platform balance allowed | 3.1.3(b) | iOS ↔ Android sync. IAP available in each app. |
| US external purchase links | Post-Epic ruling | Web store option for US users (no Apple commission) |
| Free earned currency | Not regulated | No restrictions on earning gems through engagement |
Google Play
| Rule | Policy | Our Approach |
|---|---|---|
| Purchased currency stays in-app | Payments Policy | Purchased gems scoped to purchasing app on Android |
| Earned points exempt from billing | Payments Policy | Free-earned gems can be exchanged without Play Billing |
| US alternative billing allowed | Post-Oct 2025 | Alternative billing option for US users |
The Cross-App Challenge
Here is the nuance: Google explicitly states that “in-app virtual currencies must only be used within the app or game title for which they were purchased.” Apple is ambiguous but has no established precedent for cross-app purchased currency.
Our solution is a two-tier model:
- Earned gems (free): Shared across all apps freely. Both platforms allow this.
- Purchased gems: Purchased via the Gem-E hub app. On Android, consumed within the hub app’s ecosystem (the hub manages the balance). This is structurally similar to how Roblox operates — a single platform app that manages the economy.
We also plan a web store at dashecorp.com/gems. Tokens purchased through the web are not subject to either platform’s cross-app restrictions. In the US, we can link directly to the web store from within the apps (post-Epic and post-Google rulings, 2025). This is the same model used by Supercell, Epic, and Roblox.
Privacy
Adding a cross-app currency system means collecting more data than a standalone app. We are building this in the EU (Norway), so GDPR is not optional. Here is what changes:
What Data E-Gems Adds
| Data | Purpose | Linked to Identity? | Stored Where |
|---|---|---|---|
| Gem balance | Core functionality | Yes (if account created) | Cloudflare D1 (EU region) |
| Transaction history | Audit trail | Yes (if account created) | Cloudflare D1 (EU region) |
| Streak data | Core functionality | Yes (if account created) | Cloudflare D1 (EU region) |
| Achievement data | Gamification | Yes (if account created) | Cloudflare D1 (EU region) |
Privacy Principles
- Opt-in only. E-Gems is a feature you activate, not something that happens by default. Users who never opt in are never tracked for gamification.
- Anonymous by default. Without an account, gems are tracked by a hashed device ID that cannot be linked to a real person.
- No cross-app tracking. We do not share gem data with third parties. We do not use gem activity for advertising. The data exists solely to power the rewards system.
- Deletion on request. Users can delete their gem balance, history, and achievements at any time via the app or API.
- EU data residency. All data stored in Cloudflare’s EU region. No US data transfers for EU users.
Adding E-Gems requires updating the privacy declarations in both App Store Connect and Google Play Console for every participating app. We will disclose: User ID (if account), Purchase History (if gem packs bought), and Product Interaction (gem earning events). None of this constitutes “tracking” under Apple’s ATT framework because it is first-party data used solely within our own ecosystem.
Roadmap
Phase 1: Foundation (Single App)
- Add gem earning to Fast-E (simplest app, no auth)
- Local balance storage with streak tracking
- Gem balance UI component (reusable across apps)
- Backend API: earn, spend, balance endpoints
Phase 2: Cross-App
- Add gems to Count-E and Drink-E
- Sign in with Apple for cross-device sync
- Unified streak across all apps
- Achievement system with badges
- Build the Gem-E hub app
Phase 3: Monetization
- Gem-E+ and Gem-E Pro subscriptions via RevenueCat
- Gem pack consumable IAP
- Web store (dashecorp.com/gems) for commission-free purchases
- Spendable premium features in each app
Phase 4: Engagement
- Push notifications for streak milestones (positive framing only)
- Weekly rotating challenges
- Opt-in leaderboards
- Seasonal events and limited-edition badges
What Could Go Wrong
Every system has failure modes. Here are the ones we are watching.
1. Economy Inflation
Risk: Users earn gems faster than they spend them. Currency becomes meaningless.
Mitigation: We launch with a constrained spending catalog and expand it based on accumulation data. If average balances exceed 2,000 gems (roughly two months of hoarding), we add new sinks: seasonal collectibles, premium challenges, cosmetic packs. The transaction log gives us real-time visibility into the earn/spend ratio.
2. Unhealthy Streak Obsession
Risk: Users develop anxiety about breaking their streak, tracking health metrics compulsively rather than healthfully.
Mitigation: Streak freezes are cheap and accessible. Subscribers get automatic shields. We will add a “rest day” feature (like Apple’s Pause Rings) that lets you take a planned break without losing your streak. We will never send fear-based notifications (“Your streak is about to die!”). Our prompts are positive: “Day 14. Well done.”
3. App Store Rejection
Risk: Apple or Google rejects the cross-app currency model during review.
Mitigation: Phase 1 is a single app (Fast-E) with no cross-app component — zero compliance risk. Cross-app functionality arrives in Phase 2, by which point we will have a track record with the single-app model. The Gem-E hub app positions the system as a “multiplatform service” under Apple’s 3.1.3(b), the established framework for cross-app digital goods.
4. Too Complex for Users
Risk: Users do not understand the gem system or find it distracting from the core app purpose.
Mitigation: E-Gems are always optional and never mentioned until the user opts in. The core app experience is identical with or without gems. We follow the games industry rule of thumb: no more than two currencies (we have one), and every price visible upfront.
5. Cannibalization of Existing Subscriptions
Risk: Nutri-E already has a subscription. If users can earn premium features through gems, they may cancel.
Mitigation: Nutri-E’s AI-powered features (supplement scanning, personalized analysis) require server-side compute that has a real cost per user. These features will remain subscription-only, not gem-unlockable. Gems unlock cosmetics and convenience, not compute-intensive features.