Projects Under construction · brandcrafter.app

Generates

BrandCrafter

Define a brand once — palette, type, voice — then generate every asset it needs: 36 types across image, video, copy, and code. Reach it from a browser, a CLI, an API, or an agent skill.

What it is

BrandCrafter turns one brand into everything it needs. You set the identity once — palette, type, voice — and it generates 36 kinds of on-brand asset: logos and the marks derived from them, social cards and posts, posters and thumbnails, website heroes and OG images, print and product mockups, short video, and the copy and code to match. Each is a named, typed workflow you invoke by name — from a browser PWA, a scriptable CLI, an HTTP API, or an installable agent skill.

Every generation degrades to a deterministic local fallback — a real SVG or text asset — when a key, quota, or model is unavailable, so a request always resolves to something usable. One Google API key unlocks every model; with no key at all, it still runs entirely on the deterministic path.

How it works

One brand, every asset

Set the identity once; each asset is built on the canonical mark and palette, in dependency order.

A dependency-ordered pipeline draws the logo first, promotes it to the canonical mark, then builds every downstream asset on it — favicon, social, print, web, video, copy — so all 36 asset types stay on one identity instead of drifting apart.

A deterministic fallback

When a key, quota, or model is missing, generation degrades to a local SVG or text asset.

Every generation path ends in a deterministic local fallback: with no key or quota, BrandCrafter returns a real SVG or text asset instead of an error. One Google API key unlocks the AI models; without one, it still produces a usable, on-brand result.

One core, every surface

The same generation core drives a PWA, a CLI, an HTTP API, and an agent skill.

BrandCrafter runs as a browser PWA for interactive work, a Commander CLI other tools can script, a tRPC HTTP API with per-brand keys, and an installable agent skill — all over one core, so behaviour is identical whichever way it is invoked.

What it generates

Watch it build a brand — in order

A compact replay of the product’s own demo: the identity sets, then every asset cascades in on the logo — each one on-brand, each with a deterministic local fallback, so it always comes back with something real.

Watch a brand build itself0 / 13

VelaSmall-batch coffee

Unmistakably warm.

Fraunces · Inter

Choose a direction

Vela

Your mark — everywhere it appears

Vela favicon
Vela app icon
Vela profile avatar
Logo, favicon, app icon & avatar
Vela social card
Social card
Vela Instagram post
Instagram post
Vela link-preview image
OG image
Vela cover banner
Cover photo
Vela email header
Email header
Vela business card
Business card
Vela product mockup
Product mockup
Vela poster
Poster
Website hero

Setting the brand identity…

asset workflows · demo

Features

Identity marks

One canonical logo, then favicon, app icon, avatar, and stickers derived from it — no drift.

Social & content

Social cards, Instagram posts, thumbnails, posters, and ad copy in your brand voice.

Motion & video

Animated hero loops and ambient background clips, cropped to seamless loops via Veo 3.1.

Web & app imagery

Website heroes, OG images, web banners, cover photos, and email headers.

Print & product

Business cards, flyers, letterhead, and your mark on real product mockups.

Code & copy

CSS themes, Tailwind config, and React snippets, plus bios, value props, and landing copy.

36asset types
4surfaces — PWA · CLI · API · skill
0keys required to run
1key unlocks every model

It never leaves you empty-handed.

Every asset type — image, video, copy, code — ends in a deterministic local fallback. If a model call can’t run, BrandCrafter still hands you a real, usable asset instead of an error. Your brand never gets stuck on a blank screen.

Built with

  • Next.js 15
  • React 19
  • TypeScript
  • tRPC
  • TanStack Query
  • Zod
  • Tailwind CSS v4
  • Radix UI
  • Supabase
  • Commander
  • pkgroll
  • sharp
  • imagetracerjs
  • Gemini 3 Pro Image
  • Google Veo 3.1
  • Vitest
  • Playwright

Engineering

The deterministic seam

The AI sits behind a boundary that always has a backup. If a model call can’t run, BrandCrafter generates a real asset locally — so the app never returns an error in place of an asset.

Prompt templates and Google AI clients (Gemini 2.5 Flash text, Gemini 3 Pro Image, Veo 3.1 video) sit behind Zod-validated boundaries; on a missing key, quota, or model failure the fallback chain degrades to a deterministic local path — SVG marks vectorised with imagetracerjs, raster work matted with sharp — so every request resolves to a validated asset.

One core, every surface

The same engine powers the browser app, the command line, the API, and an agent skill — nothing is duplicated between them.

A Next.js 15 App Router + tRPC server drives the PWA; a Commander CLI compiled with pkgroll calls the same core in-process; the tRPC HTTP API exposes per-brand keys; and an installable agent skill wraps the CLI. TanStack Query and superjson carry typed results across the boundary.

A verified, dependency-ordered pipeline

Assets are generated in the right order and checked before they ship — the logo first, then everything built on it, each one passing a real quality check.

A 17-node DAG (validated acyclic; array order is a topological sort) drives generation; logos are verified flat (assessFlatness rejects drop-shadow/blur and degrades to SVG) and every palette-bearing surface renders from a WCAG-AA-checked palette computed in OKLCH.

Built to scale into SaaS

The multi-tenant groundwork — accounts, credits, plans, and usage tracking — is already built locally; going live is a matter of wiring the paid services.

Local-first account auth (scrypt + signed-cookie sessions, OAuth seams), a per-account credit economy with subscription plans and a trial, usage/cost telemetry, and a single spend gate are implemented; Stripe, Supabase, OAuth, and social-posting keys are documented operator-wired gates.

Visit BrandCrafterbrandcrafter.app

Have a dream project?

Tell me your idea and I’ll send you a quote.