Brand Guidelines · v1.0 For internal & partner use

The brand,
in writing.

Better products. Better people. Better tomorrow.

Ebenworks mark
13
Logo variants
22
Favicon files
14
Social assets
Things you can build

The mission.

Ebenworks is a company. In time, a group of companies — across industries, across continents — bound by one promise: every company we build exists to serve people the world stops short of seeing.

The unseen. The underserved. The marginalized. The merchant the bank can't see. The grandmother nobody calls. The kid the system has written off. We don't choose problems by market size — we choose them by who's left out of the picture. Whatever the next Ebenworks company is — software, hardware, services, hospitality, education, anything — the test is the same: who does this serve, and would they otherwise be invisible?

The brand is not a tone. It's a position.

What every Ebenworks company has in common

The mission is the constant. The industry is the variable. Every company we build, regardless of what it ships, has to honor these. If it doesn't, it doesn't belong in the group.

Trait 01

Serves people the system overlooks.

Not "consumers" in general. A specific population the world has stopped short of seeing. If you can't name them in a sentence — informal SA traders, Korean seniors living alone, the next group — the company doesn't belong in the group.

Trait 02

Built for someone, not extracted from a segment.

We don't talk in market-language. Not capturing, not monetizing, not TAM expansion. The work is service-shaped, not yield-shaped. We name the people the work is for, in a sentence.

Trait 03

The "better" is measurable.

"Making lives better" is not a slogan. It's a number, a shift, a thing you can point to. A SA merchant has a credit profile she didn't have. A Korean grandmother has fewer days of silence. Every new Ebenworks company defines its own measurable on day one.

Trait 04

Built where users already are.

Whatever the surface — a WhatsApp message, a voice call, a corner shop, a bus stop, a kitchen — meet people on what they already have. Don't ask them to come to us, in any form.

Trait 05

Honest about where we are.

Pre-pilot is pre-pilot. Year one is year one. We don't dress up the present. The credibility is in saying it plainly — to users, partners, regulators, investors.

Trait 06

No industry limitation.

Software today. Tomorrow could be hospitality, agriculture, education, hardware, retail, healthcare — anywhere the unseen are. The thread is the user, not the category. We are a software-shaped company today; what we resist is letting category become the headline.

Five rules. The discipline.

The principles below come from reading every line of copy already shipped on imali.ebstar.co and chingu-ai.ebstar.co and reverse-engineering what makes it sound like the same person wrote both. Now you have the rules. Apply them to anything new.

Plain over polished

  • 1.6 million SA merchants run real businesses the banks can't see.
  • The receipt they never got — and the credit profile they've always deserved.
  • One word is enough.

Plain over polished — what we don't say

  • Empowering underserved entrepreneurs through innovative fintech.
  • A revolutionary AI-powered platform for emerging markets.
  • Disrupting the elder-care space with cutting-edge voice tech.

Specific beats abstract

  • TLS 1.3 in transit. AES-256 at rest. HMAC-SHA256 on every inbound message.
  • Backend in Frankfurt (Render). Postgres on Neon. Storage on Cloudflare R2.
  • 700ms median response. On-device wake word. Zero audio sent to server before activation.

Specific beats abstract — what we don't say

  • Bank-grade security.
  • Powered by enterprise-grade cloud infrastructure.
  • Lightning-fast performance with industry-leading latency.

Local language is the brand

  • From the spaza on the corner to the kasi kitchen on a Saturday.
  • Stokvel management.
  • Gyeongsang, Jeolla, Chungcheong, Gangwon, Jeju — collecting corpus.

Local language is the brand — what we don't say

  • Small businesses across emerging markets.
  • Group savings schemes.
  • Regional language support included.

Honest about stage

  • Composite scenarios from pilot interviews. Named testimonials added as participants opt in.
  • No paid pilots yet. No certification stamps yet. No revenue yet.
  • Pilot live · Onboarding early merchants in Gauteng & the Western Cape.

Honest about stage — what we don't say

  • ★★★★★ "Imali changed our lives!" — Sarah, NYC
  • Trusted by thousands of merchants across South Africa.
  • Proven, production-ready platform.

