claude
Claude Code
Opus 4.8 with high effort
~/projects/my-val
› Alert us in Slack when a big deal closes
? for shortcuts

The deployment platform for internal tools

Val Town is how GTM and Ops teams instantly ship internal tools, integrations, and automations to live URLs.

Sign Up npx plugins add val-town/plugins🗋 Connect your AI agent; works with Claude, Codex, and Cursor
Components

If GitHub repos could run themselves

Write a val

TypeScript in the browser, deployed the moment you save it.

Get a live URL

Every val is an HTTP endpoint, cron job or email handler.

Share it

Fork anyone's val, or hand yours to the rest of the team.

Controls

Light headlines, heavy UI

Sign Up Sign up Disabled cron http
Sign Up Sign up ← hover — recommended, NOT captured (see note)
Search vals Search vals ← nav search field: default and focus
npx plugins add val-town/plugins🗋 npx plugins add val-town/plugins🗋 ← install field — note the heavier 2px border

The primary is #00bcff at 48px tall with a 12px radius — and its label is navy #052f4a, never white. The install field is singled out with an unusually heavy 2px #74d4ff border against every other control's 1px.

Capture note: 11 of Val Town's 16 stylesheets are cross-origin, and the 5 readable ones contain zero :hover and :focus rules. The hover and focus states shown above are therefore recommendations consistent with the palette, not captured values. DESIGN.md marks section 4 states and section 10 responsive as not captured for this reason.

Typography

An inverted hierarchy

Hero display h1 · Sprig Sans · 48/57.6 · 400 · -1.2pxThe deployment platform
Section h2 · Sprig Sans · 48/52.8 · 400 · -1.2pxIf GitHub repos could run
Nav link · IBM Plex Sans · 14/20 · 700Product · Blog · Docs
Primary button · Sprig Sans · 16 · 700Sign Up
Terminal / mono · iA Writer Mono · 14/20 · 600› Alert us in Slack

Headlines are light and large (400 at 48px) while nav and buttons are heavy (700 at 14–16px) — the inverse of the usual hierarchy, and much of why the page feels friendly. Specimens substitute Fraunces for the custom Sprig Sans and IBM Plex Mono for iA Writer Mono.

Palette

Warm, with one bright accent

Text
text-ink#000000
text-inverse#ffffff
text-muted#6a7282
link#00598a
on-accent#052f4a
Surfaces & borders
terminal-body#4b3d35
terminal-chrome#695e57
tint-blue#f0f9ff
tint-slate#f8fafc
border-slate#e2e8f0
border-blue#74d4ff
rule#d4d4d4
rule-2#e5e5e5
Accent
accent-blue#00bcff
coral#ff7250
Depth & motion

Depth is drawn, not rendered

8px small
12px large
1px #e2e8f0 control
2px #74d4ff install field
1px #d4d4d4 rule

There is no shadow scale — depth comes from the drawn illustration, the brown card against white, and borders that deliberately vary in weight. Motion is the signature: a single sway keyframe applied at five staggered durations (6s, 6.8s, 7.6s, 8.4s, 9.2s) across sixteen trees, so the loops never sync. The trees above are live — and stop entirely under prefers-reduced-motion, which the real site honours. Transition durations sit in the cross-origin sheets and are not captured.