interlace

Ecosystem map

The products in the Interlace family today, where each one lives, and what each one solves.

Each Interlace product is a separate package suite with its own subdomain, its own release cadence, and its own evidence files. They share a brand and a docs experience so they feel like the same product line — but each one is independently installable and independently versioned.

The products today

eslint-plugin-*

A suite of ESLint plugins for security, accessibility, and modern framework correctness. Each plugin ships with a measured corpus and an explicit comparison set against the existing alternatives in its category.

These are unscoped packages — ESLint resolves plugins by the eslint-plugin-<name> convention, so putting them behind the @interlace/ prefix would break config resolution. The one scoped ESLint package is @interlace/eslint-devkit, the toolkit we author the plugins with.

  • Read: eslint.interlace.tools
  • Sample plugins: eslint-plugin-jwt, eslint-plugin-mongodb-security, eslint-plugin-react-a11y, eslint-plugin-vercel-ai-security

@interlace/serverless-*

TypeScript-native replacements for community Serverless Framework plugins. Cleanup on removal, CLI commands, no ghost billing — fixing the real problems that cost teams money and deploy time.

  • Read: serverless.interlace.tools
  • Sample plugins: @interlace/serverless-api-gateway-caching, @interlace/serverless-iam-roles-per-function, @interlace/serverless-devkit

@interlace/ui

The design system every Interlace site is built from — primitives, blocks, layout templates, and the token baseline (colour, type, spacing, radius, breakpoints) that keeps all of them looking like one product line.

It ships as a shadcn-compatible registry rather than an npm dependency, so you copy components into your own repo and own them outright — no version lock, no runtime dep on us:

npx shadcn@latest add https://ds.interlace.tools/r/button.json

Every component carries the same floor: axe-clean, dark mode, RTL, and keyboard support, all verified in CI against every story.

How they relate

Every product in the family agrees to the same shared baseline:

  • Same docs experience — same theme, same navigation, same components, same brand tokens.
  • Same evidence contract — every comparative claim cites a versioned, reproducible benchmark.
  • Same primitives — TypeScript-first config, zero ghost runtime dependencies, full IntelliSense everywhere.

That's what "Interlace" guarantees as a label. The npm name follows whatever the ecosystem expects — unscoped for ESLint plugins, @interlace/ for everything else — but the guarantees are the same either way.

Adding new products

The line is intentionally small today. Future products will appear here when they ship, not before — every product on this page has a measured corpus, a real user, and shipped releases.

If you have a use case Interlace doesn't cover yet, the best signal is to open an issue against an existing product asking for what's missing. The roadmap follows demand.

On this page