Technical proof, not posturing

  • Voice = biometric. Separate consent. Full encryption. (PIPA Art 23)
  • Backend in Frankfurt under POPIA §72 standard contractual clauses.
  • K-anonymity ≥ 50 merchants on every aggregate query.

Technical proof — what we don't say

  • Powered by AWS. Trusted by enterprises.
  • Military-grade end-to-end encryption.
  • Privacy-first design.

Founder voice — first-person Ebenezer Tarubinga quotes, explicitly attributed — is a separate sourcing rule, not a writing rule. See §01.992 for who speaks when.

Write like a magazine,
not a SaaS landing page.

Every shipped Ebenworks product uses the same set of typographic and structural moves. They signal craft. They tell the reader: someone made this, line by line.

Convention 01

Section markers use § notation.

"§ 04 · Features." Not "Features." The marker is small and orange. It tells the reader they're in a structured document, not a sales funnel.

Convention 02

Photography is captioned Fig. 01.

Editorial captions, not stock-photo subtitles. "Fig. 03" sits next to a portrait. The implicit promise: this image earned its place.

Convention 03

Steps use 01 / 02 / 03, not bullets.

Numbered with periods, set in display type. Bullets are for grocery lists. Numbered steps with weight suggest a process worth following.

Convention 04

Composite content is labeled inline, with a sunset.

Anonymized merchants and seniors are disclosed as composites in the small print under the quote — not buried in the footer. Each composite carries a sunset target where the page lives, so it gets replaced with an opted-in attribution. See §01.99.

Convention 05

Numbers carry the trust load — with labels.

5M+ streams. 1.6M merchants. 700ms response. 60-second setup. ₩10,000/resident/mo. Specific numbers are how the brand earns trust. Each number is labeled by what it is — measured, target, or illustrative. See §01.98.

Convention 06

Tagline pieces stay in order.

"Better products. Better people. Better tomorrow." Order matters: the people are the reason for the products, and tomorrow is the consequence of both. Don't reorder. Don't drop the middle. Don't translate the chain itself — localize the sub-line beneath it.

The tagline, decoded

Better products. Better people. Better tomorrow.

Better products. The craft we ship — a WhatsApp business OS, a voice AI for seniors, what comes next.

Better people. The populations the products are built for. Not "humans in general." Specific people: SA's informal merchants, Korea's seniors living alone.

Better tomorrow. The systemic outcome. A SA spaza-shop owner has a credit profile she didn't have. A Korean grandmother has fewer days of silence. Measurable. Auditable. Not vague.

When you split the tagline for a smaller surface, lead with whichever clause serves the reader's current question. But never present it without the chain visible somewhere on the same page.

Yes-words. No-words.

Every brand has a list. Internalize this one. When you catch yourself reaching for the right column, stop and reach for the left.

Use freely

  • company · companies · group · build · ship · made
  • serve · for [specific named population]
  • [named country / region / language]: SA, Korea, Bulawayo, Seoul, isiZulu, Gyeongsang
  • 1.6M SA merchants · 2.13M Korean seniors alone · ₩10,000/resident/mo
  • pilot · pre-pilot · in talks · onboarding
  • POPIA Art 72 · PIPA Art 23 · AI Basic Act Art 31 · SARS TT03
  • "We don't have X yet."
  • the receipt they never got · friend · companion

Avoid

  • platform · solution · ecosystem · suite · offering
  • for everyone · for all · globally · at scale
  • emerging markets · the developing world
  • massive market opportunity · TAM expansion
  • regional · exotic · vernacular
  • production-ready · enterprise-grade · battle-tested
  • bank-grade · military-grade · best-in-class
  • innovative · disruptive · revolutionary · cutting-edge
  • "We're excited to announce…" · "We're working on…"
  • category as the headline

Use with care — a third tier

Not banned, but they need a noun nearby to earn their keep:

  • underserved — fine when paired with a number or named population in the same sentence; bare, it's a slogan.
  • innovative, disruptive — only when describing a specific mechanism, not the company.
  • the unseen / the marginalized — fits the manifesto register on essays, manifestos, founder talks; rarely fits an operational surface.
  • tech company — accurate today (the operating companies are software). What we avoid is letting the category become the headline — lead with who we serve, not what we ship.

