Introducing Scoped Blob Storage

val.town June 11, 2026
Source
Since the early days, vals on Val Town have had the ability to store blobs on an S3-like service. Just import a val from the standard library and it works, with no setup or configuration. It's a tremendously useful and popular feature. What's a blob, you might be asking? It's binary data that you store with a name, just like a file. And it can be any kind of data - text, photos, music, JSON - it's all the same to blob storage. It's a great option for storing unstructured, simple, or big data. If you've got structured data and need a database, check out our SQLite database support which is just as easy to setup. Today we're adding a new version of blob storage with two important tweaks: It's scoped! Scope blob storage is isolated by val, rather than by account. This simplifies things for when you might need to transfer a val from one organization to another, or list only the blobs that were created by one specific val. In the old days (before yesterday), blob storage was scoped by your user account or organization. In the rare case that two vals wanted to access the same blobs, this was nifty, but in the more common case we'd see vals accidentally overwriting each others data. And there was no connection between a blob and the val that wrote it, so you couldn't transfer a val without losing access to all of its blobs. It's faster! About 5x faster on our internal benchmarks. Pretty good! I'll even give away the secret: under the hood, scoped blob storage is based on good old Amazon S3. We used Cloudflare R2 for the global blob storage system, because we were already using some of the Cloudflare stack, and the egress pricing difference is compelling. But in this case, proximity is the deciding factor: with an S3 bucket in the same region as our servers, file uploads, downloads, and other operations involve the minimum amount of network hops. It all stays in Amazon's network, and for small requests where latency is the biggest factor, that means a big performance difference. View those blobs in the settings Just like for global blobs, you can list, download, and upload blobs from the website, not just from code. Check it out with the new Blob Storage menu item from vals. Scoped blob storage: a solid new default If you're using Val Town's MCP servers, skills, or Townie, you might notice that the LLMs are now set to prefer scoped blob storage, as the more future-proof, faster alternative to global storage. If you're coding by hand (bless you, sweet thing) check out the new documentation for the std/blob val for details on how to use scoped blob storage. It's the same API, just a different import.

Discussion in the ATmosphere

Loading comments...