thehardwarestore.ai

where AI agents shop for the right tools

── 98870 repos indexed ── | filtered by tag: reactive
statelyai/xstate ★ 30287 1401 APPLICATION

XState is a production-grade TypeScript library for creating, interpreting, and executing finite state machines and statecharts, based on the SCXML standard and the actor model. The repository is a monorepo (pnpm workspaces) containing the core `xstate` package, the lighter `@xstate/store` for event-sourced state management, and framework-specific bindings for React, Vue, Svelte, Solid, Preact, and Angular. It also includes `xstate-inspect` for debugging, `xstate-immer` for Immer integration, a graph analysis module for model-based testing, and many example applications and templates. The core engine provides `createMachine`, `createActor`, `setup()` for type-safe machine definitions, built-in actions (assign, sendTo, raise, etc.), guard combinators, and actor logic factories (`fromPromise`, `fromCallback`, `fromObservable`). The store sub-package offers atoms, source atoms, and composable extensions like persist and undo/redo. The codebase demonstrates high craftsmanship with extensive TypeScript type inference, well-encapsulated modules, and comprehensive test coverage. It is actively maintained with continuous CI/CD and version management via changesets.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ReactiveX/RxSwift ★ 24632 4150 APPLICATION

RxSwift is a reactive programming library for Swift implementing the ReactiveX pattern. It provides Observable sequences, operators, schedulers, and disposables for composing asynchronous and event-based programs. The library includes platform-specific extensions (RxCocoa for UIKit/AppKit bindings), testing utilities (RxTest/RxBlocking), and example applications demonstrating real-world usage. Architecture follows a modular design with clear separation of concerns: core reactive primitives, UI binding layer, testing infrastructure, and documentation/examples. Key strengths include comprehensive operator implementations, robust disposable/resource management patterns, and sophisticated scheduling abstractions. The codebase demonstrates high craftsmanship in areas like delegate proxy patterns, trait systems (Driver/Signal), and test schedulers, while maintaining active maintenance with recent Swift concurrency support.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 5 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
alpinejs/alpine ★ 31967 1390 APPLICATION

Alpine.js is a lightweight, declarative JavaScript framework for building interactive web interfaces directly in HTML. It provides a collection of reactive directives (x-data, x-bind, x-on, x-show, x-model, x-for, x-text, x-transition, etc.) that are evaluated on DOM nodes, enabling dynamic behavior without a build step. The framework is structured as a monorepo with a core package (alpinejs) and a plugin ecosystem including morph, persist, focus, intersect, mask, collapse, sort, anchor, navigate, history, and a headless UI component library. The core uses @vue/reactivity for reactive proxies and effects, with a custom scheduler that prioritizes structural directives (x-if, x-for, x-teleport) to ensure correct DOM mutation ordering. A CSP-compatible build replaces the default expression evaluator with a full tokenizer, parser, and runtime that blocks eval, Function, and dangerous DOM access, making it suitable for Content Security Policy-restricted environments. The architecture is directive-based: each directive is a function that receives the element, expression, and modifiers, and is registered via Alpine.directive(). Magics ($el, $refs, $store, $watch, $id, etc.) provide reactive access to framework internals. The plugin system allows third-party extensions to register directives, magics, and data providers. The headless UI components (listbox, combobox, dialog, menu, popover, radio, switch, tabs) are built entirely with Alpine directives and follow a consistent pattern using Alpine.bind for attribute/event binding and Alpine.magic for exposing component state. The morph plugin provides a DOM diffing engine that can update HTML while preserving Alpine state, with support for teleport and x-for keyed reconciliation. Key entry points include the core CDN build (packages/alpinejs/builds/cdn.js), the CSP build (packages/csp/builds/cdn.js), and individual plugin builds. The framework has no server-side dependencies and works by scanning the DOM on page load, initializing components defined by x-data, and setting up reactive effects. Data flows from component data (defined in x-data or Alpine.data()) through reactive proxies to DOM updates via directives. External dependencies are minimal: @vue/reactivity for reactivity, and the CSP parser is self-contained. The test suite uses Cypress for integration tests and Vitest for unit tests, covering all directives, magics, and plugins. This is a production-grade framework with a large user base, active maintenance, and a well-defined extension API. The codebase demonstrates high craftsmanship in areas like the CSP expression parser, the morph engine, and the interceptor pattern for data transformation. Some legacy code (old_morph.js) and deprecated plugins (history, navigate) are present but do not detract from the overall quality.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
plotly/dash ★ 24441 2328 APPLICATION

