lah-beh-LEE-toh · /la.beˈli.to/ · Spanish for “little label”
brand guidelines · v1.0
POST a label. Peel it off.
The visual system for a small, self-hosted print service that turns a YAML file and an HTTP request into a real label — in under a second.
self-hostedcontainerizedBrother QLFastAPI
01 / brand story
Homelab-grade tooling that respects your time.
labelito is for the tinkerer who runs their own stack. It does one thing — print labels on a Brother QL — and does it cleanly: declarative templates, a live preview, a tidy HTTP API. No cloud account, no app store, no lock-in. The brand should feel the same way it works: precise, unfussy, and quietly friendly.
// one line
The elevator pitch
"Self-hosted, declarative label printing for Brother QL printers — a YAML template and one HTTP call away from a printed label."
// who it's for
The audience
Homelabbers, Home Assistant users, makers, and small teams automating physical labels — freezer bags, cables, asset tags, shelves.
// the feeling
The vibe
A well-labeled workshop. Everything in its place, nothing precious. Confident but never corporate.
Declarative, not clicky
A label is data. Define it once, print it forever.
Fail closed, speak plainly
Safe defaults, honest errors, no phantom success.
Yours to run
On your hardware, your network, your terms.
Small on purpose
Does one thing well; refuses to sprawl.
02 / logo
The mark
A label that peels — a rounded sticker carrying code braces and a terminal cursor, with a green corner mid-peel. It reads as "print" + "code" in one glance. The wordmark is Inter, weight 800, all-lowercase.
labelito
primary lockup — on dark
labelito
on light
clearspace = ½ mark height on all sides
minimum size
24px digital min
favicon 32–48px
app / container icon
// don't
✗ rotate the mark
✗ recolor / desaturate
✗ stretch / distort
✗ low-contrast bg
assets / download
Grab the files
Ready-to-use logo files. SVGs have the wordmark outlined to paths, so they render correctly even without Inter installed. Each lockup ships in two inks — pick dark bg (light ink) or light bg (dark ink) for the background you're placing it on. PNGs are transparent.
Two brand hues pulled straight from the mark — a bright sticker blue and a peel green — over a cool slate neutral ramp. Blue leads; green is the accent that signals success and "done".
Two typefaces, clear jobs. Inter carries every interface and headline. JetBrains Mono carries anything that is code, data, or a machine talking — commands, tokens, hex, kickers, timestamps.
Aa
Inter
UI · headings · body · 400 / 500 / 700 / 800
The quick brown fox jumps over 13 lazy dogs.
Aa
JetBrains Mono
code · data · labels · 400 / 500 / 700
POST /print {"template":"freezer"}
DisplayInter 800 · 76px · -4% · 1.0
Heading 1Inter 800 · 44px · -3% · 1.08
Heading 2Inter 700 · 28px · 1.2
Body large — the readable lead paragraph.Inter 400 · 20px · 1.55
Body — default running text for descriptions and cards.Inter 400 · 15px · 1.6
labelito prints at 300 dpi in pure black-on-white, so its icons are bold, solid, single-weight glyphs — legible at 12 mm. They come from three bundled collections; no bespoke drawing. In the UI they sit on blue; on a label they render 1-bit.
Font Awesome
collection: fontawesome
solid / regular / brands
Material Symbols
collection: material
Apache 2.0
Octicons
collection: octicons
MIT
in the UI — solid, on blue
on a label — 1-bit black on white
✓ solid weight, high contrast✓ one icon per label, aligned✗ no thin outlines below 24px✗ no multi-color glyphs
06 / voice & tone
How labelito talks
Like a helpful maintainer in a good README: direct, concrete, a little dry. It assumes you're capable, skips the marketing, and always tells you what actually happened.
Plain
Short words, real nouns. "Print", not "initiate a print job".
Precise
Name the media, the endpoint, the code. Numbers over adjectives.
Honest
Say when something failed and why. Never fake success.
Warm
A dry aside is fine. Condescension never is.
✓ say this
"Printed on QL-810W in 0.4s."
"Loaded roll is 62mm continuous — this template needs 62×29 die-cut."
"Drop a .yaml in templates/ and hot-reload — no restart."
✗ not this
"Your print job has been submitted successfully!"
"Oops! Something went wrong. Please try again later."
The web UI is a calm control surface: pick a template, fill the fields, watch the live preview, print. The label itself is the real product — high-contrast, content-driven, dated automatically.
labelito · localhost:8765
Template
freezer-icon ▾
Title
Bolognese sauce
62mm continuous loaded · match
Print label
Live preview
Bolognese sauce
Frozen: 01/07/2026
Freezer
Chicken stock
best before 01/01/2027
Rack · A3
SW-CORE-02
Storage box 14
winter gear · attic
08 / code & cli
Code & CLI style
Code is a first-class brand surface. Terminals and snippets always use JetBrains Mono, a green $ prompt, blue strings, and a green → ✓ for results. Keep examples runnable and short.
terminal
$ curl -X POST localhost:8765/print \
-d '{"template":"freezer-icon",
"fields":{"title":"Bolognese"}}'
→ rendered + printed on QL-810W ✓ 0.4s