Name in the user's language.

When a new Ebenworks company serves end-users directly, name it the way Imali and Chingu were named: in the language of the population it serves. For B2B brands, partner-facing entities, or holding-level work, name pragmatically — but keep the local-language pattern visible on the customer-facing surfaces.

Imali
isiZulu / isiNdebele · "money"
For SA merchantsWhatsApp business OS
Chingu
Korean · 친구 · "friend"
For Korean seniorsVoice AI companion
_____
Next product · ?
The next companyTo be named

The naming rules — for end-user companies

Pull from the language of the population the company serves. Tanzanian smallholder farmers? Swahili. Vietnamese gig workers? Vietnamese. Unhoused people in any city? Whatever language fits — the rule is the user, not the country.
One short word. Imali (5 letters), Chingu (6). Easy to type, easy to say in any accent.
No suffix in the wordmark. Just Imali, just Chingu. The product category is the subtitle, not the name.
Don't translate it back in the headline. Let the name carry weight; the first sentence is the explanation.
Run it past native speakers — including elders, including the population we'll serve. Check it doesn't carry the wrong register, the wrong class connotation, or an embarrassing meaning in any of the languages we operate in (English, Korean, isiZulu, isiXhosa, Afrikaans, Shona, Ndebele, Tagalog, Hindi, at minimum). "Not embarrassing" is a low bar; "the person we're serving would choose this word for themselves" is the bar.

For B2B / holding-level brands

Some brands in the group won't have a single end-user language — a B2B service for lenders, a partner-facing product, or holding-level operations. Name those pragmatically: clear, short, easy to say in English. Save the local-language pattern for the surfaces that face the people the company exists to serve.

Five identities. One person.

Ebenworks doesn't sit alone in the brand stack. There are five identities, and they do different jobs. Use the right one for the audience.

Identity What it is When to use
Imali Operating company — fintech for SA informal merchants. User-facing for SA merchants, partners, regulators, lenders specifically about Imali.
Chingu Operating company — voice AI care for Korean seniors. User-facing for Korean seniors, families, welfare workers, regulators specifically about Chingu.
Ebenworks Holding identity — group of operating companies. Cross-company comms, group hiring, group fundraising, corporate paperwork, engineering org.
Ebstar Founder personal brand — music, writing, public-facing presence. Personal essays, music, op-eds where the founder speaks as a person, not as the holding co.
Ebenezer Tarubinga The founder, named. Bylined quotes, formal credit, regulatory or legal contexts.

Domains today live under *.ebstar.co because the personal brand carried the early audience. Operating companies will move to standalone domains as they mature; the move is a brand event, not a redirect.

Same rules. Different mix.

The five rules apply everywhere; the mix changes by surface. Lead with the priorities listed. Avoid the items in the third column.

Surface Voice priorities What to avoid
Hero / landingPlain + specific + local. One declarative sentence, then a 2-line frame.Manifesto register. Stack details.
Feature cardPlain + specific. One sentence + one number.Adjective stacking. Hype words.
PricingSpecific. Concrete numbers, concrete cancellation path.Marketing tier-language ("most popular").
Privacy / trustTechnical proof. Legal articles named.Slogans. Reassurance without a citation.
Push / SMS / WhatsApp UIPlain + local. Vocatives where they fit. Speak as the product, not as the brand.Marketing CTAs. Long sentences.
Support replyPlain. Acknowledge → answer → next step. First name if known.Ticket-system stiffness. "We apologize for any inconvenience."
Sales / partner deckSpecific + technical proof. Legal context. The concrete offer.Generic TAM slides. "Massive opportunity."
Investor pitchManifesto + specific. The why up front, then the measurable.Bare manifesto. Bare numbers.
Social (X / LinkedIn)Plain. One thought per post. Show, don't telegraph.Threads of platitudes. Founder humblebrags.
Press / op-edManifesto + founder voice + specific.Stage-overstating. Composite anything.
Crisis / incidentSee §01.991 — the crisis register has its own rules.Anything off the cuff.