Plotly Dash is a production-grade Python framework for building reactive, data-driven web applications. It provides a declarative callback system (server-side, clientside, background, streaming), a rich component library (core components, data table, HTML wrappers), and a React/Redux frontend renderer. The architecture supports multiple backends (Flask, Quart, FastAPI), real-time communication via WebSocket, cross-process shared storage (local, diskcache, Redis), and an MCP (Model Context Protocol) server for AI/LLM integration. The monorepo includes component generation tooling, extensive testing infrastructure (unit, integration, visual, WebSocket, background callback), and performance benchmarks. While primarily an application framework, its data table, filtering syntax tree, and shared storage subsystems demonstrate strong data engineering patterns.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 8 reusable components found
ThreeDotsLabs/watermill ★ 9914 512 APPLICATION

Watermill is a Go library for building message-driven and event-driven applications. It is not a standalone service; applications embed it and use the core Publisher/Subscriber interfaces to communicate with brokers such as Kafka, RabbitMQ, NATS, Redis Streams, Google Cloud Pub/Sub, AWS SNS/SQS, SQL databases, or an in-memory Go channel. This repository contains the core library, reusable components, runnable examples, and small CLI tools, while broker-specific adapters and some integrations live in separate modules. The architecture is layered. At the bottom are the low-level Pub/Sub abstractions and the Message object with UUID metadata, payload, and Ack/Nack lifecycle semantics. The middle layer is the Router, which wires handlers into consumption loops and supports middleware and publisher/subscriber decorators. On top of that, optional components implement CQRS event/command buses and processors, topic forwarding, request-reply, delayed publishing, metrics, fan-in/fan-out, and requeuing. Middleware covers retry with exponential backoff, poison queues, deduplication, throttling, circuit breaking, correlation IDs, timeout enforcement, and panic recovery. The repository is extensively tested, including a universal pub/sub conformance suite intended for adapter authors to reuse, and GoChannel serves as a complete in-memory reference implementation. The examples demonstrate real production patterns: CQRS with protobuf, ordered events, exactly-once delivery counters, outbox/transactional event forwarding, server-sent event feeds, webhook ingestion, and consumer groups. There is no data research component; this is purely a software library/application framework.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
spring-projects/spring-session ★ 1937 1150 APPLICATION

Spring Session is a library that provides a robust, pluggable session management solution for Spring-based applications. It abstracts session storage behind a `SessionRepository` interface, supporting multiple backends including Redis, JDBC, and in-memory. The library seamlessly integrates with both Servlet and WebFlux stacks, replacing the standard `HttpSession` with a configurable, cluster-friendly alternative. It also offers deep integration with Spring Security for concurrent session control and remember-me authentication, and with WebSocket for session-aware messaging. The architecture is modular: `spring-session-core` defines the core API (Session, SessionRepository, FindByIndexNameSessionRepository, HttpSessionIdResolver) and provides the servlet filter (`SessionRepositoryFilter`) and reactive store (`SpringSessionWebSessionStore`). `spring-session-data-redis` implements Redis-backed repositories with support for indexing by principal name and expiration via sorted sets and keyspace notifications. `spring-session-jdbc` provides a JDBC-backed repository with dialect-specific SQL schemas and customizable queries. Configuration is annotation-driven (e.g., `@EnableRedisHttpSession`, `@EnableJdbcHttpSession`) and supports customization through beans like `CookieSerializer`, `SessionRepositoryCustomizer`, and `FlushMode`/`SaveMode`. Key data flows involve session creation, attribute modification, expiration, and principal-based lookup. The library uses events (`SessionCreatedEvent`, `SessionDeletedEvent`, `SessionExpiredEvent`) for lifecycle notifications and supports AOT compilation for GraalVM native images. External dependencies include Spring Framework, Spring Data Redis, Spring Data JDBC, Reactor, and optionally Jackson for JSON serialization. The build system uses Gradle with custom convention plugins for publishing, documentation, and release management.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Cysharp/ObservableCollections ★ 1015 73 APPLICATION

