Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for BrandForge

Inspiration

Small brands need a consistent look across every post, but ad-hoc AI image generation drifts in style and leaves no trail of what was made or which brand definition it came from. We wanted brand-consistent media with provenance built in.

What it does

BrandForge turns one Brand Kit (palette, tone, style prompt) into a coordinated set of on-brand images. Every asset is generated with Genblaze, hashed (SHA-256), and catalogued in a single Parquet index on Backblaze B2 alongside a manifest and versioned Brand Kits. You can replay any past campaign by id — BrandForge re-queries the catalog and re-signs fresh delivery URLs on demand. manifest.verify() re-hashes every asset, so the set is tamper-evident.

How we built it

  • FastAPI (Python) app with a server-rendered gallery, deployed on Render.
  • Genblaze pipeline for generation — OpenAI gpt-image-1 today; the GMI Cloud path and a short-video chain are wired for when credits land.
  • Backblaze B2 (S3-compatible) stores assets under a hierarchical key strategy, a manifest beside them, versioned Brand Kits, and one Parquet catalog. Delivery uses short-lived presigned URLs.
  • Fail-closed HTTP Basic auth on every route except the health check, plus security headers and rate limiting.

Challenges we ran into

Reproducibility: delivery URLs expire, so "replay" re-resolves each asset's durable B2 key and re-signs on the fly. Keeping a single Parquet index consistent as a lightweight, serverless catalog.

Accomplishments that we're proud of

Tamper-evident provenance (content hashes + manifest.verify()), a non-billable replay flow, ~83 tests at ~97% coverage, and a security-headered, rate-limited deploy.

What we learned

Backblaze B2's S3 compatibility makes it a clean drop-in for both object storage and a Parquet-based catalog — and provenance is as valuable as the pixels.

What's next for BrandForge

Live generation via the GMI Cloud path, a short-video chain, and richer Brand Kit versioning.

Built With

  • b2
  • backblaze
  • boto3
  • fastapi
  • genblaze
  • gpt-image-1
  • openai
  • parquet
  • python
  • render
Share this project:

Updates