Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@wisechef/brand

Single source of truth for WiseChef brand identity across every sub-product. Update this repo, every product gets the change through a reviewable PR.

What's in here

assets/brand/      Logo PNGs (mark-{16..512}.png), favicon.svg, og-image.png
tokens/            Design tokens — colors, fonts, radii, shadows, spacing
  index.js           JS/TS-friendly object exports
  index.d.ts         TypeScript declarations
  tokens.css         CSS custom properties (--wc-*)
tailwind/preset.cjs  Tailwind preset wiring all tokens as wc-* classes
consumers.json     Registry of every product repo that consumes this package
.github/workflows/
  ci.yml             Validate on every push/PR
  propagate.yml      On `vX.Y.Z` tag → open bump PRs in every consumer

How consumers depend on this

// any product's package.json
{
  "dependencies": {
    "@wisechef/brand": "github:wisechef-ai/wisechef-brand#semver:^1.0.0"
  }
}

That's it. No npm registry, no auth tokens, works for public clones and CI runners alike.

How consumers use it

JS / TypeScript

import { colors, brand, fonts } from '@wisechef/brand';

console.log(brand.bookingUrl);
// → 'https://calendar.app.google/P9J9oaiemtHdsvG99'

CSS

@import '@wisechef/brand/tokens.css';

body { background: var(--wc-bg); color: var(--wc-text); }
.cta { box-shadow: var(--wc-shadow-pill-cta); }

Tailwind

// tailwind.config.cjs
module.exports = {
  presets: [require('@wisechef/brand/tailwind-preset')],
  content: [/* your globs */],
};

Then use bg-wc-bg, text-wc-accent, border-wc-border, shadow-wc-pill-cta, rounded-wc-pill, etc.

Static assets (logos, og-image)

// Vite/Astro: import the path
import logoSrc from '@wisechef/brand/assets/brand/mark-96.png';

// Or copy at build-time (recommended for products that need favicon at /):
//   pnpm exec cp node_modules/@wisechef/brand/assets/brand/* public/brand/

Release flow — change once, roll out everywhere

  1. Open a PR in this repo: edit a token, swap a logo PNG, add a new --wc-* variable.
  2. CI runs scripts/validate.mjs — checks asset existence, JS↔CSS parity, consumers.json shape.
  3. Merge to main.
  4. Cut a release tag: git tag v1.1.0 && git push --tags.
  5. The propagate.yml workflow fires automatically:
    • Validates the package
    • Reads consumers.json
    • Opens chore(brand): bump @wisechef/brand → v1.1.0 PRs in every consumer repo
  6. Each consumer's own CI runs against the bump PR. Adam reviews + merges per product. Products with auto-deploy ship live on merge.

No surprise auto-merges. Every consumer gets a reviewable PR. Adam stays in the loop on what brand change lands where, when.

Versioning policy

  • Patch (1.0.x) — bug fixes, asset re-exports, doc-only.
  • Minor (1.x.0) — additive: new tokens, new components, new assets. Consumers using ^1.0.0 upgrade automatically on next install.
  • Major (x.0.0) — breaking: token rename, asset removal, component API change. Consumer bump PR is intentionally diff-noisy so reviewers see the cost.

Adding a new consumer

Edit consumers.json:

{
  "name": "my-new-product",
  "repo": "wisechef-ai/my-new-product",
  "default_branch": "main",
  "stack": "astro|react-vite|next|sveltekit|...",
  "package_json_path": "package.json",
  "production_url": "https://my-new-product.wisechef.ai",
  "deploy_workflow": ".github/workflows/deploy.yml",
  "notes": "..."
}

Then open a PR. Once merged, the next brand release will fan out to your new consumer.

The PAT (WISECHEF_BRAND_PROPAGATE_PAT) needs contents: write + pull-requests: write on the new repo — add it in the fine-grained PAT settings.

Why a meta-repo at all?

Adam, 2026-04-25: "Create a meta repo from which our every sub-products are compound and created and we won't lose track on multiple offers we are doing + there will be a place where we store our brand motives/assets/etc."

The trigger was a shipped-but-broken design rollout: wisechef.ai/visibility (and every other inner page) was missing the toque logo, while rescue.wisechef.ai had it. Three separate repos = three drifting brands.

This repo is the contract. If you're shipping a new sub-product, your nav, your favicon, your colors come from here. If something looks off, fix it here once.

Local development against a consumer

# Inside the consumer repo:
pnpm link --global ../wisechef-brand
# or, in package.json:
#   "@wisechef/brand": "link:../wisechef-brand"

When done, pnpm install to restore the git-URL dep.

License

Internal — WiseChef sub-products only.

About

Single source of truth: WiseChef brand assets, design tokens, and propagation pipeline across every sub-product (wisechef.ai, recipes, rescue, ...)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages