CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

netlify-blobs

Store and retrieve unstructured objects, files, and cache-like state on Netlify with the @netlify/blobs module. Use when persisting user file uploads (images/documents), caching computed output from functions or Background Functions, serving downloadable assets, storing JSON blobs keyed by ID, or seeding deploy-specific data. Reach for this for key/value or object storage from Functions, Edge Functions, or Build Plugins — not for per-user, transactional, or relational data (use Netlify DB for that). Triggers include "save an uploaded file", "cache API results", "store generated site map", "key/value store for a function", or "file uploads without a database".

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is netlify-blobs in netlify/context-and-tools

SKILL.md
Quality
Evals
Security

Quality

Content

76%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, dense reference skill with fully executable code and honest footgun documentation (store scope, region per-call, no TTL). Its main gaps are the unvalidated destructive deleteAll operation, which caps workflow clarity, and a duplicated house-rules tail that inflates token cost.

Suggestions

Add a validation checkpoint before destructive/batch operations: e.g., list keys (or verify store scope via listStores) and confirm intent before calling deleteAll(), mirroring the null-check discipline used elsewhere.

De-duplicate the trailing 'Netlify house rules' section: its six rules restate the body's 'Not a database', access-control, preview-sharing, counter, build-plugin, and CLI guidance — keep one copy and drop the other.

Move the long-tail API detail (region tables, constraints, module migration) into a references/ file linked from a short 'Reference' section to slim the main SKILL.md body.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious facts (region footguns, consistency, constraints) and avoids explaining known concepts, but the trailing "Netlify house rules" section restates body guidance nearly verbatim ("Blobs is not a database", access-control and preview-sharing rules, build-plugin read/write halves) — duplication beyond the "minor instances" of anchor 5. Not 3: the duplication is confined to one merged block and everything else earns its tokens.

4 / 5

Actionability

Every section ships executable, copy-paste-ready code with imports: a full upload Function ("const form = await req.formData()"), a reading Function with 404 handling, onlyIfNew/onlyIfMatch conditionals, pagination, the metadata-based expiration pattern, region-scoped getStore calls, and CLI/migration commands. Common cases are covered concretely, matching anchor 5.

5 / 5

Workflow Clarity

Sequences exist with some checkpoints (null-check before destructuring, expiration check before delete), but the destructive batch operation is shown bare: "const { deletedBlobs } = await uploads.deleteAll(); // deletes every object = deletes the store" with no list-first or confirm-scope validation step. The rubric's cap for destructive/batch operations without validation applies; not 4 because the cap takes precedence over partial checkpoint coverage.

3 / 5

Progressive Disclosure

No bundle files exist, and the body is well-structured with clear section headers and a terminal "Reference" section pointing one level deep to external sources ([CLI command reference], [Netlify Blobs docs]). Not 5: ~240 lines of inline API reference (regions, constraints, migration) could partly live in a separate reference file; not 3 because navigation is easy and nothing is buried.

4 / 5

Total

16

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete third-person capability statements, an explicit Use-when clause with natural trigger phrases, and a clear negative boundary against Netlify DB. Every dimension sits at the top anchor with no padding or over-claims.

DimensionReasoningScore

Specificity

"Store and retrieve unstructured objects, files, and cache-like state" plus "persisting user file uploads (images/documents), caching computed output… serving downloadable assets, storing JSON blobs keyed by ID, or seeding deploy-specific data" lists multiple concrete actions with comprehensive coverage, matching the anchor-5 example's breadth. Not 4: no meaningful coverage gaps remain for the module's stated use cases.

5 / 5

Completeness

Explicitly answers what ("Store and retrieve unstructured objects, files, and cache-like state on Netlify with the @netlify/blobs module") and when ("Use when persisting user file uploads…", "Triggers include…") with concrete trigger phrases, matching the anchor-5 example structure. Not 4: the when-clause is fully explicit, not merely present.

5 / 5

Trigger Term Quality

Triggers include "save an uploaded file", "cache API results", "store generated site map", "key/value store for a function", and "file uploads without a database" — natural user phrasings with synonym variation across the domain. Not 4: no common natural variant of these requests is missing.

5 / 5

Distinctiveness Conflict Risk

The niche is platform-anchored ("on Netlify with the @netlify/blobs module") with an explicit negative boundary ("not for per-user, transactional, or relational data (use Netlify DB for that)") and distinct triggers. Not 4: the named platform, module, and DB disambiguation leave minimal overlap risk with adjacent storage skills.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

netlify/context-and-tools

Path

codex/skills/netlify-blobs/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.