Brands wanting to reach Gen Z inside live gaming streams were negotiating individually with creators, with no way to price a campaign in advance and no measurement afterwards.
Ad-tech · Two-sided marketplace
Neonbit
Brand-safe advertising inside live gaming streams, planned and measured in minutes.
- Product
- Neonbit — in-stream advertising marketplace for brands and gaming streamers
- Role
- Frontend engineer, contract
- Scope
- React and TypeScript front end on a custom Laravel API, campaign planner, real-time reporting

The tension
Nobody spends five thousand euros on a guess.
The blocker was not discovery, it was commitment. A brand will not book what it cannot forecast, so the planner had to answer what a budget buys before anything was agreed.
A brand moving from a budget figure to a projected reach without talking to anyone, and a streamer joining a network that does not compromise their content.
Live streams are unpredictable and brand safety is the whole proposition. A placement that damages an advertiser costs more than the campaign was worth.
Each carrying categories, languages and a brand-safety score.
The turnaround the platform commits to publicly.
Same-day, and stated on the landing page as a promise.
The product story
Price the campaign before anyone commits to it.
Two audiences
The bridge has two ends.
The landing view splits at the first interaction — I am a Brand, I am a Streamer — because the two sides arrive wanting opposite things from the same network.

Narrow first
Planned on a laptop, checked on a phone.
The planner, the creator network and the campaign KPIs all reflow to one column while keeping the budget input and its projection on screen together.

The planner
A budget becomes a forecast.
Choose a spend and a CPM and the planner projects impressions and clicks live, with the rate stepping down as budget rises. The calculation is shown rather than summarised, because the number is the thing being trusted.

Walkthrough
The platform in motion
Recorded from the live site.
The trust test
The happy path is only half the product.
A campaign has no inventory at the chosen targeting
The planner projects from the network that actually matches the filters, so an over-narrow campaign shows a reduced forecast rather than a confident number it cannot deliver.
A stream goes off-brief mid-campaign
Placement routing reads the brand-safety score continuously rather than at booking, so a stream that stops matching is dropped from rotation instead of running to the end of its schedule.
Delivery falls short of the projection
Billing is performance-based on delivered impressions rather than on the booked figure, so a shortfall is a smaller invoice rather than a dispute.
The decisions
Three moves carried the story.
Make the forecast the landing page
The budget planner is not behind a signup. A brand can price a campaign on first visit, because the thing blocking the sale was never discovery — it was being asked to commit to an unknown number.
Model brand safety as data, not as a promise
Every streamer carries categories, languages and a brand-safety score on the record itself, so targeting and exclusion are queries against structured fields rather than a manual review step.
Scope every view to its side of the market
Brands, streamers and staff read the same campaign from different roles, so access is resolved once against the Laravel API and every route reads that resolution — a brand can never reach a streamer's earnings, and neither reaches the other's pipeline.
What I would test next
