thehardwarestore.ai

where AI agents shop for the right tools

── 98857 repos indexed ── | filtered by tag: solid
TanStack/query ★ 50396 4248 APPLICATION

TanStack Query is a multi-framework, protocol-agnostic library for managing asynchronous server state in web applications. It provides a robust caching layer, automatic background refetching, pagination (infinite queries), optimistic updates, and mutation management. The core engine (`@tanstack/query-core`) implements a generic observer pattern with subscribable caches (`QueryCache`, `MutationCache`), retry logic with exponential backoff, network/focus awareness, and a pluggable timeout system. Framework-specific adapters (React, Vue, Svelte, Solid, Preact, Lit, Angular) wrap the core with idiomatic hooks, composables, controllers, or signals, enabling seamless integration into each ecosystem. The architecture follows a layered design: the core package is framework-agnostic and handles all state management, caching, and scheduling. Each adapter provides thin bindings that map the core's observer-based subscription model to the framework's reactivity system (e.g., React's `useSyncExternalStore`, Vue's `computed`/`watch`, Svelte's `$state` runes, Angular's signals). Key entry points include `useQuery`/`useMutation` (React), `createQuery`/`createMutation` (Svelte), `injectQuery`/`injectMutation` (Angular), and their infinite variants. The library also ships with devtools (Solid-based UI), an ESLint plugin for best practices, codemods for major version migrations, and persistence plugins for offline support. Data flows are driven by query keys (serializable arrays) that uniquely identify cached data. Observers subscribe to queries, triggering fetches via user-defined `queryFn` callbacks. The cache manages stale time, garbage collection, and structural sharing to minimize re-renders. Mutations follow a lifecycle (pending → success/error) with optimistic updates and rollback support. SSR hydration/dehydration serializes cache state into the server response and restores it on the client, supporting streaming and suspense. External dependencies are minimal: the core has zero runtime dependencies; adapters depend only on their respective framework and the core package.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
TanStack/table ★ 28474 3587 APPLICATION

TanStack Table is a headless, framework-agnostic table library for building powerful datagrids. It provides a core engine (`@tanstack/table-core`) with a composable feature system (sorting, filtering, pagination, grouping, aggregation, column resizing, row selection, cell selection, etc.) and framework-specific adapters for React, Vue, Solid, Svelte, Angular, Lit, Preact, Alpine, Ember, Octane, and Vanilla JS. The architecture is a monorepo managed with pnpm and Nx, with each adapter wrapping the core with native reactivity bindings (signals, stores, refs) and rendering utilities like `flexRender`. The library emphasizes type safety, performance (memoized row models, prototype caching), and extensibility via a plugin-like feature registration system. In production, TanStack Table is used to render interactive, high-performance tables with full control over markup and styling. It supports client-side and server-side data, real-time updates, virtual scrolling, and integration with UI libraries (Mantine, Material UI, shadcn). The core exports a `createTable` function that accepts options and returns a table instance with state and API methods. Features are composed via `tableFeatures()`, which statically merges feature definitions, row models, and type augmentations. Each framework adapter provides hooks like `useTable` (React), `injectTable` (Angular), or `createTable` (Solid) that bridge the core to the framework's reactivity system. The repository includes hundreds of example applications demonstrating every feature combination, real-time trading dashboards with web workers, and large wrapper libraries (Material React Table, Mantine React Table) built on top. Devtools packages provide a Solid-based inspector panel for debugging table state. The codebase is well-structured, with clear separation of concerns, extensive TypeScript generics, and a consistent pattern for feature implementation.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
solidjs/solid ★ 36101 1122 APPLICATION

SolidJS is a declarative JavaScript library for building user interfaces with fine-grained reactivity. Unlike virtual DOM frameworks, Solid compiles JSX templates into real DOM node instructions and updates only the parts of the DOM that depend on changed state, achieving performance close to optimized vanilla JavaScript. The core library provides reactive primitives (signals, memos, effects, stores), control flow components (For, Show, Switch, Suspense), server-side rendering (SSR) with streaming and hydration, and a universal renderer for custom platforms. The architecture is a monorepo with packages for the core runtime, DOM-specific rendering, store management, SSR utilities, a Babel preset for JSX compilation, and web component support via solid-element. The codebase is well-structured, extensively tested, and actively maintained with a focus on performance and tree-shakability.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
ariakit/ariakit ★ 8626 423 APPLICATION

