# Extension points — QwikDev/qwik

> Canonical page: https://codevetter.com/unpack/qwik/extension-points

# Extension points — QwikDev/qwik

Scanned commit 8eb4589be115eb8f2dabfd12c107dcc23647caec (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Extension mechanisms generally use explicit factories, branded functions, package exports, or declarative metadata. Runtime APIs and serializers connect to an optimizer-aware public boundary, while Router discovers middleware and data functions from route modules. Scaffolding discovers packaged integrations and composes them through a staged update interface. Tooling provides additional named registries for experiments, lint rules, and MCP tools.
- core/index.ts is the public export boundary for components, QRLs, hooks, state primitives, and control-flow helpers; new public APIs must fit this export surface. — [packages/qwik/src/core/index.ts#L9-35](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/index.ts#L9-L35) [packages/qwik/src/core/index.ts#L111-166](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/index.ts#L111-L166) [packages/qwik/src/core/index.ts#L172-185](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/index.ts#L172-L185)
- setPlatform and CorePlatform provide a named platform abstraction, while createQwikPlugin accepts an injected _optimizer before selecting built-in optimizer providers. — [packages/qwik/src/core/index.ts#L41-45](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/index.ts#L41-L45) [packages/qwik-vite/src/plugins/plugin.ts#L168-180](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-vite/src/plugins/plugin.ts#L168-L180)
- ExperimentalFeatures is an explicit registry for compiler-replaced runtime flags, including control-flow primitives, validation, SPA behavior, Insights, and nonblocking loaders. — [packages/qwik-vite/src/plugins/plugin.ts#L74-98](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-vite/src/plugins/plugin.ts#L74-L98)
- routeLoaderQrl produces frozen server_loader functions carrying QRL, validators, ID, serialization strategy, cache-control, ETag, cache-key, search, and blockSSR metadata. — [packages/qwik-router/src/runtime/src/route-loaders.ts#L1097-1123](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-router/src/runtime/src/route-loaders.ts#L1097-L1123)
- routeActionQrl produces frozen server_action functions; resolveRequestHandlers discovers loaders/actions by examining branded exported functions in route modules. — [packages/qwik-router/src/runtime/src/server-functions.ts#L173-180](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-router/src/runtime/src/server-functions.ts#L173-L180) [packages/qwik-router/src/middleware/request-handler/resolve-request-handlers-core.ts#L164-174](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-router/src/middleware/request-handler/resolve-request-handlers-core.ts#L164-L174)
- Route modules extend request execution through onRequest and method-specific onGet/onPost/onPut/onPatch/onDelete/onOptions/onHead handlers, each accepting a function or function array. — [packages/qwik-router/src/middleware/request-handler/resolve-request-handlers-core.ts#L178-227](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-router/src/middleware/request-handler/resolve-request-handlers-core.ts#L178-L227)
- qwikRouter builds a plugin array around router, server-function, and image plugins; ssgAdapter composes the shared viteAdapter with origin and SSG options. — [packages/qwik-router/src/buildtime/vite/plugin.ts#L74-80](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-router/src/buildtime/vite/plugin.ts#L74-L80) [packages/qwik-router/src/adapters/ssg/vite/index.ts#L5-20](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik-router/src/adapters/ssg/vite/index.ts#L5-L20)
- loadIntegrations discovers app, feature, and adapter directories and reads package __qwik__ metadata for display name, documentation, priority, and alwaysInRoot rules. — [packages/qwik/src/cli/utils/integrations.ts#L32-64](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/cli/utils/integrations.ts#L32-L64)
- makeTemplateManager separates standalone templates from base and treats library as a standalone bootstrap; updateApp returns staged updates plus a commit callback. — [packages/create-qwik/src/helpers/templateManager.ts#L25-69](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/create-qwik/src/helpers/templateManager.ts#L25-L69) [packages/qwik/src/cli/add/update-app.ts#L95-102](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/cli/add/update-app.ts#L95-L102)
- Custom serialization APIs include useSerializer$ and createSerializer$; an inspected test supplies serialize/deserialize functions for a custom class. — [packages/qwik/src/core/index.ts#L127-127](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/index.ts#L127-L127) [packages/qwik/src/core/index.ts#L158-165](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/index.ts#L158-L165) [packages/qwik/src/core/shared/serdes/serdes.unit.ts#L1104-1113](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/qwik/src/core/shared/serdes/serdes.unit.ts#L1104-L1113)
- The ESLint plugin uses a rules table with recommended/strict severity maps, while createMcpServer defines tools through a named table of schemas and accepts an external call dispatcher. — [packages/eslint-plugin-qwik/index.ts#L22-77](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/eslint-plugin-qwik/index.ts#L22-L77) [packages/mcp/src/server.ts#L62-88](https://github.com/QwikDev/qwik/blob/8eb4589be115eb8f2dabfd12c107dcc23647caec/packages/mcp/src/server.ts#L62-L88)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