Three labels. Always one.

Numbers carry the trust load. They also carry the legal and reputational risk. Every number on every surface is one of three things — labeled inline.

Label 01

Measured.

Observed in production or pilot, with the data on hand. State plainly: "22-minute median conversation in pilot (n=18)." Round when imprecise; precise when you've measured.

Label 02

Target.

A design goal we're working toward. Label inline: "Target: KISA certification stamp by Q3 2026." Never present a target as if it were measured.

Label 03

Illustrative.

A worked scenario for explanation. Label inline: "Illustrative: a merchant doing R5,000/day in invoices…" Useful for explaining mechanics; never for proving outcomes.

When the same number appears on a landing page and a partner deck, the label travels with it. 5M+ says "more than five, less than ten, we don't have it sharper." 5,142,318 says "we counted."

Composite is a stop-gap.

Composites bridge the gap between pre-pilot and a live, opted-in voice. They are temporary by design — and we treat them that way.

Rule 01

Always labeled inline.

"Composite · drawn from pilot interviews · identity anonymised" — directly under the quote, not in a footer.

Rule 02

Never name a person.

Use a role: "A spaza owner in Soweto." Never "Sarah, NYC."

Rule 03

Sunset on the page.

Each composite has a planned replacement date logged where the page lives. Six months past first publication and still composite? Raise it as a problem. <!-- composite sunset target: 2026-Q4 -->

Rule 04

Don't Frankenstein.

"Composite" means multiple interviews informing one scenario. It does not mean splicing different people's words into one mouth.

The crisis
register.

The brand is most exposed when something breaks. A missed alert. A data incident. A regulator inquiry. A merchant who got bad advice. The voice we want there has a shape.

Beat 01

What happened, in user terms.

No softeners. No "we may have." Tell people the thing.

Beat 02

What it means right now.

What's still working. What isn't. What they need to do.

Beat 03

What we're doing — with a clock.

Not "soon." A real next-update commitment with a time.

Beat 04

Who is accountable, by name.

Usually the founder. Not "the team." Not "Ebenworks."

Beat 05

How to reach us.

A real channel a real person reads.

What we never say in a crisis

  • "Out of an abundance of caution…"
  • "Your trust is important to us."
  • "Customers may have been impacted." (passive)
  • Any marketing CTA in an incident message.
  • Legal-team gloss instead of plain English.

The product
has a voice.

The rules above are how we write about the products. The products themselves speak too — to merchants, to seniors, to families. Their register is more intimate than ours.

Imali

To a merchant on WhatsApp.

Plain English, isiZulu, or isiXhosa per the user's setting. Sentences short enough to read on a small screen at midday in the sun. Vocatives where natural (sawubona, molo, first name if known). Numbers formatted the way the merchant writes them. Errors say what to do, not what went wrong inside.

Sawubona Nomvula. Today: R3,420 in. R1,180 out. Reply 1 to log a sale, 2 to see the week.
Chingu

To a senior on a phone call.

Korean, conversational register, regional patterns where appropriate (Gyeongsang, Jeolla, Chungcheong, Gangwon, Jeju). Slower cadence than a smart-speaker default. Honorifics — warm, not stiff. Never rushes. Doesn't pretend to be human; doesn't break the warmth either.

할머니, 오늘 점심 드셨어요? 천천히 말씀하셔도 돼요.
Ebenworks

To an investor or partner.

Different from both. English. Specific. Lower temperature than the manifesto, higher temperature than a 10-K. The voice from §01.5, with §01.98's number labels intact.

Founder voice — first-person Ebenezer Tarubinga quotes, explicitly attributed — sits inside this register, on essays, manifesto pages, and press, where the why matters more than the what.

When in doubt about which voice, ask: who is on the other end of this sentence?

We use models
to draft. We don't ship the draft.

Generative tooling is a typing aid. It is not the writer. The writer is on the team and reads the rules above.

Rule 01

AI output = junior writer's first attempt.

Edit it down with §01.5. The rules win, every time.

Rule 02

Models love the avoid list.

Innovative, empowering, seamless, comprehensive. Catch them in the diff.

Rule 03

Verify every number, every citation.