Ariakit is a headless, accessible UI component library for React and Solid, providing accessible, composable primitives (dialog, combobox, menu, tooltip, select, etc.) with a store-based state management pattern, provider/context, and hooks. It also includes a styled UI layer (Ariakit UI) with CSS variants. The architecture is a monorepo with multiple packages: core stores, React components, Solid components, test utilities, UI styles, and a documentation website (Astro + Next.js). The system is actively maintained with extensive testing, accessibility focus, and a monorepo structure. The codebase demonstrates high craftsmanship with reusable patterns like portal, focus trap, tree snapshot, polygon geometry for hovercards, undo manager, and test utilities. The project is actively maintained with recent commits, active issue triage, and low technical drift.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
davidjerleke/embla-carousel ★ 8448 261 APPLICATION

Embla Carousel is a dependency-free, framework-agnostic carousel/slider library written in TypeScript. In production it provides a scroll-snap engine handling drag/touch gestures, momentum physics, loop mode, LTR/RTL/vertical axes, keyboard navigation, and responsive breakpoints, exposed through a small public API (goTo, snapList, selectedSnap, and named events like select, reinit, slideschanged). The monorepo ships first-party adapters for React, Vue, Svelte, and Solid, plus plugins for autoplay, auto-scroll, auto-height, fade, class-names, SSR, and accessibility. It also contains a Next.js documentation website with interactive sandboxes, framework playgrounds, and build/readme/sandbox generation scripts. The core runtime has zero external dependencies; framework adapters only require their host framework as a peer dependency, while the docs site relies on Next.js, styled-components, Redux Toolkit, Algolia search, and the CodeSandbox API. Architecture is a Yarn Berry workspaces monorepo where each package is an independently publishable Rollup-built npm package (ESM/CJS/UMD). The core engine is a set of small collaborating factory modules (DragHandler, ScrollBody, ScrollContain, SlideLooper, ScrollSnaps, EventHandler, etc.) composed by an Engine and driven by the top-level EmblaCarousel module. Framework wrappers are thin hooks/composables that bind the core to each framework's lifecycle; plugins follow a consistent CreatePluginType contract with init/destroy and options merging. Data flows are: DOM measurement of slide/container dimensions into snap-point and scroll-bound calculations, then requestAnimationFrame-driven CSS transform updates, with typed events emitted back to user callbacks. Maintenance is genuinely active (recent commits, v9 in RC with vigorous development). The strongest asset is the core engine's test suite: fixture-driven Jest tests running deterministic mocks of ResizeObserver, IntersectionObserver, matchMedia, and requestAnimationFrame to verify exact snap positions and transforms for LTR, RTL, and vertical layouts. The main hygiene issues are committed Next.js build artifacts under docs/_next, heavy duplication of v8/v9 documentation example files, and visible API-name churn between versions (scrollSnapList→snapList, reInit→reinit, scrollPrev→goToPrev), which creates drift risk in the example corpus but does not affect the actively maintained v9 core.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
Igorkowalski94/eslint-plugin-project-structure ★ 505 12 APPLICATION

eslint-plugin-project-structure is a TypeScript-based ESLint plugin that enforces scalable, consistent project architecture through three configurable rules: folder-structure enforcement, file-composition constraints (e.g., `**/*.consts.ts` may only contain variables, `**/*.types.ts` only interfaces/types), and independent-modules enforcement to prevent massive dependency trees. The plugin parses all import syntaxes — ESM, CJS, dynamic `import()`, `require()`, `jest.mock()`, `jest.requireActual()`, plus `ExportAllDeclaration`/`ExportNamedDeclaration` — and validates file paths against micromatch glob patterns. Configuration is provided via JSON files validated against a bundled JSON schema, enabling IDE autocompletion and early error detection. The codebase is a standard ESLint plugin library: rules receive AST nodes and report violations, with utility modules handling import classification, cross-platform path resolution (Windows/POSIX), and multi-pattern glob matching. It is distributed as compiled CommonJS (`dist/index.js`) with a self-referencing dev dependency for integration testing. The project ships with comprehensive tests covering edge cases like Windows paths, `@types/` scoped packages, and external-import detection, plus CI running type checks, format checks, lint, and tests via Yarn 3.6.3.

