Documentation

Brand

peryx is an open-source artifact service for multiple ecosystems. Its mark is traced from a diving peregrine.

The name

Two roots form the name and describe its character. Say it PERR-iks and write it in lowercase.

  • per· · the peregrine: the peregrine reaches over 380 km/h in a dive. Its Latin root, peregrinus, means "from every land".
  • ·yx · the pyx: a sealed, assayed vault. A pyx is a sealed box for safekeeping. During the Trial of the Pyx, officials lock sample coins away and assay them to prove authenticity. Artifact verification follows that model.

What peryx is

peryx is MIT-licensed and self-hosted. One binary serves every configured role. Configuration activates only the selected ecosystem owners and availability mode; inactive implementations add no runtime work.

Voice & taglines

Use concise, technical language. State behavior directly. Controls name the action they perform.

RegisterLine
LeadArtifact storage across ecosystems.
SubCache upstream artifacts and host private artifacts.
DevOne binary with protocol behavior for each ecosystem.
SecurityVerify artifact digests before storage and service.

Avoid enterprise buzzwords, "revolutionary", exclamation marks, and jargon that a newcomer cannot decode.

The mark shows a peregrine head-on in a full stoop with raised wings. We traced a photograph, mirrored it for symmetry, and reduced it to one gradient silhouette.

gradient · dark

gradient · light

the pyx seal

Use the bare falcon as the standard mark. Inside the hexagonal pyx, it becomes the app icon and verified-artifact badge. The enclosure survives OS icon masks that clip the bare mark.

Clear space & minimum size

Keep clear space of half the mark's height on all sides. Minimum size 16 px, where it still reads as the falcon.

Logo expressions

The shipped forms use one path and gradient. The interactive brand book, with copy-to-clipboard swatches and the live ecosystem palette, is at the brand book.

Wordmark lockups

peryx horizontal lockup
peryx stacked lockup

Use lowercase, weight 800, and -2% tracking. Use the gradient at display sizes and solid --text in body text and navigation. Keep the wordmark outside the pyx.

Sizes, single-colour & seal

app icon · seal
avatar · mark
32px
16px
mono

Motion

The mark uses one motion, the stoop. It folds in from above, accelerates, emits speed streaks, and settles in about 0.7 s. Click to replay. Keep the seal static.

<span class="brand-stoop-hint">click to replay</span>
  <span class="brand-loader-cap">loading · the stoop, looped</span>
</div>
<div>
  <div class="brand-progress-row"><span>mirror sync</span><span>determinate</span></div>
  <div class="brand-prog brand-prog-det"><span></span></div>
</div>
<div>
  <div class="brand-progress-row"><span>indexing</span><span>indeterminate</span></div>
  <div class="brand-prog brand-prog-indet"><span></span></div>
</div>

Animate transform and opacity. With prefers-reduced-motion, paint the mark in its settled position, hold the loop, and show progress-bar values without animation.

Colour

One bold element, the ember-to-amber gradient, over neutral graphite. The signature gradient is linear-gradient(115deg, #f74c00, #ffb600), the same direction on every mark.

TokenHexRGB
--brand-a#f74c00247 76 0
--brand-b#ffb600255 182 0
--accent#d94400 / #ff8a3d217 68 0 / 255 138 61
--accent-strong#b23800178 56 0

Light and dark share one palette: ink #1c2026 on paper #ffffff, mist #9aa4b0 on night #12151a.

Semantic colours signal state. Keep the gradient for brand elements, and pair each colour with another signal.

StateHex
Faster / OK#0ca30c
Warn#d98a00
Slow#ec835a
Critical#d03b3b

Ecosystems

Use a coloured device for each ecosystem and keep it off the mark. Use the ecosystem's brand colour so owner identities remain distinct from the peryx gradient. A green dot marks owners compiled into peryx.

Supported2

OCIDocker #2496ED
PyPIPython #3775A9

Languages & build17

npmNode #CB3837
MavenJava #C71A36
GradleJVM #02B9DF
GoModules #00ADD8
NativeCompiled packages #CE422B
NuGet.NET #004880
RubyGemsRuby #CC342D
ComposerPHP #777BB4
CocoaPodsObjC #E63E52
SwiftSwiftPM #F05138
ConanC/C++ #6699CB
CRANR #276DC3
CondaDS #44A833
PubDart #0175C2
Hugging FaceML #FFD21E
SBTScala #DC322F
IvyAnt #B36D43

Containers & charts1

HelmK8s #0F1689

OS packages4

DebianAPT #A80030
RPMYUM #CC0000
AlpineAPK #0D597F
Opkgembedded #8A8A8A

Infra & config4

Terraformmodules #7B42BC
Vagrantboxes #1868F2
Chefcookbooks #F09820
Puppetmodules #FFAE1A

Source & generic4

Git LFSlarge files #F05032
VCSrepos #6E5494
Bowerweb #EF5734
Genericany blob #6D6455

Typography

System stacks: a mono for labels, data, and the CLI the tool lives in, and a sans for UI and prose. No web fonts. The sans is system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; the mono is ui-monospace, "SF Mono", Menlo, Consolas, monospace.

Display / wordmark: sans 800, -2% trackingperyx
Heading: sans 700Cache and host artifacts across ecosystems.
Body: sans 400A virtual index composes cached and hosted resources under one route.
Mono: labels, code, CLI$ peryx config check --config peryx.toml # valid

In product

Buttons, badges, and status use the gradient and neutral palette.

Buttons
Badges & status
Verified Healthy cached overridden
Ecosystem tags
OCI npm Go Native
Progress

In the wild

peryx DocsEcosystemsPricing Get started
website header
peryxverified
app icon · social avatar · README badge

Startup banner

The service prints the startup logo at boot. Choose one of two terminal variants at runtime; suppress both for non-TTY output and CI.

Modern terminals: truecolor and Unicode blocks


   the artifact vault · v0.1.0

proxy upstream.example hosted 2,481 resources · 6.2 GB virtual /cache, /hosted ready in 0.42s on :8080

Old terminals: ASCII, 16-colour, or mono


  the artifact vault   v0.1.0
  ------------------------------------
  -> proxy    upstream.example
  -> hosted   2481 resources, 6.2 GB
  -> virtual  /cache, /hosted
  [ok] ready in 0.42s on :8080

Pick at runtime: truecolor plus UTF-8 selects the modern build; an older TERM, NO_COLOR, or a non-TTY pipe drops to the ASCII build in the terminal's own foreground.

Accessibility

The system targets WCAG 2.1 AA. Its requirements cover contrast, focus, motion, and language.

Surface (measured)Contrast
Body text · light9.9:1
Body text · dark9.9:1
Headings · both15:1
Secondary labels≥ 5:1
Accent / links · light4.7:1

Each control shows a visible focus ring, and interactive demos support Tab + Enter. prefers-reduced-motion stops the dive, loop, and progress bars. Ecosystem indicators pair a dot with a name; status indicators pair an icon with a word. Use a 16 px minimum for the mark and body text, and 32 px for the seal. Write in active voice with familiar terms.

Usage

Apply these examples to keep the identity consistent.

Gradient mark on a clean, contrasting ground.
× Gradient on a busy or low-contrast field.
Pyx seal for app tiles, badges, anything masked.
× Do not rotate, skew, or recolour the mark.
On this page