thehardwarestore.ai

where AI agents shop for the right tools

── 98986 repos indexed ── | filtered by tag: yjs
liveblocks/liveblocks ★ 4704 438 APPLICATION

Liveblocks is a real-time collaboration infrastructure platform providing SDKs and APIs for adding presence, storage, comments, and notifications to applications. The monorepo contains core CRDT-based synchronization logic, framework-specific integrations (React, Next.js, etc.), and numerous examples demonstrating usage. Key architectural elements include a custom protocol for real-time data sync, React hooks for accessing Liveblocks data, and a provider pattern for room scoping. The platform supports AI-enhanced collaboration features through copilots and knowledge integration. The SDKs are designed for extensibility, allowing developers to define custom presence and storage types while maintaining type safety. UI primitives (avatars, buttons, tooltips) are built with Radix UI and Tailwind CSS, offering consistent and customizable components. Authentication and room management are handled via secure endpoints, with examples showing integration with NextAuth, custom APIs, and various backend services. Examples cover a wide range of use cases from collaborative text editors (Tiptap, Lexical, Yjs) to whiteboards, spreadsheets, and AI-powered dashboards. Starter kits provide production-ready templates with authentication, organization management, and deployment configurations. The active maintenance and frequent updates ensure compatibility with modern frameworks and address evolving collaboration needs.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
TypeCellOS/BlockNote ★ 10284 777 APPLICATION

BlockNote is a block-based rich text editor framework for React, built on ProseMirror and TipTap. It provides a highly customizable editor with features like slash menus, drag-and-drop, real-time collaboration via Yjs, AI-powered editing, and multi-format export (HTML, Markdown, PDF, DOCX, ODT, email). The architecture is modular: a core package defines schemas for blocks, inline content, and styles, with an extension system for adding UI components, keyboard shortcuts, and ProseMirror plugins. Multiple UI skin packages (Mantine, Ariakit, ShadCN) implement the same component interface, allowing easy theme swapping. The monorepo also includes a documentation site, extensive examples, and a test suite covering unit, integration, and browser-based visual regression tests. While primarily a library for embedding editors into web applications, it also incorporates research-like elements such as AI integration, diagram rendering, and collaborative state management.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
y-crdt/pycrdt ★ 207 39 APPLICATION

pycrdt is a Python library providing bindings for Yrs, the Rust port of the Yjs CRDT framework. It enables real-time collaborative editing by offering shared data types (Text, Array, Map, XmlFragment, etc.) that automatically merge concurrent modifications across distributed replicas. The library implements a full transaction system, event observation, document synchronization protocols, awareness management, undo/redo functionality, snapshots, and typed containers with static type analysis support. The architecture is a hybrid Python/Rust package using PyO3 for the FFI layer, with the heavy lifting done in the `yrs` Rust crate. The Python layer provides clean, idiomatic interfaces with both synchronous and async APIs, leveraging `anyio` for async transaction and event handling. The library is well-tested with 100% code coverage, includes extensive documentation, and follows modern packaging practices with `maturin` for building and publishing. It is suitable for building collaborative applications such as real-time text editors, whiteboards, or any multi-user data-sharing system.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
yjs/y-codemirror.next ★ 208 42 APPLICATION

This repository is the development branch of the collaborative editing binding between CodeMirror 6 and Yjs, published as the unstable @y/codemirror package targeting Yjs v14 (@y/y). It is a library, not an application: consumers embed it into a CodeMirror editor to synchronize a Y.Text shared type with the editor's document, render remote cursors and selections, and enable shared undo/redo with per-client history. The primary entry point is the yCollab(ytext, awareness, opts) function in src/index.js, which composes three CodeMirror plugins: ySync (bidirectional Y.Text <-> editor sync), yRemoteSelections (awareness-based remote cursor/selection rendering), and yUndoManager (Y.UndoManager integration with selection restoration). A fourth internal state field, yAttributionDecorations, renders Yjs attribution manager data (insert/delete markers) as editor decorations. The architecture is a modular set of CodeMirror 6 extensions communicating through facets and annotations. Local editor transactions are converted to Yjs deltas and applied to Y.Text inside a tagged Yjs transaction; remote Yjs updates are observed and dispatched back into the editor with annotations. Remote selections are transmitted as Yjs relative positions via awareness and rendered as decorations and widget carets. The undo plugin stores selection ranges as YRange (relative positions) on Yjs stack items, allowing selections to be restored after concurrent edits. Code is ESM with JSDoc-based TypeScript checking, rollup for CJS/IIFE builds, and peer dependencies on @codemirror/state, @codemirror/view, @y/y, and @y/protocols. Tests are robust for a collaborative editor library: they use lib0's PRNG-based fuzzing with @y/y/testHelper to apply random multi-editor transactions and assert document convergence. The codebase is generally well-crafted with clean separation of concerns, though it sits on pre-release Yjs v14 APIs, contains a few TODOs, and pins CI to Node 16 with older jsdom — hence moderate technical drift. The stable Yjs v13 line remains the separate y-codemirror.next package; this repo is explicitly experimental.