Models hallucinate metrics and legal articles. No published number or legal citation in AI-drafted copy ships without independent verification.

Rule 04

Founder quotes are written by the founder.

A model can sketch; the published quote is the founder's words, approved by the founder.

Rule 05

Disclose when it matters.

Mostly model-drafted long-form (content marketing, support macros) carries a disclosure. Personal essays and founder voice — AI is a typing aid at most.

Passes the rules.
Still wrong.

Sentences that pass the rules and still feel wrong. Use as a calibration aid — and add to the list when you find a new one. The list is the playbook's most useful section.

"Imali serves the unseen 1.6M SA merchants the banks can't see."

Passes the rules. Stacks "unseen" and "can't see" — savior register doubled. Cut "the unseen."

"Chingu offers 700ms median response, on-device wake word, and a 90-day auto-delete window — built for Korean seniors who deserve dignity."

Passes specific + technical. "Deserve dignity" is editorial appended to a spec list. Cut, or split into two sentences with different jobs.

"We don't choose problems by market size — we choose them by who's left out of the picture."

Beautiful in a manifesto. Wrong on a pricing page, where it reads as virtue stapled to a price.

"Built with love for the underserved."

Passes plainness. Fails because "with love" is unfalsifiable and "the underserved" is unspecific. Two cardinal sins in five words.

This is a working document.

Expect parts of it to age out. The brand is a position; the playbook is one expression of that position at one point in time.

The playbook's authority is borrowed from whatever it makes us better at. When it stops doing that for a particular case, the case wins, not the playbook.

The brand is not a tone. It's a position. Voice Playbook · v2.0 · Ebenworks

One orange. One charcoal. The rest is air.