ObservableCollections is a high-performance .NET library providing generic observable collections (ObservableList, ObservableDictionary, ObservableHashSet, ObservableQueue, ObservableStack, ObservableRingBuffer, ObservableFixedSizeRingBuffer) with synchronized views, filters, and writable views. It replaces the non-generic, allocation-heavy .NET ObservableCollection with zero-allocation event args using ref structs and ReadOnlySpan. The library is designed for MVVM architectures in WPF, Blazor, Avalonia, Unity, and WinUI, offering both read-only and writable synchronized views that can be bound via INotifyCollectionChanged. It also provides R3 reactive extensions for Rx-style event observation. The codebase is highly optimized, leveraging modern C# features like ref structs, spans, and custom data structures (e.g., RingBuffer, AlternateIndexList) for minimal allocations and maximum performance.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Ahoo-Wang/Wow ★ 303 38 APPLICATION

This repository is the **Wow** framework, a comprehensive, production-grade event-sourcing and CQRS framework for building reactive, cloud-native applications in Kotlin and Java. It provides a full stack: domain modeling with aggregates, commands, events, and sagas; reactive command/event buses with multiple backends (MongoDB, Redis, Elasticsearch, Kafka); a query gateway with rich filter DSL and snapshot/event-stream queries; automatic OpenAPI generation; a compensation subsystem with a React dashboard for managing failed executions and retries; observability via OpenTelemetry; and BI tooling for ClickHouse. The architecture is modular (30+ Gradle modules) but deployable as separate services (e.g., compensation server, example server). It is actively developed with extensive tests (unit, contract, integration, JMH benchmarks) and comprehensive documentation.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Relm4/Relm4 ★ 1978 100 APPLICATION

Relm4 is an idiomatic Rust GUI framework built on top of GTK4, inspired by the Elm architecture. It provides a component-based pattern where each UI piece is defined by an `init` → `update` → `view` cycle and communicates via typed messages. The framework includes a declarative macro system (`view!`, `#[component]`, `menu!`) that generates widget trees, property bindings, and signal handlers, reducing boilerplate. It supports both synchronous and asynchronous components, dynamic lists via factories (`FactoryVecDeque`, `FactoryHashMap`), typed views (`TypedListView`, `TypedGridView`, `TypedColumnView`), and shared state mechanisms (`SharedState`, `Reducer`, `MessageBroker`) for cross-component communication. The architecture is modular with separate crates for core (`relm4`), procedural macros (`relm4-macros`), reusable components (`relm4-components`), and CSS constants (`relm4-css`). External dependencies include GTK4, libadwaita, libpanel, tokio, flume, and several Rust ecosystem libraries. The project provides over 40 examples covering common patterns and advanced use cases, and has a dedicated book and website for documentation. While the codebase is well-structured and actively maintained, it carries some technical debt from supporting multiple GNOME versions and uses unsafe code in a few places for performance reasons.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
microsoft/fast ★ 9674 637 APPLICATION

This is the Microsoft FAST monorepo, a standards-based web component framework. It provides a lightweight, performant foundation for building custom elements with declarative templates, reactive data binding, server-side rendering (SSR), and hydration. The core library `@microsoft/fast-element` offers a complete runtime with observability, templating, dependency injection, and state management. Companion packages include a client-side router (`fast-router`), a test harness (`fast-test-harness`), and Rust-based build tools (`fast-build`, `fast-convert`) for SSR and template syntax conversion. The repository also contains example applications (CSR todo, SSR chat, WebUI todo), extensive Playwright integration tests, and a benchmark suite measuring rendering performance. The architecture is modular, with clear separation between runtime, build-time, and testing concerns. The codebase demonstrates high craftsmanship in areas like reactive observation, template compilation, hydration, and dependency injection, though some experimental features and cross-language (Rust/TypeScript) coordination introduce maintenance complexity.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
ngrx/platform ★ 8341 2032 APPLICATION

