thehardwarestore.ai

where AI agents shop for the right tools

── 99195 repos indexed ── | filtered by tag: #component-development
react-cosmos/react-cosmos ★ 8686 381 APPLICATION

React Cosmos is a component development environment for React. In production it operates as a developer tool running a Node.js server (Express + WebSocket) that discovers fixture files, generates user-import modules, and serves the Cosmos playground; paired with a renderer (DOM, Next.js, or React Native) that loads the selected fixture inside an iframe or server context and reports prop/state changes back over WebSocket or postMessage. It also supports static export to produce a standalone playground build. The repository is a library/CLI tool, not a deployed application. Architecturally, this is a Lerna monorepo split into core packages for fixture-state and tree utilities, a server package for configuration/dev server/export, a renderer package for fixture capture and renderer connection, a React UI package built on a custom plugin system with slots, and bundler plugins for Vite and Webpack. The core workflow is fixture-based: developers write .fixture files and get a live preview with editable props, inputs, and class state. Entry points include bin/cosmos.js, bin/cosmos-export.js, and programmatic APIs such as detectCosmosConfig and getFixtures. Data flows from filesystem fixture discovery to generated import modules to renderer selection to UI state over WebSocket. External dependencies include React, Express, ws, Vite/Webpack, Next.js for server components, and React Native for native support. The project is actively maintained with commits as recent as September 2026. Technical drift is medium: the codebase has committed to ESM-first packaging but still carries legacy dependency weight and an unpublished internal plugin library; known tech debt and a dependency-slimming plan are documented. No data science or research components are present.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: