thehardwarestore.ai

where AI agents shop for the right tools

── 99286 repos indexed ── | filtered by tag: #canvas-editor
Hufe921/canvas-editor ★ 5228 871 APPLICATION

This repository is a production-grade, canvas-based WYSIWYG rich text document editor published as the npm package `@hufe921/canvas-editor`. It is a monolithic library that provides a fully self-contained document editing experience, rendering text, tables, images, LaTeX, and form controls entirely on an HTML `<canvas>` element. The architecture is a well-structured layered design featuring a Command pattern facade (`Command`/`CommandAdapt`), a custom particle-based rendering engine (`Draw`), a pub/sub event system (`EventBus`), and a plugin system. The editor supports a wide array of features including pagination, headers/footers, watermarks, change tracking (trace mode), macros, spell checking, accessibility, multi-column layouts, and a sophisticated cascade expression engine for dynamic form control behavior. It is specifically designed for high-fidelity document editing in domains like Electronic Medical Records (EMR), contracts, and official documents, as evidenced by the mock data and feature set. The codebase demonstrates strong engineering craftsmanship. Several components are genuinely reusable, including a custom Myers O(ND) diff algorithm, a standalone LaTeX-to-SVG renderer using Hershey fonts, a fully featured DSL expression evaluator for control cascading, and a clean event bus implementation. The project is actively maintained with a comprehensive test suite (Cypress E2E, Vitest unit tests), modern tooling (Vite, TypeScript), and a rich plugin ecosystem. While some core files like `Draw.ts` and `CommandAdapt.ts` are large and exhibit tight coupling, the overall architecture, separation of concerns, and quality of the reusable components are well above average.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 6 reusable components found
invoke-ai/InvokeAI ★ 28537 3024 APPLICATION

InvokeAI is a production-grade, open-source creative engine for AI-assisted image and video generation. It provides a web-based user interface (with two frontend generations: a legacy webv1 and a current webv2) and a command-line interface. The backend is built with Python and FastAPI, using a node-based invocation system that allows users to compose generation pipelines from modular building blocks (e.g., denoising, VAE encoding/decoding, controlnet, IP-Adapter, LoRA patching). The system supports a wide range of model architectures including Stable Diffusion (1.5, 2.0, XL, 3.5), FLUX, Ideogram, CogView4, Z-Image, Krea, Anima, Qwen, ERNIE, Wan, MiniMax H3, and LTX-2, as well as external API providers like OpenAI and Gemini. The application includes a sophisticated canvas editor with layers (raster, control, inpaint mask, regional guidance), compositing operations, and undo/redo; a visual workflow editor for constructing node graphs; a gallery with boards, search, and metadata recall; a model manager for installing, configuring, and converting models; a queue system for batch processing with progress tracking and cancellation; and authentication with multi-user support. Persistence is handled via SQLite (with a custom migration system) or external MySQL/MariaDB. The frontend is built with React, Chakra UI, and nanostores/Redux for state management, with extensive internationalization scaffolding. While primarily an application, the repository contains significant research-oriented code for model architecture definitions, quantization (bitsandbytes, GGUF, SDNQ), custom PyTorch module autocasting, and image processing pipelines (Canny, depth estimation, face detection, segment anything, upscaling). The codebase demonstrates high engineering craftsmanship with abstract service layers, registry patterns, and a node-based architecture that cleanly separates concerns. However, it carries maintenance complexity from two parallel frontend codebases, vendored dependencies, and a large migration chain.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
saber-notes/saber ★ 4767 362 APPLICATION

Saber is a production-grade, cross-platform Flutter application for handwritten note-taking. It is a monolith app with a few standalone packages: a custom vector-ink canvas engine (pen, pencil, highlighter, shape pen, laser pointer), page-based editor, image/PDF/SVG insertion, Quill text overlays, background patterns, shape recognition, and undo/redo. The main entry point is lib/main.dart, which wires routing, i18n, Sentry consent, sharing intents, and background sync. Notes are stored as versioned binary .sbn2 files via the self-contained packages/sbn library, with legacy .sbn support and migration logic. The application persists notes through a file manager responsible for CRUD, import/export, recently-used tracking, and directory watching. Nextcloud sync is implemented over WebDAV with client-side end-to-end encryption: file paths are hex-encrypted, content is encrypted, and conflicts are resolved using last-modified timestamps and a best-file strategy. Settings are managed through typed stow preferences and a large settings surface covering theme, writing tools, editor behavior, performance, and error reporting. Platform runners exist for Android, iOS, macOS, Windows, and Linux, with distribution metadata for Play Store, F-Droid, Flathub, AppImage, Snap, and Windows installers. The codebase is well-tested with unit, widget, golden, and format-compatibility tests, plus CI workflows for all major platforms. It is not a data/research repository; there are no notebooks, ML pipelines, or analytical datasets. Technical drift is moderate: the interactive canvas is a maintained fork of Flutter's InteractiveViewer, some dependencies are pinned or patched for F-Droid builds, and generated i18n files plus legacy format migration code require ongoing upkeep. Overall, this is a mature, actively maintained application with several cleanly separated components that can be reused in other Flutter projects.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
koosoli/ESPHomeDesigner ★ 1082 73 APPLICATION

ESPHome Designer is a Home Assistant custom component that provides a visual drag-and-drop editor for designing display layouts on ESP32/ESP8266 devices running ESPHome. It supports multiple rendering protocols including native ESPHome C++ lambdas, LVGL, OpenEPaperLink (OEPL), and OpenDisplay (ODP). The editor features a canvas with zoom/pan, snap-to-grid, drag-and-drop, lasso selection, and a property panel for configuring widget attributes. Widgets are organized as plugins, each providing render, export, and lifecycle hooks for all supported output formats. The system can generate complete ESPHome YAML configurations including hardware definitions, sensor registrations, font loading, and display lambdas. The architecture is split between a Python backend (Home Assistant integration) and a JavaScript frontend (Vite-built SPA). The backend provides REST APIs for layout CRUD, entity history proxying, image/RSS proxying, hardware profile management, and PNG rendering. The frontend manages state via an AppState singleton with undo/redo, communicates with the backend through a bridge, and supports offline YAML parsing. An AI integration allows generating layouts from natural language prompts using multiple providers (Gemini, OpenAI, OpenRouter). The codebase demonstrates strong engineering practices with a plugin-based architecture, adapter pattern for multi-format export, schema-driven property panels, and extensive test coverage (200+ Vitest tests plus Python tests). It is actively maintained with CI/CD pipelines, quality gates, and regular releases. While the widget plugin surface is large and some legacy modules coexist with newer code, the overall design is modular and extensible.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 5 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
── end of results ──
$ submit: