← Back to Journal
Backblaze B2Oct 24, 2026·8 min read

How Backblaze B2 Powers Every Campaign

Why we picked B2 for millions of generated assets.

DA
Diego Alvarez
Infrastructure
Storage
Storage
Storage · illustrated by the Supernova design team

In this piece, we walk through how Supernova approaches Backblaze B2 storage architecture—from the design principles that shape the product to the engineering decisions that make it feel instantaneous.

The problem with today's marketing stacks

Marketing teams juggle dozens of tools. Copy lives in one system, creative in another, analytics in a third. AI was supposed to fix that. Instead, it added another tab. We built Supernova around a different idea: one agent, one surface, one campaign—end to end.

The best AI products don't add work. They remove it.

Supernova design principles

How Supernova thinks about orchestration

Supernova is an AI marketing agent. Under the hood, it's powered by GenBlaze—our multi-model orchestration engine that routes each subtask to the right model at the right cost. Storage sits on Backblaze B2, giving us predictable performance for millions of generated assets.

Backblaze B2 lifecycle
Step 1
Upload
signed PUT
Step 2
Cache
edge warm
Step 3
Archive
cold tier
Step 4
Expire
policy
Backblaze B2 lifecycle — simplified for illustration
Insight
Why this matters

Every additional tool a marketer opens is a tax on momentum. Collapsing the surface is worth more than any individual feature.

What this unlocks

  • Turn any product URL into a complete campaign in under two minutes
  • Route reasoning, writing, and imagery to specialized models
  • Store every asset with lifecycle policies tuned per campaign
  • Ship variants across channels without leaving the surface

Engineering the feel of instant

The interface is only half the story. Everything from streaming responses to prewarming media pipelines is designed to keep the user inside a single flow. When latency is unavoidable, we replace it with motion that communicates progress instead of hiding it.

ts
GenBlaze
// Streaming a campaign step through GenBlaze
const stream = await genblaze.run({
  task: "hero_headline",
  model: "auto",           // routed by cost + quality target
  context: { product, tone },
});

for await (const chunk of stream) {
  ui.append(chunk);
}

What's next

We're just getting started. The team is shipping weekly—expect deeper integrations, richer creative tooling, and a growing library of playbooks distilled from tens of thousands of live campaigns.

Keep reading

More from Supernova

All articles →