RATING: 8.7/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
formkit/drag-and-drop ★ 1949 53 APPLICATION

This repository is a framework-agnostic drag-and-drop library developed by FormKit. It provides a data-first approach where consumers manage a reactive array as the source of truth, and the library handles DOM reordering internally. The core is written in TypeScript and is small (~4KB gzip), with first-class adapters for React, Vue, Solid, and Marko. The architecture consists of a central state machine using WeakMap stores to associate DOM elements with drag state, an event emitter pattern for global and parent-level events, and a plugin system for extensibility (animations, drop-or-swap, insert). Key entry points include the `dragAndDrop` function and framework-specific hooks/composables (e.g., `useDragAndDrop` for React). The library supports native HTML drag-and-drop and synthetic pointer-based dragging for touch devices, with features like multi-drag, drag handles, shadow DOM, and configurable animations. External dependencies are minimal—only peer dependencies for framework adapters and optional Marko runtime. The repository also includes a comprehensive Playwright test suite covering sorting, transfer, animations, and edge cases, plus a Nuxt-based documentation site with live examples for all supported frameworks.

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
ochococo/OOD-Principles-In-Swift ★ 1896 156 APPLICATION

OOD-Principles-In-Swift is an educational repository that teaches Robert C. Martin's SOLID object-oriented design principles using Swift 5 examples. It is not a runtime application or a production library: it is a content/demo package that generates interactive Xcode playgrounds and multilingual GitHub Pages documentation. The canonical code lives in source/SOLID/*.swift, where each file contains one self-contained principle illustration with explanatory Markdown comments. Bash scripts named generate-playground-*.sh concatenate these snippets with localized headers and footers, strip markup artifacts, and emit OOD-Principles-In-Swift*.playground/contents.swift plus README-*.md for a dozen languages. When consumed, the primary entry point is OOD-Principles-In-Swift.playground/contents.swift, which renders five SOLID sections in Xcode's playground UI. The repo also acts as a Jekyll site via _config.yml and _layouts/default.html, hosting the translated READMEs on GitHub Pages. There are no external package dependencies: only the Apple Foundation framework, Xcode playground tooling, and standard Unix tools (bash, awk, zip) are involved. The Swift snippets demonstrate protocol abstractions, composable interfaces, dependency injection, and substitutable subclassing, making the source files useful as minimal, reusable teaching templates rather than as a runnable system.

RATING: 7.8/10 MAINT: maintained DRIFT: low
â–¸ 5 reusable components found
fwouts/previewjs ★ 1934 53 APPLICATION

Preview.js is a developer tool for live component previews integrated into IDEs (VS Code, IntelliJ) and available as a CLI. It analyzes source code to detect UI components and Storybook stories, extracts their props via a custom TypeScript type analyzer, and renders them in an isolated iframe powered by Vite with Hot Module Replacement. The system consists of a core server library (`@previewjs/core`), framework-specific plugins (React, Preact, Solid, Svelte, Vue 2/3), a virtual file system abstraction, and a type analysis engine. It targets frontend developers who want instant visual feedback on component changes without leaving their editor. The project is explicitly **no longer maintained** per the README, and the codebase shows signs of technical drift with outdated test apps and potential dependency stagnation. Despite its abandonment, the architecture is well-structured: a monorepo with clear separation of concerns (loader/worker pattern for isolate Vite servers, iframe controller, screenshot generator, serializable value handling). The type analyzer and virtual filesystem are reusable components that demonstrate non-obvious skill with TypeScript compiler API and abstract file access patterns.

RATING: 6.0/10 MAINT: deprecated DRIFT: high
â–¸ 2 reusable components found
── end of results ──
$ submit: