Skip to main content
ProductBrand

Brand every course, in every language, automatically.

Apply your colours, logo, fonts and voice per tenant through the Themes API, and translate courses into every language you serve through the Translations API. No rebuild, and no visible trace of us.

academy.wheeli.fr
wheeliAcadémie 🌐 Français EnglishFrançais ✓Español日本語한국어عربي Thème · Wheeli CM
Bonjour, Camille · 850 pts
Pour vousTousAssignés 3Recommandés
À terminer · 27.0415 min Vélo cargo Wheeli
Bienvenue chez Wheeli : notre mission et nos riders Cours · quiz · 15 min
Continuer →
Session à venir Lancement Wheeli Green · Q&R Demain · 14h · Zoom
À découvrir L'appli rider en 4 écransCours · 4 min Coaching d'équipeCours · 5 min Vendre en équipeCours · 8 min
Accueillir un rider12 min · quiz
Sécurité à vélo9 min · quiz
Tarifs & zones7 min
what you ship
<main className="wheeli-academy">  // your app, your brand
  <coassemble-catalog locale="fr" theme="#0B7345" />
  <coassemble-player course="welcome" />
</main>
renders reports back
webhook · what you get back
theme.applied      "wheeli" · #0B7345
translation.ready  "welcome" · fr, es, ja
200 OK · per-tenant, no rebuild
05 · your academy, your brand · built with our components · any language
01Ways to brand

Set it once. Or set it per tenant.

Brand by hand in the studio, or drive it per tenant through the API, colours, type, languages and voice.

Brand kit · in the studio

Your look, no code

Set colours, logo and fonts once in the studio and every course comes out on-brand.

colourslogofonts
Themes API · per tenant

A theme for every customer

Each tenant gets its own theme, applied automatically and controlled programmatically.

PATCH /themesper tenantinstant
Translations API

Every language you serve

Translate courses at scale, copy, quizzes and narration, and let learners switch in the player.

44 languagesnarratedin-player switch
NewBrand voice · for AI

Every generation on-message

Set tone and reading level once and everything AI writes, courses, screens, polish, sounds like you.

tonereading levelAI output
02Your brand

Your brand, applied everywhere.

From the brand kit to per-tenant white-labeling, each layer settable by hand in the studio, or by code over the API.

01 · Brand kit

One home for your whole identity.

Logos, themes, your asset library and your brand voice, managed in one place, so every course starts from the same identity instead of rebuilding it each time.brand kit ↗

APIGET /v1/brand
Workspace · Brand kit
LogosPrimary · Secondary · Icon
ThemesDriftwood · 2 presets
Asset library148 assets
Brand voiceSET
SVG · PNG · JPG · applies across every course
02 · Themes

Restyle a whole course in one click.

A theme sets accent, background, heading colours, gradient, fonts and logo. Apply a preset instantly, or save a custom theme and reuse it on any course, no screen-by-screen styling.themes ↗

APIPATCH /v1/themes/driftwood {"accent":"#6B4A2B"}
Brand kit · Create theme
ACCENT
BACKGROUND
HEADINGS
GRADIENT
Emphasize start & finish screens
appears alongside presets in the editorSave theme
03 · Custom fonts

Your typography, to the letter.

Pick headings and body from the Google Fonts list, or upload your own files, courses match your product pixel for pixel.custom fonts ↗

API{"fonts":{"headings":"Poppins","body":"driftwood.woff2"}}
Theme · Fonts
Headings & labelsPoppins · Google Fonts
Bodydriftwood-sans.woff2 · uploaded
The golden ratio
One part coffee, eight parts water.
04 · Asset library

Every image, tagged and ready.

Everything you upload, or pull from Unsplash and GIPHY, lands in one library with tags and default alt text, so the right on-brand image is always one search away.asset library ↗

APIPOST /v1/assets {"tags":["bar"],"alt":"…"}
Brand kit · Asset library
barbrewcold-brewteam
default alt text saved once · reused everywhere
05 · Brand voice

Teach the AI to sound like you.

Describe your voice, set trait sliders, perspective and vocabulary, and paste examples that sound like you, every AI-written course follows it, and you choose per generation whether it applies.brand voice ↗

API{"voice":{"perspective":"you","traits":{"friendly":70}}}
Brand kit · Brand voice
FriendlyProfessional
CasualFormal
PlayfulSerious
PerspectiveSecond person · “you”
Never say“staff” · “e-learning”
applied per generation, on by default, off when you choose
06 · Image style

Even the AI images stay on-brand.

Set a house style for generated imagery, photo, cinematic, drawing, vector or painting, and rule out what should never appear.generated images ↗

API{"imageStyle":"vector","avoid":["text in images"]}
Brand voice · Generated images
PhotoCinematicVectorDrawingPainting
VECTOR · BRAND PALETTE
avoid: text in images · children · + your own exclusions
07 · Languages

44 languages. Zero duplicate courses.

Each translation is a child of the original, localise text and images, narrate every language, and the player loads the right one from the learner’s browser automatically.languages ↗

APIPOST /v1/translations ["fr","ja"] · narrated
Cold Brew 101 · Languages
EnglishDEFAULT
Français✓ narrated
日本語generating…
العربية✓ RTL
loads by browser language · falls back to your default
08 · White-label

A spectrum, up to “entirely yours”.

Brand your courses; then remove the Coassemble badge; then, with Embed, white-label the whole experience, your interface, your domain, no trace of us.white-labeling ↗

API{"badge":false}
academy.driftwood.coffee
Your logo & theme on courses
Coassemble badge
Your interface & domain · Embed
learners never see a Coassemble URL
09 · Per-tenant branding

Every customer sees only themselves.

Serving multiple tenants? Theme and brand each one separately through the API, same course engine, a different identity for every customer.themes api ↗

APIPATCH /v1/themes/{tenant}
Your platform · two tenants, one engine
wheeli
Bienvenue à bord
larkspur
Welcome aboard
scoped by client identifier · content & learners stay separate
Live demo

One course. Three brands. Two clicks.

The exact same course, re-themed per tenant and re-rendered per locale through the API, click a tenant or a language and watch it swap. No rebuild, no duplicate course.

per-tenant theming · via the Themes & Translations APIs
Tenant Driftwood Wheeli Larkspur Locale EN FR

Make it unmistakably yours.

Theme a course to your brand and translate it in a click. Try it in a sandbox.