---
title: "Builds: interface elements"
type: community
source_tier: community
tags: [ideas, builds, ui, generative-ui, extensions]
created: 2026-09-28
updated: 2026-09-28
confidence: medium
sources:
  - raw/community/every-to-context-window-how-to-get-the-most-out-of-jev.md
  - raw/x/jackcheng-2100729670991802386.md
  - raw/x/anishfn-2102327334485557422.md
  - raw/x-repos/valentynkit__jev-skip.md
  - raw/x/the_cyw-2101020586931875932.md
  - raw/x/Saboo_Shubham_-2101576462042366114.md
  - raw/x-repos/Shubhamsaboo__awesome-llm-apps__needle.md
  - raw/x/ctatedev-2101022101750571357.md
  - raw/partner/json-render-dev__docs__jev.md
  - raw/x/mattdesl-2100899669802963060.md
  - raw/x/heystefan_-2101369117496521042.md
  - raw/community/youtube-matthewberman-8-jev-use-cases.txt
  - raw/x/stevekrouse-2100287368221659289.md
  - raw/x-repos/gaborishka__jev-canvas.md
  - raw/x-repos/mintannn__jev-asks-until-sure.md
  - raw/x-repos/oso95__x-scanner.md
  - raw/x-repos/anishfn__shapeshift.md
  - raw/x-repos/RafalWilinski__vibecheck.md
  - raw/x/sotak-2100701152824185319.md
  - raw/x/dabit3-2100780008193020049.md
  - raw/x/dabit3-2100756930054504776.md
jev_version: "jev-1.13.0"
summary: "Community builds with Jev inside a UI element: in-product classifiers, extensions, generative UI, canvases, live-typing demos; what it decides, reported numbers, limits, pattern IDs."
---

# Builds: interface elements

> **TL;DR** 14 builds plus a names-only line (split from [[ideas/builds-browser-and-interface]] on 2026-09-28). Jev makes one typed judgment inside a product surface: tint a seek bar, label a post, pick a card, place components, find a sentence, act on a voice command. Code prepares every candidate and Jev writes no text. Most rows are videos without numbers; the measured ones are jev-skip (crowd-marked sponsor seconds), x-scanner (tokens, cost, latency) and the per-keystroke or per-word latencies authors state.

**How to read.** *Builder reports* = the builder's own numbers, one run on their own workload, unverified. Pattern IDs: P14, P34 in [[ideas/patterns-interface]]; P01, P06 in [[ideas/patterns-agents]]; P16, P17, P27 in [[ideas/patterns-data]]; P30 in [[ideas/patterns-business]]; P38 in [[ideas/patterns-emerging]]. Browser agents: [[ideas/builds-browser-and-interface]]; desktop, mobile and voice control: [[ideas/builds-computer-use]].

## Builds

