Opinionated standard library for Webiny. This is an internal package — we make breaking changes freely and do not follow semver for external consumers.
Services are built on a lightweight dependency injection system. Each feature follows the same three-layer pattern: an abstraction (DI token + interface), an implementation (concrete class), and a feature (registers the implementation in the DI container). This keeps code testable and lets different environments (Node.js, browser) swap implementations behind the same interface.
The package is ESM-only and ships three subpath exports. Because each is a separate entry point, Node.js-specific code is never bundled into a browser build and vice versa — unless you explicitly import the wrong subpath.
| Import |
Environment |
Description |
| @webiny/stdlib |
Any |
Platform-agnostic utilities |
| @webiny/stdlib/node |
Node.js |
Node.js-specific tools |
| @webiny/stdlib/browser |
Browser |
Browser-specific tools |
| @webiny/stdlib/mcp |
Node.js |
MCP server + agent config |
| Feature |
Description |
| Result / ResultAsync |
Typed success/failure values — synchronous and async |
| BaseError |
Abstract base class for typed domain errors |
| Logger / ConsoleLogger / ConsoleLoggerFeature |
Logging abstraction + console implementation — docs |
| Cache / MemoryCacheFeature |
Synchronous key-value cache — docs |
| AsyncCache / AsyncMemoryCacheFeature |
Async key-value cache — docs |
| immutableGet / immutableSet / immutableDelete / mutableSet / mutableDelete |
Dot-notation get/set/delete on nested objects — docs |
| toBoolean / isTruthy / isFalsy |
Semantic boolean coercion — docs |
| uuid |
RFC 4122 v4 UUID generator (native + fallback) — docs |
| mdbid |
MongoDB-compatible ObjectId generator — docs |
| generateId / generateAlphaNumericId / generateAlphaLowerCaseId / ... |
Nanoid-based ID generators with configurable alphabets — docs |
| Env |
Typed environment variable access (abstraction) — docs |
@webiny/stdlib/node — Node.js
| Feature |
Description |
| FileTool / FileToolFeature |
Read, write, copy, remove files — docs |
| DirectoryTool / DirectoryToolFeature |
Create, read, remove, copy, glob directories — docs |
| JsonFileTool / JsonFileToolFeature |
Read and write JSON files with optional schema validation — docs |
| PathTool / PathToolFeature |
node:path wrapper + resolvePackageFile for package-relative paths — docs |
| PinoLogger / PinoLoggerFeature |
pino-based Logger implementation — docs |
| NdJsonReaderTool / NdJsonReaderToolFeature |
Parse NDJSON from files, streams, or in-memory lines with checkpoint support — docs |
| ReadStreamFactory / ReadStreamFactoryFeature |
node:fs read streams with explicit destroy() cleanup — docs |
| PackageJsonFileTool / PackageJsonFileToolFeature |
Read, validate, mutate, and write package.json files — docs |
| HashFolderTool / HashFolderToolFeature |
Deterministic SHA-256 hash of a folder's contents — docs |
| ProcessEnvFeature |
Env implementation backed by process.env — docs |
| WorkspaceTool / WorkspaceToolFeature |
Discover workspaces from root package.json (replaces get-yarn-workspaces) — docs |
| GlobTool / GlobToolFeature |
Find files and directories by glob pattern — docs |
@webiny/stdlib/browser — Browser
| Feature |
Description |
| LocalStorageCacheFeature |
Cache implementation backed by window.localStorage — docs |
| BrowserEnvFeature |
Env implementation backed by an injected variables object — docs |
@webiny/stdlib/mcp — MCP Server
An MCP server that exposes @webiny/stdlib feature documentation as tools for AI agent discovery. Ships a CLI binary (stdlib-mcp) with two commands:
# Start the MCP server (stdio transport)
npx -y @webiny/stdlib stdlib-mcp serve
# Configure an AI agent (Claude Code, Cursor, Cline, Copilot, Windsurf, Kiro, OpenCode)
npx -y @webiny/stdlib stdlib-mcp configure
The server provides two MCP tools: list_stdlib_skills (grouped catalog of all features) and get_stdlib_skill (full documentation for a specific skill). By default it scans skills/ and src/ (or dist/) for README.md and SKILL.md files with YAML front-matter.
| Feature |
Description |
| McpServer / McpServerFeature |
MCP server with stdio transport — docs |
| SkillDiscovery / SkillDiscoveryConfig |
Scans directories for skill files with front-matter — docs |
| AgentConfigurator / AgentConfiguratorFeature |
Interactive CLI to configure AI agents — docs |
Versioning and publishing are managed by Changesets. The version in package.json is the real published version, bumped automatically when a version PR is merged. To record a version bump, run yarn changeset before opening a PR. There are no major version bumps — breaking changes may land on minor releases.