Menu-bar advertising · Mac · simulated demo
Your menu bar buys the coffee.
Advertisers bid for minute-long placements in the empty stretch of your menu bar. Install FreeCoffee, keep working, and watch the balance tick up — every winning bid and your exact 65% cut is visible in the ledger, and cash-out starts at just $2. Day zero: the network is new, so early users shape the auction — and early advertisers get it with zero competition (see the launch offer).
On iPhone: Share → Add to Home Screen
- No Gatekeeper prompt via brew
- $2 min payout
- 65% base share published
Live market price
$4.00 CPM
- 65%base share, always on
- $2payout minimum
- 24hstandard payout rail
- $5= one coffee ☕
Available
$25.30
Cash out any time over $2 — standard rail lands within 24 hours.
Pending · this week
$3.25
Verified minutes settle into available on their payout day.
Lifetime earnings
$28.55
≈ 5 cups of coffee ☕ — every row shows the winning bid and your cut.
Example figures from the public demo ledger (seed 42) — open the dashboard to inspect every row. Real earnings begin when the first campaigns clear review; the math you see is the math you get.
How it works
Three steps. No dashboards to configure, no inventory to manage.
-
Download & install
Drag FreeCoffee into your Applications folder and grant menu-bar access. It sits quietly at the top-right of your screen — a small ☕ and nothing else.
-
Your empty menu bar fills with reviewed sponsor ads
Every advertiser and creative is human-reviewed before it can bid. You get minute-long placements from vetted sponsors — text chips, never popups, never animations over your work.
-
Get paid: $2 minimum, 24-hour rail
Earnings accrue per verified impression. Cash out any time over $2 — standard rail lands within 24 hours, and the instant stablecoin option is free too. Payout model →
Where the impressions come from
Every impression is priced by audience tier — Tier 1 (US, CA, UK, CH, EEA), Tier 2 (AU, NZ, JP, KR, SG, AE), Tier 3 (rest of world). The bars show how the last 7 days of earnings split across tiers in this demo ledger.
Demo distribution — computed from the seeded demo ledger (seed 42), not from live traffic. When a backend is configured, this chart reflects the connected account's real 7-day ledger by tier.
You're in control of the bar
About to screen-share or present? Snooze FreeCoffee for 30 minutes or 2 hours — right from the menu-bar menu, with a live countdown. While snoozed nothing is shown and nothing is earned, and it resumes on its own. You can also pause earning indefinitely, or hide the chip from your menu bar entirely.
☕ Snooze
30 minutes or 2 hours, one click. A countdown shows on the chip, and earning resumes automatically when it ends — no settings to dig through.
⏻ Pause
Pause earning for as long as you like from the same menu. The app keeps your history and settings; nothing is shown while paused.
🗑 Remove
Quit and delete the app — done. Your ledger lives in one folder in your home directory; delete it and every trace of the demo is gone.
Privacy: the data boundary
A menu-bar app sits above everything you do. So the design rule is simple: FreeCoffee physically has no code paths for reading your work. These four are never captured — the binary has no API calls for them.
Screen contents
No screen capture APIs, ever. The app can't see your windows because it never asks the system to render them.
Files & browser history
No file indexing, no disk scan, no browsing data. Your folders are invisible to FreeCoffee — there is no function that touches them.
Keystrokes & screenshots
No keyboard event monitors, no screenshot permission. What you type stays between you and your keyboard.
Window titles
Not read, not stored, not hashed. Ad targeting never learns what app you're using.
What we do check — the complete list
- Awake / unlocked status — so impressions only count while you're actually there.
- Recent activity — a coarse "was the machine in use this minute" signal, nothing more granular.
- Verified ad clicks — ≥10s after the impression, ≥2s dwell, so clicks are real.
- Placement visibility — the chip must be rendered in a valid, visible menu-bar position (notch and safe-area aware); an uncertain minute is never billed. Same eligibility bar, stated up front.
That's the whole list. No Screen Recording, Accessibility, or Input Monitoring permission — ever. The app source is a single Swift file you can read in one sitting.
What people say
The reaction we're building for: install once, forget it, collect the coffee money.
"Installed for the coffee money, stayed for the dashboard. Every winning bid is just… right there."
"A text chip in the menu bar is the first ad format I've actually forgotten about. That's the compliment."
"Read the whole app source in one sitting. Show me another ad network you can say that about."
"The ledger math checks out — I redid the 65% cut on my own rows before believing it."
"Snoozed it during a screen-share, forgot to unsnooze, and it earned anyway by Friday. Set-and-forget."
"Two-dollar cash-out threshold is the whole pitch. Everything else in this category makes you wait for $25."
Illustrative reactions — fictional handles, written to show the experience we're aiming for. We don't publish paid or quoted testimonials.
Advertising on FreeCoffee
Reach active Mac users with minute-long text placements on their most-watched screen. Start with a $15 minimum spend, get human review within 48 hours, and track impressions, clicks, and spend in a report you can audit row by row.
Launch offer — first advertisers only
Your first $100 runs with no platform cut, and your bid is the top bid until the auction fills. Tier floors today: T1 $4.00 · T2 $2.50 · T3 $1.25 CPM.
Advertise — see the launch offer Automate it with the agent APIFAQ
How does the earnings math actually work?
Every minute-long placement is auctioned; the winning bid is recorded. You receive 65% of auction revenue, always on. Example from our published model: 1,000 impressions at a $6 CPM = $6.00 total → your base share is $3.90 → bounded bonuses can add at most $0.55 → the platform keeps at least ~$1.55. Every ledger row shows the winning bid and your exact cut, so you can redo this math yourself on your own data.
What counts as a "verified impression"?
A minute-long placement counts when three things are true: your Mac is awake and unlocked, there was recent activity this minute (a coarse yes/no signal — FreeCoffee never learns what you did), and the menu bar was actually visible — not hidden behind a full-screen app that suppresses it. Only verified impressions are billable, and only verified impressions count toward the click caps.
How does the $0.05 click bonus work? What are the caps?
A click pays $0.05 when it's verified: at least 10 seconds after the impression, with at least 2 seconds of dwell. Two caps protect advertisers (and you, from bot-accusations): a maximum of 5 verified clicks per day, and verified clicks can never exceed 25% of your verified monthly impressions. Both caps are enforced before anything is credited.
How do referrals work?
You earn 10% of your referee's base earnings for 12 months — double the 5% rate that's typical in this category. It's gated on real activity: your referee needs at least 60 verified minutes in their first 30 days before the referral starts paying. No gate-passing, no payout — which keeps the program worth funding.
When do I get paid?
Any time your available balance is at least $2. The standard rail settles within 24 hours; there's an instant stablecoin option — both with no fees (rails subject to provider availability). Payout timing is the most-cited complaint in this product category, so it's a design constraint here, not a feature request.
What does "≈ N cups" mean?
Every balance in FreeCoffee is also shown as a coffee count: 1 cup = $5.00, floored — so $28.55 reads "≈ 5 cups". The menu bar literally buys the coffee. It's a format, not a currency: payouts still settle in dollars.
What data does FreeCoffee check about my activity?
Four things, and that's the complete list: awake/unlocked status, coarse recent-activity (a yes/no signal per minute), placement visibility (is the chip actually rendered and visible — notch and safe-area aware), and verified ad clicks. Never captured: screen contents, files & browser history, keystrokes & screenshots, window titles. No Screen Recording, Accessibility, or Input Monitoring permission — ever. The Mac app is one readable Swift file with a comment block at the top stating exactly this boundary.
What happens when a minute is interrupted — sleep, lock, screen-share?
It doesn't count, and you're not charged (advertisers) or credited (earners) for it. When the system is unsure whether the placement was visible for the full minute, the minute is not billed — that's the rule, stated before you install, not discovered after payout. Snooze the bar before a meeting (30 min / 2 h, with a countdown) and it resumes on its own.
There are no advertisers yet — what do I earn on day one?
Honestly: the demo ledger is simulated until paying campaigns clear review — nothing here pretends otherwise. What day zero buys you is position: the payout rules ($2 minimum, 24-hour rail, 65% base + written 70% ratchet) are locked before the auction fills, referrals accrue from your first invite, and the first advertisers bid against an empty room — which is exactly why the launch offer exists.
Can advertisers target countries or set a max bid?
Country targeting ships with the platform backend; today the self-serve feed is worldwide with tiered CPM floors (T1 $4.00 · T2 $2.50 · T3 $1.25) doing the geographic work. Maximum bids are the auction itself: the highest CPM wins each minute, and minutes below your floor simply don't serve your creative. See For advertisers.
Does the app update itself?
Yes. On launch the app asks the public GitHub Releases feed whether a newer build exists (one anonymous HTTPS request — no account, no identifier, no telemetry). A new version downloads in the background, is verified by checksum, and is offered with an Update & Relaunch button in the app's menu; it also installs the next time you open the app. Prefer to stay in control? Check for Updates is a manual menu item, and nothing downloads without your click.
Day zero, stated plainly
Zero advertisers. Zero pretense.
For users
With 0 paying advertisers, the honest answer is: the demo ledger is simulated, and real earnings start when the first campaigns clear review. What you lock in by installing now — payout rules, referral position, the auction math — is all published before the money arrives, not after. When the counter below moves, your app is already showing the real feed.
For advertisers
Zero competition for the minute: your bid is the top bid until the auction fills, every verified minute is yours at the tier floor, and the first $100 runs with no platform cut under the launch offer. Human review inside 48 hours.
Live network status
0live campaigns
No paying campaigns yet — this counter moves the day the first review passes.
Put your menu bar to work
A single-file Mac app, readable before you run it. Updates are automatic — every release ships with a published sha256 checksum the app verifies before installing.
Unsigned demo build — right-click the app to open it the first time (Gatekeeper).
Already installed? The app checks for updates on every launch and installs the new
version with one click — or use Check for Updates in its menu any time.
Prefer to build it yourself? cd freecoffee/app && ./build.sh — requires macOS 13+
with the Xcode command-line tools. See the how-to.