| Build | Jev decides | Builder reports | P |
|---|---|---|---|
| [jev-skip](https://github.com/valentynkit/jev-skip) (valentynkit) | Captions in 30 s segments, one `choice` each (`sponsor`, `intro`, `content` …) in one request; seek bar tinted by probability | 77% of crowd-marked sponsor seconds on 23 videos, 34 s false skips per hour, $0.0008 per video (gateway shim) | P34, P27 |
| [x-scanner](https://github.com/oso95/x-scanner) (oso95, [@the_cyw](https://x.com/the_cyw/status/2101020586931875932)): X timeline labeler | Chrome extension: six typed questions per post in one request (`fact-dense` and `filler` `Score`s; `engagement bait`, `promo`, `secondhand`, `jevpilled` `Noul`s), a chip under each post; cached by post id; model pinned to `jev-1.13.0` | Author-measured tokens per post (mostly the questions), cost per thousand posts and latency on [[ideas/request-mechanics]]. MIT | P34, P16 |
| [Shapeshift](https://github.com/anishfn/shapeshift) (Anish Gupta, [@anishfn](https://x.com/anishfn/status/2102327334485557422)): text box that turns into a UI | What you type becomes a card (event, checklist, timer, split, poll …): one call answers 14 typed questions (which card, plus signals such as video call or urgent); deterministic code parses dates, amounts, units and maths; an offline keyword classifier with the same output shape is the default and the fallback; a card changes only when a challenger wins twice in a row (or is very sure) | Demo only, no numbers. Key stays server-side; pinned `jev-1.13.0`. MIT | P34, P01 |
| [json-render + Jev](https://json-render.dev/docs/jev) (Vercel Labs; demo [@ctatedev](https://x.com/ctatedev/status/2101022101750571357)) | Generative UI by selection. Your app supplies atomic candidates (component, concrete props, state bindings, allowed actions); Jev picks which to include, their order and parent/slot; json-render emits a validated flat `Spec` for your own renderer. Batched: one evaluation selects root and components, a second arranges; edits (remove, move, replace) take further evaluations | Post: "rendered in milliseconds", no numbers. Docs (captured 2026-09-24): experimental, unreleased (`experimental_composeSpec` and `experimental_createEvaluator`, source build); via Vercel AI Gateway `typesafe-ai/jev`; defaults 32 evaluations, 32 elements, depth 8, 10 s per evaluation. Jev "cannot invent missing prose or data": every string is a prepared candidate. A finished spec is not a correct one; the docs say their confidence is not a quality threshold | P34, P01 |
| [Needle](https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/advanced_llm_apps/needle) ([@Saboo_Shubham_](https://x.com/Saboo_Shubham_/status/2101576462042366114)) | Semantic ⌘F in a Chrome extension (or React app): query plus the page's readable passages go to a local backend; one evaluation scores every passage and picks its strongest sentence (question types not stated); code highlights it in place. Kept at relevance ≥ 0.58 | "Super fast and near real-time" (author), no numbers. Caps 160 passages, 60,000 characters (~15k tokens, inside the 32k state budget, inferred), 2,200 per passage; every captured passage leaves the machine; no PDFs. Vercel AI Gateway key only, a TypeSafe key does not work. Apache-2.0 | P17, P34 |
| Colour palettes ([@mattdesl](https://x.com/mattdesl/status/2100899669802963060)) | Any phrase (an 80s disco mood, Mario, the blue screen of death) → a palette. How is not published (video only); Jev writes no free text, so code most likely offers the colours and Jev picks (inferred) | None; author: "very cheap and fast" | P34 |
| Emoji picker ([@heystefan_](https://x.com/heystefan_/status/2101369117496521042)) | As you type, the emojis that match rise from a pile (starting a band → instruments), per Berman's narration; the post is a video with a one-line caption | None | P34 |
| [TypeSafe Typewriter](https://typesafe-demo.val.run/) ([@stevekrouse](https://x.com/stevekrouse/status/2100287368221659289), Val Town) | Live demo of judgments re-asked as you type (video only; what it asks is not in the post) | None in the post | P34 |
| Voice-and-point canvas (Jack Cheng, Every; [demo video](https://x.com/jackcheng/status/2100729670991802386), no code linked) | The original tldraw demo: the browser transcribes speech, tracks a fingertip and describes the canvas as a list of shapes with their attributes; Jev never sees an image and answers several questions at once (which shape, what colour or size, where) | No numbers published. Cheng: even the fastest LLMs would take "a second or two" per interaction, too slow for a responsive interface ([Every](https://every.to/context-window/how-to-get-the-most-out-of-jev)) | P14 |
| [jev-canvas](https://github.com/gaborishka/jev-canvas) (gaborishka) | Open, from-scratch rebuild of Jack Cheng's demo (its README credits him). Voice plus a pointing fingertip on a tldraw canvas: every partial or final transcript sends one request with 8-9 questions (`is_command` and `complete` `noul`s; action, shape, colour, target shape and place `choice`s; a five-step size rubric); code extracts text spans and Jev picks one; thresholds in code. Via OpenRouter's alpha Decisions API | ~350 ms per spoken word (its description). Talk not aimed at the canvas scores `is_command` around 2%, so nothing happens: a wake gate ([[ideas/patterns-emerging]] P38) | P14, P38 |
| [jev-asks-until-sure](https://github.com/mintannn/jev-asks-until-sure) (mintannn; [demo](https://jev.mintan.org/)) | Twenty-questions game where `confidence` is the stopping rule: over 55% it commits, 28-45% it hedges, under 28% it refuses. One request per turn with up to 18 questions (persona, region, prefecture, age `Choice`s; 8 trait `Score`s; 8 `Noul`s; next question); a coarse 8-region `Choice` is multiplied into the 47-prefecture one | 230-440 ms per turn (author). Thresholds are the author's; `confidence` is not a probability of being right ([[concepts/confidence]]) | P06, P34 |
| [Vibe Check for X](https://github.com/RafalWilinski/vibecheck) (Rafal Wilinski) | A draft X post, with any reply or quote context, scored on a dozen editable rubrics (virality, ragebait, "sounds AI-written", regret risk …) in one request; code combines them into a verdict ([[patterns/composite-scoring]]); an optional OpenAI vision model describes attached media first, since Jev is text-only | ~1.5k-2.5k input tokens per analysis (author). Keys in extension storage; unpacked install. No licence | P30, P34 |
| Real-time Clippy ([@sotak](https://x.com/sotak/status/2100701152824185319)) | An in-product helper that watches how you use the product and wakes only when it judges you are struggling (hesitating, confused, stuck); its reactions are also picked by Jev. How is shown only in a video (not transcribed) | None | P38, P34 |
| Predictive spreadsheet and launcher ([@dabit3](https://x.com/dabit3/status/2100780008193020049), quoting his [launcher post](https://x.com/dabit3/status/2100756930054504776)) | Spreadsheet: type a column header such as "Urgency" and each row is rated on a scale from no follow-up needed to urgent. Launcher: a query like "the pdf I just downloaded" ranks the newest PDF first on every keystroke | ~100 ms for each (author); videos only, not transcribed, no method | P34 |

Also seen, names only: [TypeSafe AdBlock](https://github.com/realZachi/typesafe-adblock) (the author calls it a toy: one `noul` per ad-shaped DOM node, removed at 0.70 or above; numbers are turned into words before sending).

Palettes and emoji are world-knowledge `Choice` demos: the answer comes from what the model already knows, not from `state`, which is where Jev is weaker (capability atlas, [[ideas/builds-apps]]). Offer named colours rather than hex codes (numbers, [[concepts/jaggedness-jev-1-13]]; inferred). Matthew Berman's walkthrough of these builds, and his framing of the UI demos (Jev chooses from your component library, it does not write code): [[entities/press-and-coverage]].

## What these builds teach when advising

- **Prepare every candidate.** json-render offers components with concrete props, Needle the page's own passages, jev-canvas text spans of the user's words; Jev only picks, so nothing it returns is new prose or data.
- **Describe what the user sees, in text.** The canvases send a list of shapes, not an image; Vibe Check runs a vision model first because Jev is text-only ([[concepts/system-one]]).
- **Damp the UI; don't act on one reading.** Shapeshift changes a card only when a challenger wins twice in a row, keeps an offline classifier as default and fallback, and pins the model; x-scanner caches by post id and pins the model. jev-asks-until-sure's `confidence` thresholds are the author's own ([[concepts/confidence]]).
- **Gate before acting.** jev-canvas's `is_command` and Clippy's wake-when-stuck keep stray talk and normal use from triggering anything ([[ideas/patterns-emerging]] P38).
- **Say where the text goes.** Needle sends every captured passage off the machine; Vibe Check keeps keys in extension storage; json-render's Jev path is experimental and gateway-only. Tell users before shipping.

## Related

- [[ideas/patterns-interface]] — P14 and P34 with fit verdicts
- [[ideas/builds-browser-and-interface]] — browser agents (the page these rows came from)
- [[ideas/builds-computer-use]] — desktop, mobile and voice control
- [[ideas/builds-content-and-media]] — writing checks, post scoring, reading tools
- [[ideas/request-mechanics]] — x-scanner's token overhead per post
- [[entities/press-and-coverage]] — Matthew Berman's and Theo's tours of these demos

## Sources

Links are inline in each row; the raw captures (2026-09-21 to 2026-09-28) are listed in the frontmatter. The TypeSafe AdBlock names-only line rests on our vetting at source on 2026-09-24 (docs/sweep/2026-09-24-awesome-jev/part1.md).
