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

93%

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

SKILL.md
Quality
Evals
Security

Quality

Content

82%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, highly actionable reference skill: executable code for every operation, explicit guards around the real footguns (store scope, region per-call, last-write-wins), and disciplined deferral of full API detail to official docs. Weaknesses are minor: a duplicated house-rules block costs tokens, the destructive region-migration step lacks an explicit verify-before-delete checkpoint, and the monolithic single file could split some detail into a reference file.

Suggestions

Trim or de-duplicate the trailing 'Netlify house rules' section: its rules are already stated in the body (not-a-database, store-scope footgun, access control, CLI, build-plugin read/write), so either remove the merged block or keep only rules not covered above.

Add an explicit verification step to the region-migration workflow (e.g., list/compare entries in the new-region store and only delete from the old store once all entries are confirmed copied) since it ends in a destructive delete.

Consider moving secondary detail — module-version migration, region migration, and file-based upload layout — into a references/ file linked from the main body to reduce the single-file footprint and improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is dense and footgun-driven with no re-teaching of known concepts, but the trailing "Netlify house rules" block restates points already made above (not-a-database, store-scope footgun, access control, CLI, build-plugin read/write), so a block of tokens could be trimmed — the minor-trimmable-excess anchor rather than every-token-earns-its-place.

4 / 5

Actionability

Fully executable throughout: copy-paste upload and read Function examples, typed set/setJSON/get signatures, onlyIfNew/onlyIfMatch conditional-write patterns with modified checks, listing/pagination recipes, an expiration recipe, and concrete region configuration — covering the common cases.

5 / 5

Workflow Clarity

Risky operations carry explicit checkpoints (null-check before destructuring, etag conditional reads, if (!modified) feedback responses, expiration check before delete, preview-isolation warnings), but the destructive region-migration sequence ("copy each entry… then delete it from the old one") lacks a verify-copy-before-delete checkpoint — most checkpoints present with a minor validation gap.

4 / 5

Progressive Disclosure

A single well-sectioned file with clear headers and full API detail appropriately deferred to one-level, clearly signaled official-docs links; with no bundle files, ~240 lines in one file (e.g., migration and region detail) is somewhat monolithic, matching the good-structure-with-minor-organization-gaps anchor.

4 / 5

Total

17

/

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, a comprehensive set of natural trigger phrases, explicit use-when guidance, and a clear negative boundary against Netlify DB. Every dimension sits at the top anchor.

DimensionReasoningScore

Specificity

Lists multiple concrete capabilities — "Store and retrieve unstructured objects, files, and cache-like state", "persisting user file uploads (images/documents)", "caching computed output", "serving downloadable assets", "storing JSON blobs keyed by ID", "seeding deploy-specific data" — with no coverage gaps for the domain, matching the comprehensive-coverage anchor rather than the minor-gaps anchor.

5 / 5

Completeness

Explicitly answers both: 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…" and "Triggers include…") with concrete trigger phrases, so it exceeds the could-be-more-explicit anchor below.

5 / 5

Trigger Term Quality

Explicit natural trigger phrases users would actually say — "save an uploaded file", "cache API results", "store generated site map", "key/value store for a function", "file uploads without a database" — plus synonym coverage across upload/cache/storage phrasings, matching the comprehensive anchor.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Netlify Blobs via @netlify/blobs) with distinct triggers and an explicit negative boundary — "not for per-user, transactional, or relational data (use Netlify DB for that)" — that actively disambiguates from the nearest competing skill.

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

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.