1. Sign up
Go to app.livry.dev and enter your work email. Sign-in is passwordless — Livry emails you a code, and there is no password to choose. Signing up creates your Team and makes you its Owner.2. Create a sandbox Environment
Signup does not create one. The welcome wizard asks for the first, and you should take the default: sandbox. The slug you choose becomes a URL segment, so/acme/sandbox/… is where you will be working. You are granted Admin on any Environment you create.
The Free plan allows exactly one sandbox Environment and no staging or production. See Plans and limits.
3. Create a Theme
Themes → New theme. Give it a slug and a display name, and pick your integration — the framework you build with and the library you style with.4. Add some tokens
On the Theme’s Tokens tab, add a group and a couple of tokens. The minimum worth doing:
The second one is an alias — it follows the first, and will follow it in every brand too. That is usually what you want: override one colour and everything derived from it moves.
You can also import a file instead: DTCG, Tokens Studio, Figma Variables and Style Dictionary all work. See Importing tokens.
5. Publish the Theme
Publish on the Tokens tab. This freezes your draft as version 1 and builds the files. Nothing is served until you do this. A Theme with a draft and no published version has a serving URL that answers404.
6. Add a Variant
Variants → New variant. Call itnorthwind.
On its Overrides tab, override one token:
Leave
color.brand.hover alone — it is an alias, so it follows.
Then Publish the Variant.
A Variant can be published once per Theme version. If you need to publish it again, publish the Theme first. See Versioning.
7. Render it
The Theme’s Integration tab shows your real URLs. They look like this:8. Switch brands
var() references — so the browser recomputes them when the stylesheet changes.
Server-rendered? Pick the Variant per tenant (by hostname, say) and write the <link> with it.
Where to go next
Your framework
Tailwind, Chakra UI, or a build-time token pipeline instead of raw
var().Lock it down
Signed URLs, origin allowlists and IP ranges, before production.
Pin a version
Why you probably want
/{n}/ rather than /latest/ in production.Automate it
Everything above, through the REST API.