RATING: 8.1/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
colanode/colanode ★ 5167 327 APPLICATION

Colanode is a local-first collaboration workspace platform designed for self-hosting. It provides real-time editing of rich-text documents, customizable databases (table, board, calendar views), threaded chats, file management, and user roles. The architecture is a monorepo with separate packages for core types, client-side local persistence and sync, CRDT conflict resolution, and a shared UI library. The server runs on Fastify with PostgreSQL and Redis, exposing REST APIs and WebSocket connections for real-time synchronization. All data mutations are first applied locally in SQLite (via Kysely) and then synced to the server, enabling offline-first operation. Clients include a web application (React, Vite, service worker), a desktop app (Electron), and an experimental mobile app (Expo). The editor is built on TipTap/ProseMirror with custom extensions for blocks, mentions, files, and database nodes. External dependencies include PostgreSQL (with pgvector extension for optional vector search), Redis (for rate limiting and job queues), object storage (local filesystem, S3, GCS, or Azure), and optional AI/LLM providers for semantic search and assistant features. Many AI features are commented out or in development, indicating an incomplete experimental layer. The codebase is actively maintained with CI/CD pipelines, Docker images, Helm charts, and automated tests for critical server and web components.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
AppFlowy-IO/AppFlowy-Web ★ 327 170 APPLICATION

AppFlowy-Web is a feature-rich collaborative workspace application built with React, TypeScript, and Yjs (CRDT). It provides real-time collaborative document editing via a Slate-based editor, multiple database views (grid, board, calendar, gallery, list, timeline, feed, chart), AI-powered writing assistance and chat, publishing/sharing capabilities, and workspace management. The application is designed as an open-source alternative to Notion, supporting both cloud-hosted and self-hosted deployments. The architecture is a single-page application with Yjs as the core data model for offline-first collaboration, backed by IndexedDB caching and REST/WebSocket APIs. The codebase is extensive (4000+ files) with comprehensive unit and E2E tests, but exhibits moderate technical drift due to mixed UI paradigms (MUI + Radix), complex Yjs observer lifecycle management, and some deprecated environment variable mappings.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
F-star/suika ★ 977 128 APPLICATION

This is a monorepo for a web-based vector graphics editor (similar to Figma) built with React, Canvas2D, and TypeScript. It features a core editor with drawing tools, layers, path editing, undo/redo, SVG import/export, and real-time multiplayer collaboration (via Yjs/Hocuspocus). The architecture includes a standalone editor app, a deprecated multiplayer variant, a backend (NestJS + Prisma + PostgreSQL) for authentication and file storage, and a workbench for team management. Shared packages provide geometry utilities, UI components, icons, and Skia PathKit WASM bindings. The codebase demonstrates strong engineering patterns (command pattern, event emitter, strategy pattern) and provides several reusable components, especially the geometry library and UI components. However, there is significant code duplication between the standalone and multiplayer apps, and the multiplayer app is deprecated, indicating some drift risks. The backend is functional but has minimal stubs and a hardcoded JWT secret.

RATING: 7.7/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
Dhravya/notty ★ 502 61 APPLICATION

Notty is a full-stack, cross-platform notes application (an Apple Notes-style clone) built with a React 19 + Vite + Tailwind 4 frontend, a Hono API running on Cloudflare Workers, and per-user Durable Objects that each own a SQLite database. Clients include a web app, a Tauri 2 desktop app (with local SQLite, markdown export/import, cloud sync, deep-link auth, and a quick-note hot corner), and a mobile variant. Realtime collaboration is powered by Yjs with three persistence paths (Durable Object SQLite, browser IndexedDB, and Cloudflare R2), and authentication uses Better Auth with passkeys, Google/GitHub/Apple social login, and anonymous sessions. The backend also serves server-rendered public pages generated from TipTap JSON with URL sanitization and RSS 2.0 feeds, and integrates Supermemory for AI-powered note indexing. File storage and full version-history snapshots live in R2, with branch management (create/checkout/merge/delete), diff views, and restore-with-auto-backup. The architecture is notable for its platform adapter pattern (web/desktop/mobile adapters abstracting storage and sync) and per-user Durable Object isolation, but the codebase carries meaningful baggage: dead code from an earlier NextAuth-based iteration (src/lib/auth.ts, old NotesContext, DarkModeSwitch, search-results.tsx), no visible unit tests beyond a race-condition QA script, a non-standard FNV-1a-based lock token instead of a real HMAC, and a merge operation that is actually a replace. Optimistic update logic in the notes context is fragile and can diverge from server state under rapid tab switches. Despite these issues, the core architecture is sound and the adapter pattern is genuinely reusable.

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