# Extension points — solidjs/solid

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

# Extension points — solidjs/solid

Scanned commit b25c557754f2ced0d86490e6dbfded9b1745b663 (2026-09-04). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Extension primarily happens through factory callbacks, renderer host operations, scoped providers, and compiler options. Development hooks expose graph and store updates, while external-source factories connect other reactive systems. Packaging and examples also contain explicit lists that must be extended when adding a new public entrypoint or sample route.
- createRenderer accepts RendererOptions<NodeType>, delegates to the expression renderer, and replaces its mergeProps with Solid's implementation; documented host operations include node creation, insertion, removal, traversal, and property assignment. — [packages/solid/universal/src/index.ts#L1-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/src/index.ts#L1-L11) [packages/solid/universal/README.md#L62-96](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/README.md#L62-L96)
- The Babel preset merges caller options over default moduleName, builtIns, contextToCustomElements, wrapConditionals, and generate; custom-renderer documentation sets generate:universal and a host moduleName. — [packages/babel-preset-solid/index.js#L3-27](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/babel-preset-solid/index.js#L3-L27) [packages/solid/universal/README.md#L9-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/README.md#L9-L21)
- enableExternalSource accepts a tracking/disposal factory and optional untrack function; repeated registrations compose factories and dispose both layers. — [packages/solid/src/reactive/signal.ts#L129-137](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L129-L137) [packages/solid/src/reactive/signal.ts#L1276-1298](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1276-L1298)
- enableScheduling accepts a custom scheduler, with requestCallback as the default; createDeferred routes delayed propagation through requestCallback. — [packages/solid/src/reactive/signal.ts#L1070-1073](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1070-L1073) [packages/solid/src/reactive/signal.ts#L790-809](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L790-L809)
- createResource accepts consumer fetchers and custom accessor/setter storage, plus SSR-load and onHydrated options, enabling data-source and state-storage adaptation without changing the resource runtime. — [packages/solid/src/reactive/signal.ts#L530-535](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L530-L535) [packages/solid/src/reactive/signal.ts#L598-634](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L598-L634) [packages/solid/src/reactive/signal.ts#L707-719](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L707-L719)
- createContext creates a unique provider key; useContext reads it from Owner.context with a default fallback, giving libraries a scoped service/state injection mechanism. — [packages/solid/src/reactive/signal.ts#L1207-1227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1207-L1227) [packages/solid/src/reactive/signal.ts#L1796-1808](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1796-L1808)
- DEV exposes reactive graph hooks and writeSignal/registerGraph; the store DEV export exposes onStoreNodeUpdate hooks and node inspection helpers. — [packages/solid/src/index.ts#L75-77](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/index.ts#L75-L77) [packages/solid/src/reactive/signal.ts#L63-75](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L63-L75) [packages/solid/store/src/index.ts#L19-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/index.ts#L19-L21) [packages/solid/store/src/store.ts#L11-27](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L11-L27)
- SolidStore.Unwrappable is an open interface whose property values become part of NotWrappable, allowing TypeScript declaration augmentation for excluded store value types. — [packages/solid/store/src/store.ts#L34-46](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L34-L46)
- withSolid adapts component-register component types, and customElement supports either a component alone or a props-definition/component pair for new custom-element registrations. — [packages/solid-element/src/index.ts#L41-58](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L41-L58) [packages/solid-element/src/index.ts#L61-82](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L61-L82)
- New published subpaths require coordinated package exports/files entries and Rollup build targets; declaration scripts also explicitly enumerate generated subpackages. — [packages/solid/package.json#L18-43](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L18-L43) [packages/solid/package.json#L163-205](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L163-L205) [packages/solid/package.json#L214-222](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L214-L222) [packages/solid/rollup.config.js#L175-219](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/rollup.config.js#L175-L219)
- The SSR example's route extension points are App's Link/Match entries and the SSG PAGES list; routing itself exposes RouteHOC, RouterContext, and Link. — [packages/solid-ssr/examples/shared/src/components/App.js#L23-62](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/App.js#L23-L62) [packages/solid-ssr/examples/shared/src/router.js#L25-39](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/router.js#L25-L39) [packages/solid-ssr/examples/ssg/export.js#L5-15](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssg/export.js#L5-L15)
- renderStatic accepts one configuration or an array, and each entry module supplies an async default function returning HTML; this makes the runner reusable with different rendering entrypoints. — [packages/solid-ssr/static/index.js#L22-25](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/index.js#L22-L25) [packages/solid-ssr/static/writeToDisk.js#L4-8](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/writeToDisk.js#L4-L8) [packages/solid-ssr/README.md#L19-28](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/README.md#L19-L28)

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)
