netlify-blobs

Store and retrieve unstructured objects and file uploads using the Netlify Blobs key-value API.

Updated May 19, 2026
One-click install
npx skills add https://github.com/costrict-plugins-repo/anthropic-netlify-skills --skill netlify-blobs-costrict-plugins-repo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: netlify-blobs
Source: https://github.com/costrict-plugins-repo/anthropic-netlify-skills/tree/main/codex/skills/netlify-blobs
Command: npx skills add https://github.com/costrict-plugins-repo/anthropic-netlify-skills --skill netlify-blobs-costrict-plugins-repo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @netlify/blobs.

What problem does it solve? Applications on Netlify often need to persist unstructured data — user file uploads, form submissions, generated artifacts from background functions — without provisioning a database. This Skill provides the correct patterns for using the @netlify/blobs key-value store from Functions, Edge Functions, and Build Plugins, while avoiding common pitfalls like treating blobs as transactional storage or leaking production data into deploy previews. ## Core Features & Use Cases - Object storage operations: set, setJSON, get, getWithMetadata, list, delete, and deleteAll with metadata, ETag-based conditional reads, and atomic writes via onlyIfNew/onlyIfMatch. - Store scoping guidance: choose between site-scoped stores (shared across all deploy contexts) and deploy-specific stores via getDeployStore for isolated, per-deploy data. - Build-time and client patterns: write blobs from build plugins, upload files at deploy time via .netlify/blobs/deploy, and implement client-side expiration since blobs have no TTL. - Use Case: A user uploads a profile image through a form; a Netlify Function stores it in a blobs store with geolocation metadata, and a later request reads it back with an ETag check to serve a cached copy. ## Quick Start Ask the agent to write a Netlify Function that saves an uploaded file to a Netlify Blobs store and reads it back by key.

Frequently Asked Questions about netlify-blobs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I store a file upload in Netlify Blobs?

Use getStore from @netlify/blobs inside a Netlify Function, read the file from req.formData(), and call store.set(key, file, { metadata }). Generate a unique key such as a UUID, then retrieve the file later with store.get(key).

What is the difference between getStore and getDeployStore in Netlify Blobs?

getStore returns a site-scoped store shared across all deploy contexts, including production and previews. getDeployStore returns a store isolated to one deploy, making it safe for throwaway or per-deploy data and the only store type build plugins can write to.

Can Netlify Blobs replace a database for user data?

No. Netlify Blobs has no concurrency control beyond onlyIfMatch and onlyIfNew, so counters, balances, sessions, and read-modify-write logic are unsafe. Use Netlify DB for per-user, transactional, or relational data instead.

Does Netlify Blobs support TTL or automatic expiration?

No, blobs have no built-in TTL. Store an expiration timestamp in the blob's metadata, check it on read with getWithMetadata, and call delete when the timestamp has passed.

Why is my deploy preview overwriting production blob data?

Site-scoped stores from getStore are shared across all deploy contexts, so preview code reads and writes production data. Use getDeployStore or a context-specific store name to isolate preview data from production.

What are the size and naming limits for Netlify Blobs?

Objects can be up to 5 GB with metadata capped at 2 KB. Store names cannot contain slashes or colons and are limited to 64 bytes; keys cannot start with a slash and are limited to 600 bytes.