Brand

Digital Norse

Logo, color, type, voice. How Berserk looks and sounds.

Colors

A single accent does the heavy lifting. Everything else is the dark canvas, white text, and quiet supporting greys. Restraint is the point — the brand is loud enough in name; the surface should be calm.

#41BF8D

Berserk Green

Primary mark. The single accent color across the surface.

#0A0A0A

Background

Page canvas. Near-black, never pure black.

#FAFAFA

Foreground

Body text and titles on dark.

#A1A1AA

Muted

Supporting copy, captions, secondary navigation.

#27272A

Border

Card outlines, dividers, rules.

#1A665A

Wave Teal

Resting ocean glyphs. Appears in the hero rune-field.

Typography

Three typefaces, each with a clear job. The wordmark stands alone; everything else stays out of its way.

Wordmark — Parkinsans Regular

BERSERK

Uppercase, tracked +0.15em. Used for the wordmark and any running text that wants the lockup voice.

UI & body — Geist

We finally fixed observability.

System sans for everything that isn't the wordmark or code.

Code & data — Geist Mono

union otel_logs, otel_traces | trace-find { search "500" }

KQL, command output, anything where alignment matters. Colours match the product editor.

Text is our medium

LLMs have pulled the centre of gravity back to the terminal: agents read and write text, the most expressive interface we have is a prompt, and ops work happens in the same shell it did thirty years ago. Berserk is built for that world, and the brand says so before you read a word of copy.

Old Norse wasn't only the language of raiders; it was the language of skalds, navigators, and shipwrights — people who paid careful attention to the world and wrote it down. That's the part we kept, applied to a very new world: telemetry.

Use Elder Futhark sparingly, and only to stand in for encoded or otherwise unreadable data — the role The Matrix gave katakana.

ᚠᚢᚦᚨᚱᚲᚷᚹᚺᚾᛁᛃᛇᛈᛉᛊᛏᛒᛖᛗᛚᛜᛞᛟ

Motion is dithered and slightly low-fi on purpose. It evokes a CRT, an old serial console, the moment a phosphor cell decays — the texture that lets the surface stay dark and quiet without feeling sterile.

The colour fringing across the brand surface is chromatic aberration— the same effect a real phosphor display produces when red, green, and blue beams don't perfectly converge. We use it to wake CRT nostalgia on purpose.

Viking on Wild Boar

Always purposeful

Animation reveals a thing. We don't animate to add motion; we animate to say something.

Low-frequency, high-precision

Ten frames per second where character matters, sixty where field motion does. Sparse, accurate, never frenetic.

Dithered, not smoothed

We accept the pixel. Anti-aliasing belongs in product UI; in the brand surface, the rough edge is the texture.

The world emerges, the world recedes

Things fade in over 400ms, hold 3s, fade out over 1s. Show, hold, dissolve — that's the heartbeat.

Voice & Tone

Berserk is loud as a word; the brand is mostly the opposite — precise, friendly, a little deadpan.

01

Disarming by default, sharp when it earns it

A wink, not a war chant.

Do

We named it Berserk because it scans hard and asks nothing of you up front. Throw all the data you want at it.

Don't

Unleash the fury. Crush the competition. Dominate observability.

02

Plain, not jargony

The audience is engineers. They can tell when a sentence is hiding behind itself.

Do

Logs, traces, and metrics on one engine, stored on object storage, queried in KQL.

Don't

Hyper-converged, AI-native, next-generation telemetry mesh leveraging the modern data stack.

03

Curious first, combative rarely

Most of what we write is an invitation to look. We can land a sharper line when the story calls for it — but it stays one line, never a paragraph, and never as the default voice.

Do

Ask one question across logs and spans, get the answer, move on.

Don't

Smash the silos. Destroy the dashboard. War on telemetry sprawl.

Assets

Use these directly. If you need a variant we don't list, email hello@bzrk.dev.