Design system
The visual system for velofy: type, structure, components, and motion.
Palette
Typography
Display
Page title
Article title
Section title
Card title
Lead
Body
Small
Eyebrow
$ wb ls
id status title @by
2 claimed:devin design-system @codex
Structure
- Content width
- 1200px
- Reading width
- 720px
- Desktop gap
- 24px
- Mobile gutter
- 20px
- Breakpoints
- 720px, 1120px
- Spacing
- 4, 8, 12, 16, 24, 32, 48, 64, 96, 128px
Navigation and actions
Cards and rows
kestrel
An interactive coding CLI in one static Rust binary. Drives the agent CLIs already on your machine or talks straight to an API key, with six harness packs detected from the repository and a multi-agent fan-out judged by a panel.
Numera
One accounting agent operating QuickBooks, Xero, NetSuite, Intacct, Sage and Dynamics 365 through their own APIs. Every write is proposed before it posts, read back after it lands, and recorded in a hash-chained audit ledger. Zoho Books and Tally next.
heyIAS
Bilingual, adaptive preparation for the UPSC exam. Mains answers evaluated against published rubrics in minutes, a revision queue grown from your own errors, and a rank band whose accuracy is published every cycle.
summit.js
An agent-native JavaScript framework. Behaviour lives in HTML attributes on a fine-grained signal engine, expressions run through an interpreter rather than new Function, so it works under a strict CSP with no build step. About 16KB gzipped.
experentia
Design taste as evidence an agent can act on: rules with the shipped examples that justify them, machine-readable taste profiles, and verified reference templates.
Supporter
- Named in the README of every repo you choose
- Named here
Three markets, one thesis
How velofy picks what to build: decompose a market to its irreducible truths, derive the product from those truths alone, and publish the derivation.
The research lab of taste and first principles
Published the derivation itself, the verified agent loop, and taste as a constraint. Numera moves from scoped to in build.
<a class="card" href="/kestrel/">
<p class="meta">Coding CLI · $99 once</p>
<div class="card__body"><h3 class="card-title">kestrel</h3>
<p>description</p></div>
<span class="card__links" aria-hidden="true"><span class="icon">↗</span></span>
</a>
<article class="card">
<p class="meta"><span>01</span><span>TypeScript</span><span>Velofy</span></p>
<div class="card__body"><h3 class="card-title">summit.js</h3>
<p>description</p></div>
<div class="card__links">
<a class="link" href="https://github.com/velofy/summitjs">Repository <span class="icon" aria-hidden="true">↗</span></a>
<a class="link" href="https://velofy.co/summitjs/">velofy.co/summitjs <span class="icon" aria-hidden="true">↗</span></a>
</div>
</article>
Archived catalogue (July 2026)
velofy open source galaxy — Applied AI and harness engineering. 19 public repositories by anishfyi.
kestrel
kestrel-cli, a possessions harness by anishfyi. Fan a task across Claude Code, Kimi CLI & Cursor agent (grok, composer), judge the diffs, and route every commit/PR/merge through ak.
BLOKD
No-root Android ad and tracker blocker. Local DNS filtering VPN, blocks ad domains across every app.
aperture-vpn
Free OpenVPN-based Android VPN: 100+ free profiles, best-server auto-connect, AdGuard DNS. Black and white.
trove
A Claude Code skill that builds and maintains a personal, file-based semantic layer as you work, and reloads it every session.
terbium
A god-level algorithmic multi-file parser (PDF/PPTX/XLSX/CSV) that scores its own confidence and only reaches for AI when it is genuinely stuck.
classy-fonts
A cabinet of 324 free typefaces, a live two-tab specimen gallery, split by licence. Gathered with curl_reap.
curl_reap
Reap the web: browser-grade TLS impersonation, self-healing selectors, and a concurrent crawl engine in one library.
vaulty
Vaulty - transparent WIP screen lock for macOS. Password to unlock. Terminals stay live.
querion
A strictly read-only, natural-language data analyst that plugs into any platform and runs on the Claude Code CLI. Connect Postgres, add your API docs, ask in plain English. Pairs with Trove for an auto-built semantic layer.
backend-almanac
The Backend Almanac: an Alpine.js retrospective comparing 43 backend frameworks (setup, deploy, speed, Postgres) with 4 deep migration guides.
coupon-management-api
RESTful API to manage and apply different types of discount coupons.
github-repository-lister
A React-based tool that fetches and displays all repositories and their details for any GitHub user via the public GitHub API.
caller-id-api
A REST API for a mobile app that allows users to identify callers and detect spam numbers, similar to popular caller ID applications.
Recorded repository details
Factual metadata recorded from the galaxy's data layer, preserved as static text.
| Repository | Language | Pushed | Stars | Recorded description |
|---|---|---|---|---|
| kestrel | Shell | 2026-07-22 | 0 | Fan one task across Claude Code, Kimi and Cursor, judge the diffs, adopt the best. |
| BLOKD | Kotlin | 2026-07-22 | 1 | No-root Android ad and tracker blocker. Local DNS filtering VPN, blocks ad domains across every app. |
| aperture-vpn | Kotlin | 2026-07-22 | 0 | Free OpenVPN-based Android VPN: 100+ free profiles, best-server auto-connect, AdGuard DNS. Black and white. |
| glep | Rust | 2026-07-21 | 1 | better version of grep and glob! |
| trove | Rust | 2026-07-21 | 1 | A Claude Code skill that builds a personal, file-based semantic layer as you work. |
| agamemnon | Swift | 2026-07-20 | 0 | live token burn across kimi, cursor cli, and claude code. |
| terbium | Python | 2026-07-18 | 1 | A multi-file parser (PDF, PPTX, XLSX, CSV) that scores its own confidence and only reaches for AI when stuck. |
| pawse | JavaScript | 2026-07-18 | 0 | The pomeranian that makes you take breaks. |
| classy-fonts | Python | 2026-07-18 | 0 | A cabinet of 324 free typefaces with a live two-tab specimen gallery. |
| curl_reap | Python | 2026-07-18 | 2 | Reap the web: browser-grade TLS impersonation, self-healing selectors, a concurrent crawl engine. |
| anishfyi | Config | 2026-07-18 | 0 | The profile behind the studio. |
| vaulty | Swift | 2026-07-16 | 0 | Vaulty - transparent WIP screen lock for macOS. Password to unlock. Terminals stay live. |
| homebrew-tap | Ruby | 2026-07-07 | 0 | homebrew tap for apps by anishfyi |
| querion | Python | 2026-06-16 | 1 | A strictly read-only, natural-language data analyst that runs on the Claude Code CLI. |
| backend-almanac | JavaScript | 2026-06-13 | 0 | An Alpine.js retrospective comparing 43 backend frameworks, with 4 migration guides. |
| coupon-management-api | Python | 2025-06-01 | 0 | RESTful API to manage and apply different types of discount coupons. |
| github-repository-lister | JavaScript | 2025-05-10 | 0 | A React-based tool that fetches and displays all repositories and their details for any GitHub user via the public GitHub API. |
| qr-code | TypeScript | 2025-05-06 | 0 | QR Code Generator built with React, TypeScript, and Vite |
| caller-id-api | Python | 2025-04-06 | 0 | A REST API for a mobile app that allows users to identify callers and detect spam numbers, similar to popular caller ID applications. |
Instrumentation
Fieldwork v2's instrument layer: telemetry rails, panel corners, mono facts, and the loop scope. Static specimens — the live instrument runs on the home page.
- Ships as
- one static binary
- Written in
- Rust, no runtime
propose → the agent renders exactly what it intends to do,
in a form a human or machine can inspect
confirm → an accountable party approves THIS proposal,
not a category of proposals
read back → the system re-fetches what actually landed
and diffs it against the promise
audit → all four moments land in a tamper-evident record
$99
- The binary for macOS arm64 and x64, Windows x64, and Linux x64. No runtime to install, no bash required.
- Every future release, through
kestrel update. - All six harness packs, and the design assets with summit.js inside.
- Multi-agent fan-out, the ultra judge court, and the commit desk.
- A personal download link, issued on the call.
- No subscription, no seats, no telemetry, no account to create.
The call is the checkout. Thirty minutes with the person who built it. Watch it run on a repository of your choosing, ask anything, and leave with your download link.
Status: v1 in build. Buy now and you get every release from the first, at this price.
<figure class="proof instrument" data-scope>
<div class="instrument__stage">
<svg class="proof__art" …>…</svg>
<canvas class="instrument__canvas" width="360" height="360" aria-hidden="true" hidden></canvas>
</div>
<p class="telemetry instrument__readout" aria-hidden="true">
T+ [data-demo-time] · STEP [data-demo-step] · CYCLE [data-demo-cycle]
</p>
<figcaption class="proof__caption">Propose, confirm, read back, audit.</figcaption>
<div class="instrument__controls">
<button class="button button--secondary instrument__control" type="button" aria-pressed="false" hidden>Pause loop</button>
</div>
</figure>
// scope.js adds .instrument--ready after first draw + handlers;
// it hides the SVG trace and runs the scanline, traces, node pulse,
// traveling dot and the three readouts at ≤30fps.
Motion and input
v2 motion rules: one kinetic H1 per page, one reveal per section header, ±4px magnets on primary buttons, directional nav underline. Everything below degrades to the static source state.
Intelligence,
with evidence.
Intelligence,
with evidence.
Without JS the same words render directly; the wrapped spans document the runtime structure.
Specimen header
480ms arrival from translateY(12px), opacity 0.75. Below-fold targets only; keyboard and fragment jumps stay immediate.
Specimen header
Identical source state; never hidden while waiting.
±4px on the inner body only; the border, hit area and focus ring never move. Keyboard and touch get no translation.
Same markup, no motion — identical without JS or on coarse pointers.
Hover on fine pointers animates the underline over 180ms; focus draws it immediately; the current page keeps its border permanently.
The scope's Pause loop button exists only after its action works; reduced motion or a draw failure hides it and restores the static SVG. Pausing leaves the last complete frame; Space/Enter resumes.
Contract
Every new token, class and attribute in v2 — the exhaustive list. Anything not listed here is uncontracted.
- --scope-size
- 360px
- --scope-cycle
- 8000ms
- --scope-step
- 2000ms
- --scope-pulse
- 320ms
- --scope-fps
- 30
- --word-stagger
- 36ms
- --line-stagger
- 96ms
- --reveal-distance
- 12px
- --magnet-range
- 4px
- --instrument-mark
- 8px
- --entrance / --quick / --standard / --ease
- 480ms / 100ms / 180ms / cubic-bezier(0.2,0,0,1)
| Class / attribute | Allowed host | No-JS / fallback |
|---|---|---|
.instrumented | scoped body | suppresses v1 whole-header entrance even without JS |
.telemetry · .telemetry__item · .datum | mono rail; label/value; tabular value | decoration is aria-hidden; factual metadata stays accessible |
.section--instrument | existing .section | static registration corner, no JS needed |
.panel | .card .facts .code-panel .callout .price | two corner marks; layout unchanged |
.facts--instrument | existing .facts | Plex Mono values; static |
.kinetic | H1 (not 404), one system paragraph | visible before and after enhancement |
.kinetic__word · .kinetic__line | JS-created spans | runtime-only; never authored on real headings |
.reveal | existing .section__header, assigned specimens | visible; single arrival only |
.magnet · .magnet__body | existing .button anchor + inner span | no translation without fine pointer + motion |
.nav--instrument | existing .nav | CSS underline; no JS |
.instrument · .instrument__head · .instrument__stage · .instrument__ticks · .instrument__trace · .instrument__readout · .instrument__controls | home .proof figure + system specimen | static SVG and readouts always render |
.instrument__canvas · .instrument__control | home scope only | hidden until first draw; hidden under reduced motion/print |
.instrument--ready | home figure, runtime only | never authored; hides SVG trace, activates canvas |
data-scope · data-demo-time · data-demo-step · data-demo-cycle | home figure + readout spans | frozen 00:00 / 01/04 / 0000 without JS |
data-static | system comparison specimens | excludes descendants from all enhancement |
instrument.js ≤ 6500B · scope.js ≤ 5500B · total authored JS < 15,000B
setup: check APIs + reduced motion → attach handlers → first hidden draw →
add .instrument--ready → unhide canvas + Pause loop
run: rAF ≤30fps, only while visible + tab visible + not paused
pause: real button, aria-pressed; Space/Enter resumes; focus never trapped
fail: remove ready, restore SVG trace + citron node, reset readouts,
hide canvas + control, move focus to main if held
leave: pagehide/print/reduced-motion switch → teardown, no rAF leaks
Evidence in Formation
The current direction: a typographic cover and folded verification study, paper/ink chapters, open product entries and an editorial research index. Contract: SPEC3_DELTAS.md; research basis: DIRECTION3.md.
Ink ground #101513, paper #F3F0E8, vermilion signal #FF6A3D. Display is Bricolage Grotesque (OFL, local variable WOFF2, 110,280 bytes, latin, weights 200–800); body IBM Plex Sans; metadata IBM Plex Mono. Everything on this page below the archive uses v3 tokens --v3-*.
V3 components
New vocabulary on live hosts. Archive specimens above remain in their original v1/v2 styling.
- Propose
- Confirm
- Read back
- Audit
V3 motion and fallbacks
One coordinated scene only: the home fold study runs once for 3.6 seconds (propose 800ms, confirm 800ms with a 500ms gate hold, read-back 1000ms, audit 1000ms) then stops. Elsewhere: 100ms color feedback, 220ms ≤4px arrow/graphic settles, one 520ms chapter-header arrival.
JavaScript off, canvas denied, or reduced motion: the final static SVG is the complete design and playback controls are hidden. The button cycles Replay → Pause → Resume → Replay.