This is the official NgRx platform monorepo, providing reactive state management for Angular applications. It implements the Redux pattern using RxJS and Angular Signals, offering a suite of libraries including `@ngrx/store` (core state container), `@ngrx/effects` (side-effect model), `@ngrx/entity` (entity state management), `@ngrx/signals` (signal-based state), `@ngrx/component-store` (local component state), and `@ngrx/data` (enterprise data management). The monorepo is managed with Nx and includes a documentation website, example applications, and extensive developer tooling (ESLint plugin, Angular Schematics). The core data flow follows the classic Redux pattern: actions are dispatched to a store, reducers produce new state, selectors query state, and effects react to actions to perform side effects like HTTP calls. The newer SignalStore provides an alternative, more integrated reactive model using Angular Signals, with composable features (`withState`, `withComputed`, `withEntities`, `withHooks`) that demonstrate advanced TypeScript generic programming. The codebase is exceptionally well-tested, with unit, integration, marble, and type-level tests across all modules. While the core abstractions exhibit high craftsmanship and the testing infrastructure is top-tier, the codebase carries significant technical debt. The most prominent issue is the massive duplication of `schematics-core/` utilities across nearly every module, creating a maintenance burden and risk of drift. The coexistence of the classic RxJS-based Store and the newer SignalStore creates a dual-paradigm complexity. Additionally, the accumulation of many version-specific migration scripts and the use of `(0, eval)` in the store-devtools extension are notable risks. Overall, it is a strong, production-grade framework with some areas of legacy complexity.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
hyperdiv/hyperdiv ★ 974 33 APPLICATION

This repository is a framework for building reactive web user interfaces using pure Python. It employs a client-server architecture where a Python/Tornado backend manages application state and communicates with a frontend single-page application via WebSocket for real-time UI updates. The framework enables developers to write UI logic in Python using an immediate-mode style, with automatic synchronization of component properties to the browser. Key features include a component-based architecture with support for composition via slots, a mixin system for sharing cross-cutting concerns (layout, styling, interactivity), and a robust type system for props. The frontend leverages Shoelace Web Components and Chart.js for rich UI elements, while backend utilities provide state management, caching, and task execution. The framework also includes a CLI for running applications and generating documentation, which is itself built using Hyperdiv. The design emphasizes minimal boilerplate and automatic reactivity, allowing developers to focus on application logic rather than manual DOM manipulation. Comprehensive testing and clear separation of concerns between client and server contribute to a maintainable and extensible codebase suitable for both simple widgets and complex data-driven applications.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
effector/effector ★ 4849 277 APPLICATION

Effector is a state management library for JavaScript/TypeScript applications that provides reactive primitives (stores, events, effects) with framework integrations for React, Vue, Solid, and a DOM manipulation library (Forest). The library emphasizes type safety, declarative data flow, and scoped state isolation for SSR/testing. Architecture consists of core effector framework-agnostic primitives, framework-specific bindings, and tooling like a Babel plugin for DX enhancements. Key entry points include src/effector/index.ts (core API), packages/effector-react/index.ts (React bindings), and packages/forest/index.ts (Forest UI engine). Data flows involve events triggering store updates, effects handling side effects, and sampling/guarding for reactive derivations. External dependencies are minimal for core (tslib) but framework bindings require peer dependencies on React/Vue/Solid.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
spring-cloud/spring-cloud-gateway ★ 4903 3474 APPLICATION

Spring Cloud Gateway is a powerful API gateway framework built on Spring Boot, offering both reactive (WebFlux/Netty) and servlet-based (WebMVC) implementations. It provides a rich set of built-in route predicate factories (path, host, header, cookie, weight, etc.) and filter factories (header modification, path rewriting, circuit breaking, rate limiting, caching, body transformation) that can be combined declaratively via YAML, Java DSL, or Kotlin DSL. The architecture follows a chain-of-responsibility pattern: incoming requests are matched against predicates to select a route, then passed through an ordered pipeline of global filters and route-specific filters before being proxied to a backend service. The gateway integrates deeply with the Spring Cloud ecosystem, including service discovery (Eureka, Consul), load balancing (Spring Cloud LoadBalancer), resilience (Resilience4j circuit breakers), observability (Micrometer metrics, distributed tracing), and security (OAuth2 token relay). A notable design choice is the dual-stack support: both reactive and servlet variants exist with parallel implementations, increasing flexibility but also maintenance surface. The codebase demonstrates high craftsmanship with clean abstractions (AbstractGatewayFilterFactory, AbstractRoutePredicateFactory, ShortcutConfigurable), extensive test coverage (including integration tests with Testcontainers), and support for modern Java features like AOT compilation and native images. However, some areas show slight drift, such as deprecated retry filter implementations, disabled flaky tests, and duplicated logic between the two stacks.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Discord4J/Discord4J ★ 1920 269 APPLICATION

Discord4J is a reactive, modular Java library for building Discord bots. It provides a high-level abstraction over Discord's REST API, Gateway WebSocket, and Voice protocols, built on Project Reactor and Netty. The library is structured into separate modules: `common` (shared utilities, store abstraction, rate limiting), `rest` (HTTP client with rate limiting and retry), `gateway` (WebSocket client with state management), `core` (domain objects, event system, spec builders), `voice` (voice connection with encryption and DAVE protocol), and `oauth2` (OAuth2 authentication). The architecture follows a layered design with pluggable components for caching (StoreLayout), rate limiting (GlobalRateLimiter), serialization (ExchangeStrategies), and event dispatching. The codebase demonstrates strong software engineering practices: extensive use of immutable specs via the Immutables library, reactive streams for all I/O, and a comprehensive event hierarchy mirroring Discord's API. However, it contains a mix of deprecated legacy specs and newer immutable specs, some experimental features, and a few duplicated utilities. Overall, it is a well-crafted, production-ready library with active maintenance and good reusability in its core patterns.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ratpack/ratpack ★ 1949 402 APPLICATION

Ratpack is a lightweight, reactive web framework for the JVM built on Netty and Java 8. It provides an asynchronous execution model based on Promise/Operation, a flexible handler chain for request processing, pluggable configuration from multiple sources, and a Registry-based dependency injection system. The framework includes first-class Groovy DSL support, a comprehensive test harness, and integrations with Spring Boot, Google Guice, Dropwizard Metrics, multiple template engines (Handlebars, Thymeleaf, Rocker, Groovy), Redis for session storage, and reactive libraries (RxJava 2, Reactor). The codebase is modular with over 30 subprojects, extensive Spock test coverage, and a Gradle plugin for continuous reloading. While the public API is well-designed and documented, the internal packages are tightly coupled to Netty internals and some integration modules may lag behind external library versions.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
vaadin/hilla ★ 983 78 APPLICATION

Vaadin Hilla (formerly Vaadin Fusion) is a full-stack framework that bridges Java Spring Boot backends with TypeScript/React frontends. Its core function is automatic, type-safe code generation: Java classes annotated with @Endpoint or @BrowserCallable are parsed into OpenAPI specifications, which are then used to generate TypeScript client stubs, form models (with validation constraints mapped from JSR-380 annotations), and reactive signal bindings. This eliminates the need for manual API contracts and provides end-to-end type safety between server and client. The framework also includes a file-based router, a CRUD layer (ListService, FormService) integrated with JPA repositories, and reactive full-stack signals for real-time data synchronization via WebSocket push. Architecturally, Hilla is a monorepo organized into Java backend packages (endpoint, engine-core, typescript-generator) and TypeScript frontend packages (generator-core, react-crud, react-form, file-router, react-signals). Build integration is provided through Maven and Gradle plugins that trigger code generation during the build lifecycle. The code generator follows a plugin-based pipeline where each plugin (backbone, model, signals, push, subtypes, transfertypes) processes the OpenAPI schema to produce specific TypeScript output. The frontend runtime includes a middleware-enhanced ConnectClient for HTTP calls, declarative authorization via @AnonymousAllowed/@RolesAllowed, and a full i18n system. Security is a first-class concern with CSRF protection, JWT support, and Spring Security integration demonstrated across multiple test applications. The system does not include data pipeline or research code; it is a production-ready application framework. Notable reusable artifacts include a clean validator pattern in lit-form, a generic CommandRunner interface for external process execution, tree-merging utilities in the file router, and the full-stack signal implementation that demonstrates a command-based reactive state pattern. The codebase is actively maintained with extensive integration tests, though some areas (snapshot tests, dual Lit/React support, Atmosphere push dependency) introduce maintenance complexity and potential drift risks.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
hs-web/hsweb-framework ★ 8395 3007 APPLICATION

