Fill is a cross-promotion network. If that sounds like "apps advertising each other for free," you're close — but the mechanics are more nuanced than that. Here's how the economics actually work.
Two types of credits
Fill's economy runs on credits. There are two kinds, and the distinction matters:
Promo credits are free. Every new app gets 1,000 promo credits as a welcome bonus. They can only be spent on promoting your app — you can't cash them out. Think of them as starter fuel. They exist so you can immediately start getting your app in front of users, even before you've served a single ad.
Earned credits come from serving ads. Every viewable impression your app shows earns 1 credit. Every valid click earns 5 credits. Earned credits can be spent on promotion (same as promo credits) OR, when cash-out functionality launches, converted to dollars.
This two-tier system prevents gaming. You can't sign up, collect free credits, cash them out, and leave. The free credits are locked to promotion — they only have value if you actually use the network.
The math
Let's make this concrete with real numbers.
The base rate: 1 impression = 1 credit = $0.001. This is a $1 CPM (cost per thousand impressions), which is on the low end for display advertising but appropriate for a bootstrapping network of small apps.
Say your app gets 10,000 visitors per month. With a single ad placement and reasonable viewability:
- ~8,000 viewable impressions (assuming 80% viewability rate)
- ~40 clicks (assuming 0.5% CTR)
- Earned: 8,000 + (40 x 5) = 8,200 credits/month
- Cash value: $8.20/month
That's not quit-your-job money. But here's where it gets interesting.
If you spend those 8,200 credits on promotion instead of cashing out, that's 8,200 impressions of YOUR app shown across other apps in the network. At a 0.5% CTR, that's roughly 41 new visitors to your app — for free. No ad spend. No marketing budget. Just the value of your existing traffic, recycled through the network.
Now those 41 new visitors generate their own impressions, which earn more credits, which drive more promotion. This is the flywheel.
Why cross-promotion beats paid acquisition
Traditional user acquisition costs real money. Typical costs for indie web apps:
- Google Ads: $1-5 per click
- Facebook/Meta Ads: $0.50-3 per click
- Twitter/X Ads: $0.50-2 per click
- Reddit Ads: $0.20-1 per click
Fill's cross-promotion cost per click: $0 in cash. You're paying with impressions you'd otherwise give away for nothing.
The economics are especially powerful for small apps because the alternative isn't "cheaper ads elsewhere" — it's "no ads at all." If you can't afford $100/month on Google Ads, and you don't have the traffic for AdSense, your distribution options are basically: post on social media and hope. Fill gives you a third option: earn distribution by contributing to the network.
The flywheel effect
Network effects are the engine here. Every app that joins Fill makes the network more valuable for every other app:
More apps = more ad inventory. When App A earns credits and spends them on promotion, those promotion impressions need to be shown somewhere. The more apps in the network, the more places to show them, and the more diverse the audience.
More inventory = more credits flowing. More apps serving ads means more credits being earned across the network. More credits being spent means more promotions being shown. The circulation velocity increases.
More promotions = more installs. As the network grows, the quality of cross-promotion improves. Better targeting becomes possible. More relevant app recommendations lead to higher click-through rates.
More installs = more traffic = more impressions = more credits. And the cycle continues.
This flywheel is self-reinforcing. It doesn't require outside money to spin. It's powered entirely by the aggregate traffic of the apps in the network.
When cash enters the system
Cross-promotion runs on credits, not dollars. So where does money come from?
Credit purchases. A builder who wants to promote their app faster than organic credit earning allows can buy promo credits. $1 buys 1,000 credits (1,000 impressions of their app across the network). This is Fill's revenue.
The pricing is intentionally low. $10 buys 10,000 impressions — enough to drive ~50 new visitors. That's a $0.20 cost per visitor, which is competitive with or cheaper than any traditional ad platform. And because the audience is other builders' users (who are already using similar apps), the traffic quality is high.
Cash-out (coming soon). Publishers who earn credits by serving ads will eventually be able to convert earned credits to cash at 1,000 credits = $1. This creates a real revenue stream for popular apps in the network, funded by credit purchases from other builders.
The system is designed so that money flows from builders who want growth to builders who provide ad inventory. Both sides get value. The network facilitates the exchange.
The network bootstraps itself
Fill doesn't need a massive ad sales team or enterprise contracts to work. The initial value proposition is cross-promotion: apps promoting each other for mutual growth. This works at any scale, even two apps.
As the network grows, the economics improve for everyone. More inventory means better fill rates. More apps mean more diverse audiences. Cash purchases accelerate growth for buyers and create revenue for publishers.
Every app that joins makes every other app more valuable. That's not a marketing tagline — it's how the math works.