Two typefaces.
Clear roles.
Cortlet uses Inter for all primary text and Geist Mono for code, technical labels, metadata, and developer-facing details.
Primary typeface
Inter
The default voice.
Inter is used for headlines, body text, navigation, buttons, captions, documentation prose, and general interface copy.
Use Inter for all standard readable text.
Use heavier weights for large editorial headings.
Keep body text clean and comfortably spaced.
DISPLAY
WebSockets are stateful.
HEADING
Infrastructure that gets out of the way.
BODY
Cortlet keeps long-lived WebSocket connections outside your serverless application and delivers events through ordinary HTTP.
Technical typeface
Geist Mono
For technical context.
Geist Mono is used when content should feel technical, structured, or machine-readable.
Use it for code and terminal output.
Use it for technical labels and metadata.
Avoid using it for long-form body copy.
$ cortlet-ws connect wss://example.com/socket CONNECTED connection_id: ctx_615ec865 protocol: websocket status: 101 Switching Protocols
Hierarchy
Size does most
of the work.
Cortlet relies on scale, weight, spacing, and contrast rather than many different type styles.
Build without the bloat.
Designed for developers.
Cortlet keeps product copy readable, direct, and restrained.
CORTLET // BRAND // TYPE
cortlet-ws send wss://example.com "hello"
Usage
Keep it
disciplined.
Product
WebSockets without serverless friction.
Keep the hierarchy simple and let scale create separation.
Clear hierarchy
Use Inter with deliberate scale and weight changes.
The future of
WEBSOCKETS
but make it serverless
Too many styles
Avoid mixing unnecessary fonts, weights, italics, and decorative treatments.
Quick reference
Inter speaks.
Geist Mono codes.
Use Inter for all primary Cortlet text.
Use Geist Mono for code, technical labels, metadata, and terminal-style content.
Prefer scale and weight over decorative typography.
Keep large headlines tightly tracked and body copy comfortably readable.