We removed the money from an ad network. The entire system collapsed to 200 lines of JavaScript.
I build ad tech for a living: ad servers, auction systems, impression forecasting. My side project is a stroller route planner that finds shade for babies. It has zero ads. Then I noticed we have 270K cafes in the tile data.
A cafe in Nørrebro doesn't need programmatic advertising. They need the parent walking past to know they have 15% off today. That's it. A proximity check and a notification. But the tools that exist (Google Ads, Meta, delivery platforms) are built for a different scale and a different problem. A cafe owner shouldn't need to learn keyword bidding to tell someone 100 meters away they have a discount.
So we built what the simplest version of this could look like. It's absurd. It's also 200 lines of JavaScript.
The Slippery Slope
It started innocently. We already show cafes on the route for parents who need a coffee stop. The data is there. Name, location, opening hours. Useful feature. No one complained.
Then: what if cafes could offer discounts to parents walking nearby? Not ads. Not sponsored placements. Just "15% off if you're passing by with a stroller." Parents want coffee. Cafes want foot traffic. Everyone wins.
Then: what if multiple cafes could compete for the same parent? What if we ranked them by discount generosity, distance, and shade proximity? That's just a ranking algorithm. We already rank routes by shade score. Basically the same thing.
Then I realized I was designing a real-time bidding system for baby stroller traffic and I needed to have a serious conversation with myself.
The Constraint
No money. Not "fake money." Not "credits." Not "tokens." Zero financial infrastructure.
This isn't just a legal shortcut. It's how a small cafe actually thinks. They don't have an ad budget. They don't have a marketing team. They have a chalkboard sign and a discount they can offer. The tooling should meet them there.
So the "payment" is a discount. The cafe offers 15% off. The parent walks past, shows a code at the counter, the barista applies it. The transaction is between the cafe and the parent. We are not involved. We are a proximity notification layer with delusions of grandeur.
Moving the Ad Network to the Edge
We moved our routing engine to the browser. We replaced it with a neural network. Naturally, we moved the ad network to the browser too.
The cafe's browser tab IS the ad server. The cafe opens a page, sets their discount, hits "Go Live." Their phone broadcasts the offer over WebRTC to every parent device in the area. No server stores the offer. No platform mediates. The cafe and the parents talk directly, peer-to-peer, using the same protocol that distributes pirated movies.
Peer discovery uses Trystero, which piggybacks on public MQTT brokers for signaling. Once two peers find each other, they establish a direct WebRTC data channel. DTLS encrypted. The broker never sees the offers. Every offer is Ed25519 signed. Every peer generates a keypair on first launch, stored in IndexedDB. The public key IS the identity. Our identity management system is "don't clear your cookies."
Trust and Ranking
How do you know an offer is from a real cafe? We have 270K cafes in our tile data from OpenStreetMap. When a parent's device receives an offer, it checks: does the GPS match a known cafe within 50 meters? If not, it's dropped. The verification runs entirely on-device against cached POI data. No network call. The trust anchor is OpenStreetMap.
Someone could spoof GPS and create an offer for a cafe they don't operate. Defence: the discount is redeemed in person. The barista says "we don't have that promotion." Our fraud detection system is a human. Our dispute resolution process is asking to speak to the manager.
When multiple cafes are in range, the parent's device ranks them by distance, discount generosity, freshness, and shade proximity. A cafe near a shady stretch ranks higher because the parent is comfortable and likely to stop. In ad-tech terms, shade correlates with viewability.
The Demo
Open the cafe page in one tab. Pick a cafe, set a discount, hit Go Live.
Open the walk page in another tab. Pick a route through Nørrebro. Drag the slider to walk. The cafe's offer appears when the route passes through its radius. Tap to "redeem."
Everything is peer-to-peer. Both tabs can be on different devices, different networks. The routes are real pedestrian routes from our Valhalla routing engine. The cafes are real Copenhagen POIs.
What This Is Actually About
Obviously nobody is going to run an ad network over WebRTC for baby strollers. But the underlying question is real: why is it so hard for a small cafe to reach the person walking past their door?
Google Maps has the data. 200M+ business listings, real-time location, "Popular Times" occupancy, navigation routes. They already show "Less busy than usual" labels, but inconsistently. Businesses can already post offers on their Google Business Profile, but almost nobody sees them. The "Advertise" button in Business Profile creates a full Google Ads campaign. A cafe owner shouldn't need to set up keyword bidding and creative assets to tell someone nearby they have a discount.
The product that doesn't exist: a cafe owner taps one button when it's slow, and for the next two hours they rank higher in "coffee near me" searches within 500 meters. No Ads account. No campaign setup. Google already has the listing, the photos, the reviews. Just boost it.
The platforms that could solve this (Google, Apple, Wolt) won't, because the unit economics are too small for their scale. A 15% discount on a 42 DKK coffee generates maybe 0.19 DKK in value per walk-by. That doesn't justify a product team at Google. But it justifies a sticker on a door. And maybe something in between.
We built the in-between version. It's peer-to-peer, it uses WebRTC, and the fraud detection is a barista. It took a week. The actual problem is simple. A cafe wants to reach people walking nearby. That's a proximity check and a ranking function. Everything else is overhead.
The Revert
We showed it to our board (my wife). She asked if the cafe actually has this discount.
I explained the gossip protocol, the Ed25519 signatures, the POI trust model, the MQTT signaling layer, and the WebRTC encryption.
She asked again if the cafe actually has this discount.
No. The cafe does not know we exist. The entire system broadcasts fictional discounts to fictional parents walking fictional routes through real Copenhagen streets.
The demo runs entirely peer-to-peer. Broadcast a discount from one device, walk a route on another. No servers. No money. No baristas were consulted in the making of this prototype.