[Pixel Post] SpriteDX - Plans for Storing User Generated Files

Sprited DevSprited Dev
3 min read

We’ve been charging full-throttle on the SpriteDX web UI — buttons, sliders, menus, that glorious dar mode.
Now, we’ve hit a very real milestone:

“Uh… where are we gonna put all these files?”

Because SpriteDX isn’t just a button that makes art.
It’s a tool to generate your sprites, animations and GIFx and to manage them without feeling like you’re juggling USB sticks in the dark.
That means we need a home for every PNG, WebP, and whatever-else-you-dream-up our future user throw at it.


Object Storage

We’ve picked Backblaze B2 as the big pantry for SpriteDX. Why?

  • Cheap: ~0.005 per GB/month — so we don’t go broke storing a million idle renders.

  • S3-compatible: Plays nice with normal upload/download tools.

  • Free egress to Cloudflare (Bandwidth Alliance): Origin fetches cost $0, so no “oh no” bandwidth bills when something goes viral.


CDN

Cloudflare sits in front of B2 like a combination bouncer and butler:

  • Fetches your file from storage once, then keeps it handy for everyone else.

  • Smacks down DDoS gremlins and cache-busting troublemakers.

  • Serves your art from a server that’s actually near you.

Every upload or generated file will start private.
If you publish it, we make a public copy that Cloudflare can serve worldwide.
If you unpublish, the public copy disappears — the original stays safe and unseen.


Quotas

Even before launch, we’re baking in quotas so no one’s “Test Render (Final_final2).mp4” collection explodes the pantry.
Near your limit? You’ll get:

  • A friendly warning.

  • A cleanup button.

  • An upgrade option if you’d rather keep stacking pixels like a dragon’s gold.

We’ve seen too many “our S2 bill exploded“ horror stories.
So from day one:

  • Private buckets only — no public access to originals.

  • Immutable URLs — fetch once, cache forever.

  • Rate limits — prank refresh scripts get squashed instantly.


Why This Matters Pre-Launch

Storage isn’t flashy, but it’s the invisible backbone that decides if your creations are here tomorrow or gone in the void.
By locking this down now, when SpriteDX launches you’ll have a safe, fast, and low-drama place for every upload, every render, and every cursed animation you bring to life.


Next Steps

  • Ask Jin to start creating Backblaze B2 private bucket.

  • Enable S3 compatible API.

  • Setup Cloudflare subdomain media.sprited.ai.

  • Setup cloudflare worker to act as “origin adapter“

    • Worker routes GET /pub/* to the public prefix in B2 via S3-compatible or native API.

    • Add caching headers (Cache-Control: public, max-age=31536000, immutable).

    • Short-lived download auth token if using native B2 API.

  • Turn on Tiered Cache ($5/mo) — minimizes origin fetches from B2.

  • Set CORS rules in Worker responses for safe cross-domain access.

  • Optional: Use Cloudflare Cache Reserve if you want “long-term hot” assets without repeated B2 fetches.

— Pixel 🧚

0
Subscribe to my newsletter

Read articles from Sprited Dev directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sprited Dev
Sprited Dev