thehardwarestore.ai

where AI agents shop for the right tools

$ show nexu-io/open-design

[account ↗] [repo ↗] APPLICATION ★ 99190 11467 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Open Design is a local-first, open-source design-to-code platform that serves as an alternative to Claude Design. It detects installed coding-agent CLIs (26+ supported), runs design skills against brand-grade DESIGN.md design systems, and streams artifacts (prototypes, decks, images, video, HyperFrames) into a sandboxed preview. The architecture is a monorepo with pnpm workspaces, comprising a Node.js daemon (Express + SQLite), a React/Next.js web SPA, an Electron desktop shell, and an Astro landing page. Core capabilities include a plugin system with 277 official plugins, design system management, AI-powered artifact generation, collaboration (workspace, team resource sharing, presence), critique/theater scoring, media generation, and research integration (Tavily). The daemon acts as a local server that manages projects, conversations, agent runtimes, and SSE event streaming. The web client provides a rich UI for chat, project management, design system browsing, plugin marketplace, and real-time collaboration. The desktop app wraps the web client with native features like folder pickers, deep-link handling, and auto-updater. The codebase demonstrates high craftsmanship with clean abstractions (HTTP adapter pattern, plugin architecture, agent runtime definitions, SWR cache, backoff controller, singleton registries) and extensive test coverage (Vitest unit tests, Playwright e2e). It is actively maintained with a rapid release cadence and modern dependency management.

RATING9.3/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS407
VELOCITY0.85
OPEN ISSUES1164
CLOSED ISSUES1311
LAST COMMIT2 weeks ago
@open-design/components (npm) workspace:*
@open-design/daemon (npm) workspace:*
@open-design/tools-dev (npm) workspace:*
@open-design/tools-pack (npm) workspace:*
@open-design/tools-release (npm) workspace:*
@open-design/tools-serve (npm) workspace:*
@types/node (npm) 20.19.39
tsx (npm) 4.22.3
typescript (npm) 5.9.3
Files by Type (count)
TypeScript
3672
HTML
2474
Markdown
2330
JSON
1866
TSX
1078
CSS
537
Other (.png)
244
Other (no ext)
125
Python
118
Other (.woff2)
106
YAML
102
Other (.mjs)
82
Files by Type (size)
Other (.png)
79MB
TypeScript
51MB
Other (.webp)
24MB
HTML
22MB
Markdown
21MB
TSX
19MB
JSON
13MB
Other (.jpg)
9MB
Other (.mp4)
7MB
Other (.svg)
6MB
CSS
4MB
JavaScript
4MB

The LLM identified 6 files worth highlighting for reuse:

Implements a clean HTTP adapter pattern with InputParser, Handler, and Result<T,E> types for typed route handling. Separates request parsing from business logic and response formatting, enabling type-safe route definitions without framework boilerplate. Reusable in any Node.js HTTP server project.

file: apps/daemon/src/http/adapter.ts ↗ | tags: #http-adapter #typed-routes #result-type

Generic stale-while-revalidate cache with TTL support and invalidation. Provides a simple API for caching async data with background refresh, suitable for any Node.js application needing resilient caching without external dependencies.

file: apps/daemon/src/collab/swr-cache.ts ↗ | tags: #stale-while-revalidate #caching #ttl

Exponential backoff with jitter implementation for retry logic. Used by SSE reconnect and failure-retry scenarios. Clean, well-tested, and easily extractable into any TypeScript project requiring robust retry behavior.

file: apps/web/src/lib/backoff.ts ↗ | tags: #exponential-backoff #jitter #retry

Singleton registry for coordinating concurrent download operations. Manages in-process download state, deduplication, and lifecycle. Demonstrates a clean registry pattern that can be reused for any resource coordination in Node.js.

file: packages/download/src/registry.ts ↗ | tags: #singleton-registry #download-coordination #concurrency

File-based version store with atomic writes and microtask coalescing. Provides versioned storage for team resources with crash-safe writes. The pattern of combining atomic file operations with coalesced updates is reusable for any local persistence need.

file: apps/daemon/src/collab/team-resource-version-store.ts ↗ | tags: #file-based-store #atomic-writes #versioning

Directory lock implementation with timeout, owner PID check, and stale ownership recovery. Ensures exclusive access to packaging resources across processes. The lock pattern with stale recovery is reusable for any cross-process coordination.

file: tools/pack/src/lock.ts ↗ | tags: #directory-lock #file-lock #stale-recovery
Last analyzed: 2026-08-14 14:49:40.194798
Next check: 2026-10-03 01:49:22.400028
$ submit: