# Feature catalog — solidjs/solid

> Canonical page: https://codevetter.com/unpack/solid/feature-catalog

# Feature catalog — 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.

Solid's public features center on reactive state, declarative control flow, asynchronous rendering, and lifecycle management. Consumers can use compiled JSX, hyperscript, tagged templates, custom elements, or custom host renderers. The repository also exposes server rendering and static generation, with a small routed example demonstrating Home, Profile, and Settings.
- createSignal returns an accessor and setter, accepts equality customization, and supports updater functions; createMemo exposes a derived accessor with its own comparator. — [packages/solid/src/reactive/signal.ts#L227-261](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L227-L261) [packages/solid/src/reactive/signal.ts#L442-465](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L442-L465)
- createComputed, createRenderEffect, createEffect, and createReaction offer distinct execution and invalidation behavior; batch groups updates and untrack suppresses dependency collection. — [packages/solid/src/reactive/signal.ts#L298-306](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L298-L306) [packages/solid/src/reactive/signal.ts#L329-404](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L329-L404) [packages/solid/src/reactive/signal.ts#L893-915](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L893-L915)
- For maps by item identity with an index accessor, while Index maps by position with an item accessor; both accept fallbacks. — [packages/solid/src/render/flow.ts#L34-79](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L34-L79) [packages/solid/src/reactive/array.ts#L49-60](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/array.ts#L49-L60) [packages/solid/src/reactive/array.ts#L186-198](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/array.ts#L186-L198)
- Show supports keyed and accessor-based children; Switch selects the first matching Match and supports a fallback. — [packages/solid/src/render/flow.ts#L101-148](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L101-L148) [packages/solid/src/render/flow.ts#L167-220](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L167-L220) [packages/solid/src/render/flow.ts#L250-251](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L250-L251)
- createResource exposes state, error, loading, latest, mutate, and refetch, with initialValue, custom storage, SSR loading, and hydration callback options. — [packages/solid/src/reactive/signal.ts#L530-545](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L530-L545) [packages/solid/src/reactive/signal.ts#L626-648](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L626-L648) [packages/solid/src/reactive/signal.ts#L744-768](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L744-L768)
- lazy wraps asynchronous component imports and provides preload; Suspense renders fallbacks while resources are pending, and experimental SuspenseList coordinates reveal order and tail visibility. — [packages/solid/src/render/component.ts#L359-426](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L359-L426) [packages/solid/src/render/Suspense.ts#L30-104](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L30-L104) [packages/solid/src/render/Suspense.ts#L123-141](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L123-L141) [packages/solid/src/render/Suspense.ts#L188-207](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L188-L207)
- ErrorBoundary catches errors from its child scope, supports a fallback callback with reset, and participates in resetErrorBoundaries; createContext/useContext provide owner-scoped values. — [packages/solid/src/render/flow.ts#L254-296](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L254-L296) [packages/solid/src/reactive/signal.ts#L1202-1227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1202-L1227)
- createRoot, onMount, onCleanup, getOwner, and runWithOwner expose lifecycle and scope control; mergeProps and splitProps preserve reactive property access, and createUniqueId uses hydration IDs or a client counter. — [packages/solid/src/reactive/signal.ts#L150-184](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L150-L184) [packages/solid/src/reactive/signal.ts#L1004-1067](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1004-L1067) [packages/solid/src/render/component.ts#L199-232](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L199-L232) [packages/solid/src/render/component.ts#L288-356](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L288-L356)
- createDeferred schedules deferred values, createSelector tracks subscribers by key, and useTransition returns pending state plus startTransition; observable/from bridge subscription-style producers. — [packages/solid/src/reactive/signal.ts#L790-813](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L790-L813) [packages/solid/src/reactive/signal.ts#L842-883](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L842-L883) [packages/solid/src/reactive/signal.ts#L1082-1130](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1082-L1130) [packages/solid/src/reactive/observable.ts#L46-105](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/observable.ts#L46-L105)
- createStore offers path setters and partial merges; createMutable allows proxy writes, reconcile diffs incoming state with an optional key, and produce exposes mutation-style updates. — [packages/solid/store/src/store.ts#L294-343](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L294-L343) [packages/solid/store/src/store.ts#L533-555](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L533-L555) [packages/solid/store/src/mutable.ts#L81-88](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/mutable.ts#L81-L88) [packages/solid/store/src/modifiers.ts#L135-195](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/modifiers.ts#L135-L195)
- Portal mounts content elsewhere in the DOM, optionally in a shadow root; Dynamic/createDynamic render either function components or named DOM elements. — [packages/solid/web/src/index.ts#L69-109](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L69-L109) [packages/solid/web/src/index.ts#L131-170](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L131-L170)
- solid-js/h supplies a hyperscript factory and an optional jsx/jsxs/jsxDEV runtime; solid-js/html supplies tagged templates, with reactive expressions manually wrapped in functions. — [packages/solid/h/src/index.ts#L1-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/h/src/index.ts#L1-L21) [packages/solid/h/jsx-runtime/src/index.ts#L5-14](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/h/jsx-runtime/src/index.ts#L5-L14) [packages/solid/html/src/index.ts#L26-49](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/html/src/index.ts#L26-L49) [packages/solid/html/README.md#L43-64](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/html/README.md#L43-L64)
- solid-element exposes customElement/withSolid and re-exports hot, getCurrentElement, and noShadowDOM; solid-js/universal exposes createRenderer for custom hosts. — [packages/solid-element/src/index.ts#L1-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L1-L12) [packages/solid-element/src/index.ts#L61-82](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L61-L82) [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#L41-96](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/README.md#L41-L96)
- The SSR examples demonstrate renderToString, renderToStringAsync, and renderToStream; solid-ssr/static accepts entry/output/url configurations to generate HTML files. — [packages/solid-ssr/examples/ssr/index.js#L12-20](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssr/index.js#L12-L20) [packages/solid-ssr/examples/async/index.js#L12-20](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/async/index.js#L12-L20) [packages/solid-ssr/examples/stream/index.js#L4-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/stream/index.js#L4-L12) [packages/solid-ssr/static/index.js#L10-25](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/index.js#L10-L25)
- The shared example presents Home, Profile, and Settings tabs, a transition pending class, loading fallbacks, and an error reset button; Profile simulates dependent user and information loads. — [packages/solid-ssr/examples/shared/src/components/App.js#L23-64](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/App.js#L23-L64) [packages/solid-ssr/examples/shared/src/components/Profile/index.js#L5-29](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/Profile/index.js#L5-L29)

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)