The system runs on a single brand orange (#FC5F00) against deep charcoal text on warm paper. Everything else — the gray scale, the warm off-white — exists to give that orange room to do its job.

Use orange surgically. It's the call-to-action, the highlight, the moment of attention. Wash it everywhere and it loses all its weight.

Brand

Orange
HEX#FC5F00
RGB252 95 0
RoleBrand
Orange Deep
HEX#DA4300
RGB218 67 0
RolePressed
Charcoal
HEX#28282B
RGB40 40 43
RoleUI dark
Ink
HEX#1D1009
RGB29 16 9
RoleText
Paper
HEX#FAF8F4
RGB250 248 244
RoleBackground
White
HEX#FFFFFF
RGB255 255 255
RoleSurface

Orange scale

50
100
200
300
400
500
600
700
800
900

Gray scale

50
100
200
300
400
500
600
700
800
900

Orange 500 against Paper passes WCAG AA for large text (3:1) but not normal body. Use Ink or Charcoal for sustained reading; reserve Orange 500 for headlines, CTAs, and accents. Orange 700+ on Paper passes AA for normal body text.

Two voices, one system.

A characterful display family for headlines and brand moments. A neutral, refined sans for everything else. A monospace for code, technical detail, and tagged metadata.

The recommended pairing is Bricolage Grotesque (display) + Geist (body) + Geist Mono. All three are open-source and available via Google Fonts. If your stack already standardizes on Inter, swap it in for Geist — the system still holds.

Display · 96/0.95Bricolage 800
Better tomorrow.
Display · 56/1.05Bricolage 700
Built by people, for people.
Display · 32/1.15Bricolage 600
For the people the world overlooks.
Body Lg · 20/1.5Geist 400
We're a company building toward a group of companies. Bound by mission, unbounded by industry. We exist to serve people the world stops short of seeing — and to make their lives measurably better.
Body · 16/1.6Geist 400
The brand is a system, not a freeze-frame. These guidelines tell you which parts are fixed (the mark, the colors, the tagline) and which parts have room to breathe (layout, photography, illustration). When you're not sure: pick the simpler option.
Body Sm · 14/1.5Geist 400
Footnotes, captions, secondary metadata. Use sparingly — body text should be the default.
Mono · 14/1.5Geist Mono 500
// the orange is #FC5F00 / rgb(252, 95, 0)

Brand, in motion.

A few quick examples of how the system holds together when you build with it. None of these are mandates — they're proof that the parts work.

Buttons

Action, restated.

Get started → View docs Skip for now →

Primary uses Brand Orange. Secondary is ink-outline. Ghost has no chrome — for low-priority routes.

Dark surface

The mark holds up
against ink.

Ebenworks
v1.0 · brand kit
Open Graph

Social card preview

OG card
ebenworks.ebstar.com
Ebenworks · Better tomorrow.
Favicon

Tab presence

Ebenworks · Better tomorrow. ×

The mark renders crisply at 16×16 — the EW shape stays legible even at favicon size.

Drop-in code.

The brand isn't a PDF. It's a set of variables you can paste into your stylesheet, your config, your typed constants — and start shipping with today.

Find the full token files under tokens/: tokens.css, tokens.json, tailwind.config.js, theme.ts.

CSS variables

/* tokens.css — drop into :root */
--ew-orange:        #FC5F00;
--ew-orange-deep:   #DA4300;
--ew-ink:           #1D1009;
--ew-charcoal:      #28282B;
--ew-paper:         #FAF8F4;

--ew-font-display:  'Bricolage Grotesque', sans-serif;
--ew-font-sans:     'Geist', system-ui, sans-serif;
--ew-font-mono:     'Geist Mono', monospace;

Tailwind

// tailwind.config.js
theme: {
  extend: {
    colors: {
      ew: {
        orange: { DEFAULT: '#FC5F00', deep: '#DA4300' },
        ink:      '#1D1009',
        charcoal: '#28282B',
        paper:    '#FAF8F4',
      },
    },
  },
}

TypeScript

// theme.ts
export const colors = {
  brand: {
    orange:     '#FC5F00',
    orangeDeep: '#DA4300',
    ink:        '#1D1009',
    charcoal:   '#28282B',
    paper:      '#FAF8F4',
  },
} as const;

Favicon HTML

Drop this into your <head>. The companion files live in favicons/ — copy them to your site's web root.

<!-- Ebenworks favicons -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#FC5F00">

Everything in this kit.

Sixty-plus files, organized by purpose. Use this index as a map.

logos/

ebenworks-primaryFull lockup with mark, wordmark, and tagline. The brand at full strength.SVG · PNG
ebenworks-stackedMark + wordmark, no tagline. Everyday use.SVG · PNG
ebenworks-markEW monogram only. Avatars, app icons, tight spaces.SVG · PNG
ebenworks-wordmarkEBENWORKS letters only.SVG · PNG
ebenworks-mono-{black,white}Single-color full lockup. For non-color contexts.SVG · PNG
ebenworks-orangeSingle-color all-orange variant.SVG · PNG

favicons/

favicon.icoMulti-resolution Windows favicon (16, 32, 48 in one file).ICO
favicon.svgModern browsers — scales perfectly at any size.SVG
favicon-{16..512}.pngPNG fallbacks across the standard size ladder.PNG
apple-touch-icon{,-dark}.pngiOS home screen icon, 180×180, light + dark variants.PNG
android-chrome-{192,512}.pngAndroid / PWA standard. Maskable variants included.PNG
safari-pinned-tab.svgSafari pinned tab — must be single-color.SVG
site.webmanifestPWA manifest with theme color and icon set.JSON
favicon-html-snippet.htmlDrop-in <head> tags. Copy, paste, ship.HTML

social/

og-image-{light,dark,hero}Open Graph card. 1200×630. Three layouts to pick from.PNG
twitter-cardsummary_large_image format. 1200×675.PNG
linkedin-personal-bannerPersonal profile background. 1584×396.PNG
linkedin-company-bannerCompany page banner. 1128×191.PNG
youtube-bannerChannel art. 2560×1440. Safe zone respected.PNG
profile-{400,1024}-{light,dark,round}Avatar variants for every platform.PNG
social-post-squareInstagram / general 1:1 post template. 1080×1080.PNG

tokens/

tokens.cssCSS custom properties, light + dark mode.CSS
tokens.jsonDTCG-style structure for design tools and pipelines.JSON
tailwind.config.jsTailwind extend block. Drop into your config.JS
theme.tsTyped TS constants for code use.TS