Nodejs Backend Patterns
ever-works/ever-works
Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.
Add cross-cutting request logic to a Ts.ED v8 application with middlewares, auth guards, interceptors and pipes.
$ npx skills add tsedio/tsed --skill tsed-middlewares -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tsedio/tsed tsed-middlewares --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tsed/skills/tsed-middlewares .claude/skills/tsed-middlewares && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tsed-middlewares" agent skill from https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewares into .claude/skills/tsed-middlewares/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsed-middlewares", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewaresType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tsedio/tsed --skill tsed-middlewares -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tsedio/tsed tsed-middlewares --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/tsed/skills/tsed-middlewares .agents/skills/tsed-middlewares && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tsed-middlewares" agent skill from https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewares into .agents/skills/tsed-middlewares/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsed-middlewares", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tsedio/tsed --skill tsed-middlewares -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tsedio/tsed tsed-middlewares --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/tsed/skills/tsed-middlewares .cursor/skills/tsed-middlewares && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tsed-middlewares" agent skill from https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewares into .cursor/skills/tsed-middlewares/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsed-middlewares", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tsedio/tsed.git --path plugins/tsed/skills/tsed-middlewares--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tsedio/tsed --skill tsed-middlewares -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tsedio/tsed tsed-middlewares --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/tsed/skills/tsed-middlewares .gemini/skills/tsed-middlewares && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tsed-middlewares" agent skill from https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewares into .gemini/skills/tsed-middlewares/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsed-middlewares", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tsedio/tsed tsed-middlewaresInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tsedio/tsed --skill tsed-middlewares -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/tsed/skills/tsed-middlewares .github/skills/tsed-middlewares && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tsed-middlewares" agent skill from https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewares into .github/skills/tsed-middlewares/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsed-middlewares", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tsedio/tsed --skill tsed-middlewares -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tsedio/tsed tsed-middlewares --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tsedio/tsed.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/tsed/skills/tsed-middlewares .opencode/skills/tsed-middlewares && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tsed-middlewares" agent skill from https://github.com/tsedio/tsed/tree/production/plugins/tsed/skills/tsed-middlewares into .opencode/skills/tsed-middlewares/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsed-middlewares", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tsed-middlewaresAdd cross-cutting request logic to a Ts.ED v8 application with middlewares, auth guards, interceptors and pipes.
Tsed Middlewares is an agent skill from tsedio/tsed. Add cross-cutting request logic to a Ts.ED v8 application with middlewares, auth guards, interceptors and pipes. Use when writing a @Middleware class, registering global Express/Koa/Fastify middlewares through the middlewares configuration or $beforeRoutesInit, applying @UseBefore/@Use/@UseAfter/@UseBeforeEach, building a custom auth decorator with @UseAuth and useDecorators, wrapping service methods with @Interceptor/@Intercept, transforming a parameter with @UsePipe, caching with @UseCache, or when the error…
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Backend & APIs, covering Caching. It works with Fastify. The repository describes itself as: :triangularruler: Ts.ED is a Node.js and TypeScript framework on top of Express to write your application with TypeScript (or ES6). It provides a lot of decorators and guideline… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cc5a0da. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
tsed.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tsed Middlewares loads about 2.4k tokens when it runs. Until then it costs about 148 tokens; SKILL.md has 754 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from tsedio/tsed at commit cc5a0da, republished under its MIT licence (© tsedio). 754 words, ~2,427 tokens.
.claude/skills/tsed-middlewares/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Pick the narrowest tool first, then implement it as an injectable class.
| Need | Use | Package |
|---|---|---|
| Run before/after a route with access to request, response and endpoint metadata (auth, headers, tenant) | Middleware | @tsed/platform-middlewares |
| Wrap any injectable method: timing, retry, fallback, caching, transactions | Interceptor | @tsed/di |
| Transform or validate one handler parameter (id to entity, parsing) | Pipe | @tsed/platform-params, @tsed/schema |
React to application or request lifecycle ($onRequest, $onResponse, $onReady) | Hook | see tsed-di, https://tsed.dev/docs/hooks.md |
| Change the shape of every response or error | Response filter / exception filter | see tsed-exceptions |
Never import from @tsed/common.
import {Unauthorized} from "@tsed/exceptions";
import {Middleware, type MiddlewareMethods} from "@tsed/platform-middlewares";
import {Context} from "@tsed/platform-params";
@Middleware()
export class ApiKeyMiddleware implements MiddlewareMethods {
use(@Context() $ctx: Context) {
const options = $ctx.endpoint.get(ApiKeyMiddleware) || {};
if ($ctx.request.get("x-api-key") !== options.key) {
throw new Unauthorized("Invalid API key");
}
}
}use(...). Inject what is needed with parameter decorators (@Context(), @HeaderParams(), @QueryParams()); inject services with @Inject() or inject().next(); throw an exception from @tsed/exceptions to stop the request.$ctx.endpoint.get(MiddlewareClass). This is only available for endpoint-level middlewares, not global ones.$ctx.request / $ctx.response (platform abstractions) so the code stays portable across Express, Koa and Fastify.@UseBefore(M): before the handler. @Use(M): just before the handler, after @UseBefore. @UseAfter(M): after the handler when it returned no data.@UseBefore runs once for the controller; @UseBeforeEach(M) runs before each of its endpoints.@tsed/platform-middlewares.@UseBefore, controller @UseBeforeEach, endpoint @UseBefore, controller @Use, endpoint @Use, handler, endpoint @UseAfter, send response. Once a handler returns data the response is sent and later @UseAfter and global middlewares are skipped.@UseAfter for post-processing.@Err(), four-argument functions); use exception filters (tsed-exceptions).import {Env} from "@tsed/core";
import {Configuration} from "@tsed/di";
import compression from "compression";
import helmet from "helmet";
import {RequestIdMiddleware} from "./middlewares/RequestIdMiddleware.js";
@Configuration({
middlewares: [
{use: helmet(), hook: "$afterInit"},
"json-parser",
{use: "urlencoded-parser", options: {extended: true}},
{use: compression(), env: Env.PROD},
RequestIdMiddleware
]
})
export class Server {}{use, hook?, env?, options?}. Default hook: $beforeRoutesInit.json-parser, urlencoded-parser, text-parser, raw-parser. Any other string is imported as a module and called with options.$beforeRoutesInit or later. On $beforeInit, $onInit or $afterInit only raw framework middlewares are accepted and a class throws at startup.PlatformApplication from @tsed/platform-http in the server and call this.app.use(M) inside $beforeRoutesInit() or $afterRoutesInit(). Hook registrations run before the middlewares list.import {useDecorators} from "@tsed/core";
import {UseAuth} from "@tsed/platform-middlewares";
import {In, Returns, Security} from "@tsed/schema";
import {AuthMiddleware} from "../middlewares/AuthMiddleware.js";
export function Auth(options: {role?: string; scopes?: string[]} = {}): Function {
return useDecorators(
UseAuth(AuthMiddleware, options),
Security("oauth", ...(options.scopes || [])),
In("header").Name("Authorization").Type(String).Required(true),
Returns(401),
Returns(403)
);
}UseAuth(Guard, options) adds the guard as @UseBefore once and merges options into the endpoint store. Read them with $ctx.endpoint.get(AuthMiddleware).Unauthorized for missing or invalid credentials and Forbidden for insufficient rights.Security name must match a security scheme declared in the OpenAPI configuration (tsed-openapi). Passport and OIDC: https://tsed.dev/docs/authentication.md.import {Interceptor, type InterceptorContext, type InterceptorMethods, type InterceptorNext} from "@tsed/di";
@Interceptor()
export class TimingInterceptor implements InterceptorMethods {
async intercept(context: InterceptorContext, next: InterceptorNext) {
const start = Date.now();
const result = await next();
console.log(String(context.propertyKey), Date.now() - start, context.options);
return result;
}
}@Intercept(TimingInterceptor, options) from @tsed/di on a method, or on a class to wrap all its methods. Works on services and controllers.context exposes target, propertyKey, args, options. Always return the result of next(), or a fallback value.@UseInterceptor decorator (a doc snippet mentions it by mistake).@UseCache() from @tsed/platform-cache is a ready-made interceptor (GET endpoints and service methods). Setup: https://tsed.dev/docs/cache.md.import {Injectable} from "@tsed/di";
import {NotFound} from "@tsed/exceptions";
import type {JsonParameterStore, PipeMethods} from "@tsed/schema";
@Injectable()
export class UserPipe implements PipeMethods<string, Promise<User>> {
async transform(id: string, metadata: JsonParameterStore) {
const user = await findUser(id);
if (!user) throw new NotFound("User not found");
return user;
}
}@RawPathParams("id") @UsePipe(UserPipe) user: User (both from @tsed/platform-params). Use the Raw* decorator when the pipe returns an object, otherwise the built-in deserializer and validator also run on the raw value.useDecorators(RawPathParams(expression), UsePipe(UserPipe, options)); read options with metadata.store.get(UserPipe). When a pipe throws, the handler is not called and the error goes to the exception filters.hook: "$afterInit": startup error. Remove the hook or use $beforeRoutesInit.$ctx.endpoint is undefined in a global middleware: the route is not resolved yet. Move the logic to @UseBefore.next() and also returning or throwing: double response. Do not inject @Next() in Ts.ED middlewares.json-parser / urlencoded-parser).Raw* parameter decorator.@Middleware(), implements use, throws typed exceptions.$beforeRoutesInit or later.Security, 401 and 403.@tsed/common import; relative imports end with .js.Depth: https://tsed.dev/docs/middlewares.md, https://tsed.dev/docs/interceptors.md, https://tsed.dev/docs/pipes.md, https://tsed.dev/docs/authentication.md, https://tsed.dev/docs/request-context.md.
© tsedio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/tsed/skills/tsed-middlewares of tsedio/tsed.
Open the folder on GitHubat commit cc5a0da
Tsed Middlewares next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tsed Middlewares this skilltsedio/tsed | 3.1k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Nodejs Backend Patternsever-works/ever-works | 162 | 18 repos | ~4k | Automated safety check: Pass | AGPL-3.0 | |
| Stripe Projectsfossasia/eventyay | 1.7k | 5 repos | ~2k | Automated safety check: Notes | Apache-2.0 | |
| FoundatioFoundatioFx/Foundatio | 2.1k | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Wp Block Themesgambitph/Stackable | 351 | 3 repos | ~985 | Automated safety check: Pass | GPL-3.0 | |
| Wp Performancegambitph/Stackable | 351 | 3 repos | ~1.5k | Automated safety check: Pass | GPL-3.0 |
ever-works/ever-works
Build production-ready Node.js backend services with Express/Fastify, implementing middleware patterns, error handling, authentication, database integration, and API design best practices.
fossasia/eventyay
A skill your agent uses when the user wants to provision infrastructure or third-party services using Stripe Projects.
FoundatioFx/Foundatio
A skill your agent uses when working with Foundatio infrastructure abstractions for .NET -- caching, queuing, messaging, file storage, distributed locking, or background jobs.
gambitph/Stackable
A skill your agent uses when developing WordPress block themes: theme.json (global settings/styles), templates and template parts, patterns, style variations, and Site Editor troubleshooting (style…
gambitph/Stackable
A skill your agent uses when investigating or improving WordPress performance (backend-only agent): profiling and measurement (WP-CLI profile/doctor, Server-Timing, Query Monitor via REST headers)…
millionco/expect
Portable Effect patterns for robust promise execution. An agent skill from millionco/expect.
tsedio/tsed
Create a production-ready Ts.ED platform adapter for a new HTTP framework or runtime, such as Hono, Elysia, Bun.serve, or a Node framework.
tsedio/tsed
Scaffolds Ts.ED v8 projects and generates files with the Ts.ED CLI v7, through its MCP server (tools set-workspace, init-project, list-templates, get-template, generate-file) or the tsed binary…
tsedio/tsed
Configure and bootstrap a Ts.ED v8 server - the @Configuration decorator or configuration() on the Server class, PlatformExpress/PlatformKoa/PlatformFastify.bootstrap, server options (mount…
tsedio/tsed
Declare, inject and scope Ts.ED v8 providers and wire lifecycle hooks - @Injectable, @Module, @Controller, @Inject, the functional API (inject, injectMany, lazyInject, constant, refValue…
tsedio/tsed
Locates authoritative Ts.ED v8 documentation and API reference instead of guessing framework APIs.
tsedio/tsed
Configure and use logging in a Ts.ED v8 application with @tsed/logger v8.
Works with
Categories
Add cross-cutting request logic to a Ts.ED v8 application with middlewares, auth guards, interceptors and pipes. Tsed Middlewares is an agent skill from tsedio/tsed.ED v8 application with middlewares, auth guards, interceptors and pipes.
Tsed Middlewares fits situations like: writing a @Middleware class; registering global Express/Koa/Fastify middlewares through the middlewares configuration; $beforeRoutesInit; applying @UseBefore/@Use/@UseAfter/@UseBeforeEach.
Run `npx skills add tsedio/tsed --skill tsed-middlewares -a claude-code`. Or copy the skill folder (plugins/tsed/skills/tsed-middlewares in tsedio/tsed) into .claude/skills/tsed-middlewares in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tsedio/tsed --skill tsed-middlewares -a codex`. Or copy the skill folder (plugins/tsed/skills/tsed-middlewares in tsedio/tsed) into .agents/skills/tsed-middlewares in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tsedio/tsed --skill tsed-middlewares -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tsed-middlewares, .gemini/skills/tsed-middlewares, .github/skills/tsed-middlewares and .opencode/skills/tsed-middlewares in your project.
SKILL.md names no scripts, command-line tools or credentials: Tsed Middlewares is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: tsed.dev. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Tsed Middlewares is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Tsed Middlewares: Nodejs Backend Patterns (ever-works/ever-works, 162 stars), Stripe Projects (fossasia/eventyay, 1.7k stars), Foundatio (FoundatioFx/Foundatio, 2.1k stars) and Wp Block Themes (gambitph/Stackable, 351 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tsedio (a GitHub organization) maintains it in tsedio/tsed, which has 3,088 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 9, 2026.
Source: tsedio/tsed on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.