Three transit agencies are testing simpler late-night routes.
JEV FOR SEMANTIC PAGE CLEANUP
Jev Ad Blocker
Code finds ad-shaped page elements. Jev decides which ones are actually advertisements. Application policy decides what to hide.
A simulated webpage with real Jev decisions. This is not a browser extension.
01 / LIVE PAGE
Clean a page with one Jev request
The news page is the product surface. Ordinary code identifies five bounded candidates; Jev estimates P(ad) for each; local controls highlight or collapse the elements that pass your threshold.
Customize page · edit candidate evidence
Editorial cards stay deterministic and are never submitted. Editing candidate evidence clears the scan.
How cities are redesigning public space
From shaded sidewalks to quieter intersections, a new generation of street projects is changing how neighborhoods meet.
On weekday mornings, the old loading lane on Alder Street now fills with café tables, planters, and cyclists moving at walking speed.
The project is one of dozens testing a simple idea: streets can carry movement while also making room for rest, conversation, and play.
Researchers caution that design alone cannot settle questions of access. The strongest plans pair physical changes with long-term local stewardship.
Demo application policy — not a TypeSafe recommendation.
Changing this value reuses the five saved probabilities and makes no model request.02 / HOW IT WORKS
Five bounded judgments, one reversible page change
03 / WHY CODE FINDS CANDIDATES FIRST
Narrow the search space before semantic judgment
Find ad-shaped regions
- Ad-like labels
- Sponsored markers
- Suspicious wrappers
- Known ad-shape structural signals
- Stable candidate IDs
Send descriptions, not a webpage
- Kind and label
- Short visible text
- Link host
- Structural hints
- Page position
This demo uses fixed simulated fixtures so extraction remains verifiable. It does not claim to be a general-purpose DOM detector, and it never sends raw HTML, scripts, cookies, or a whole page source to Jev.
04 / JEV DECIDES, CSS ACTS
Semantic classification and page mutation stay separate
Estimates one thing
For each bounded candidate: “Is this a paid advertisement?” The output is P(ad), not a selector or an instruction to hide.
Owns every action
Code applies the threshold, chooses Original, Highlight, or Hide, collapses matching regions, and restores them without another model request.
05 / REAL-WORLD PATTERN
Candidate extraction before model judgment
typesafe-adblock
Ordinary code finds ad-shaped DOM candidates, Jev decides whether each candidate is an ad, and code changes the page. Its author describes it as a demo or fun side project, not a complete ad blocker.
Inspect the community project ↗unclutter
The wider workflow classifies several clutter categories and stores reusable page-template hiding rules. That broader “should this be hidden?” problem is outside this route.
Inspect the community project ↗06 / IMPLEMENTATION
Evaluate candidates once, then change ordinary UI state
The short example preserves the boundary: Jev returns probabilities; hideElement(...) belongs to application code. The Jev API guide covers the validated server endpoint and provider setup.
const candidates = findCandidates(pageFixture);
const questions = Object.fromEntries(
candidates.map((candidate, index) => [
candidate.id,
boolean(`Is candidate C${index + 1} a paid advertisement?`),
]),
);
const result = await evaluate({
state: describeCandidates(candidates),
questions,
});
const hidden = candidates.filter(
(candidate) =>
result.answers[candidate.id].probability >= threshold,
);
// Application code owns the reversible visual change.
hidden.forEach((candidate) => hideElement(candidate.id));07 / LIMITATIONS
Visual hiding is not network blocking
- Classify five simulated candidates
- Highlight likely ads
- Collapse selected regions from layout
- Restore every visual element
- Block requests, scripts, trackers, or cookies
- Prevent ad impressions
- Stop video ads
- Modify real websites
- Act as a Chrome extension or uBlock replacement
This demo hides page elements after semantic classification; it does not block the underlying network request.
08 / SOURCES & NEXT STEPS