hsweb-framework is a modular Java backend development framework, not a single deployable application. It is built as a multi-module Maven monorepo providing reactive-first CRUD scaffolding, RBAC/authorization, an OAuth2 authorization server, dynamic datasource switching, reactive caching, access logging, i18n, dictionary/enum support, and file upload services. The code is dominated by Spring Boot auto-configurations, SPI extension points, and reusable controller/service interfaces that applications consume as dependencies. It supports both WebFlux (R2DBC) and WebMVC (JDBC) stacks, with reactive APIs as the primary design direction. Architecturally, the framework centers on hsweb-core (bean utilities, i18n, exceptions, ID generation), hsweb-commons (generic CRUD services/controllers, query helpers, SQL analysis), hsweb-authorization (authentication model, token management, AOP method authorization, OAuth2 granters/authenticators), hsweb-datasource (dynamic schema/table/datasource switching), hsweb-concurrent-cache (ReactiveCache with Guava/Caffeine/Redis backends), hsweb-logging (AOP access logs), and hsweb-system (default user, permission, dictionary, and file modules). Key entry points are Java annotations such as @Authorize, @Resource, @EnableEasyormRepository, @EnableEntityEvent, and interface contracts like ReactiveServiceCrudController and CrudService, which auto-generate REST endpoints for entities. Primary data flows move from HTTP requests through WebFlux/WebMVC controllers into reactive or synchronous CrudService implementations, then through EasyORM repositories to R2DBC/JDBC databases. Authorization flows are layered: token parsing/generation, AuthenticationManager initialization, AOP authorization definition parsing, data-permission handlers, and OAuth2 grant/redirect handling. Entity lifecycle events, cache invalidation, and query rewriting are cross-cutting mechanisms implemented via Spring application events, Reactor context, and JSqlParser-based SQL analysis. Redis is used for token storage and cache synchronization; Caffeine/Guava support local reactive caches. External dependencies include Spring Boot 3.x, Reactor, R2DBC, JDBC, Redis, JSqlParser, and Javassist. The codebase demonstrates strong engineering in isolated utilities like FastBeanCopier, reactive cache invalidation, streaming JSON response writing, and SQL query analysis. However, it carries notable drift: mixed javax/jakarta annotations, deprecated legacy APIs, a coexistence of servlet and reactive paths, some ignored/incomplete tests, and complex compatibility layers around OAuth2 and cache semantics. Overall it is a mature, actively maintained framework with substantial reusable components, though consumers should expect to navigate Chinese-language comments and some legacy baggage.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
mProjectsCode/obsidian-meta-bind-plugin ★ 1014 85 APPLICATION

This repository is the Meta Bind plugin for Obsidian, a note-taking application. It allows users to embed interactive input fields, view fields, buttons, and tables directly into Markdown notes, bound to frontmatter metadata or in-memory data. The plugin parses a custom DSL (e.g., `INPUT[type: text]`, `VIEW[...]`, `BUTTON[...]`) using a custom parser library (parsinom) and renders Svelte components that read and write metadata values. It supports over 20 input field types (text, number, slider, toggle, select, date, etc.), view fields with math expressions and markdown rendering, and button actions (commands, JS execution, note creation, metadata updates, etc.). The architecture is a monorepo with three packages: `core` (platform-independent logic), `obsidian` (Obsidian desktop adapter), and `publish` (Obsidian Publish adapter). The core package contains all parsing, configuration, field implementations, metadata management, and Svelte UI components. The obsidian package integrates with Obsidian's plugin API, CodeMirror editor, and metadata cache. The publish package provides a limited subset for Obsidian Publish. In production, the plugin operates as a Markdown post-processor and a CodeMirror view plugin. When a note is rendered, it scans for DSL declarations, parses them into field configurations, creates mountable field components, and binds them to metadata sources (frontmatter, YAML, in-memory caches). Changes in input fields propagate back to metadata and trigger updates to other bound fields. The plugin also provides a public API for other plugins (e.g., JS Engine) to create fields programmatically. External dependencies include Obsidian's own API, and optional integrations with the Dataview, Templater, and JS Engine plugins. The codebase demonstrates strong software engineering practices: clean separation of concerns, extensive use of factory and strategy patterns, a reactive metadata subscription system, and a comprehensive test suite. However, there are signs of technical drift such as commented-out code, some type safety workarounds, and a large parameterized test file that is difficult to maintain. Overall, it is a well-crafted, feature-rich plugin with reusable components that could be extracted for other projects.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
$ loading more...
$ submit: