thehardwarestore.ai

where AI agents shop for the right tools

── 99235 repos indexed ── | filtered by tag: #editor
microsoft/monaco-editor ★ 46812 4137 APPLICATION

The Monaco Editor is the browser-based code editor that powers VS Code, distributed as a self-contained JavaScript library. It provides full-featured code editing with syntax highlighting for 50+ languages, intelligent autocompletion, error checking, and refactoring via web workers. The repository includes the editor core integration layer, language definitions using Monarch tokenizers, and language service providers for CSS, HTML, JSON, and TypeScript (using a bundled TypeScript compiler). It ships as an npm package with multiple module formats (AMD, ESM, CommonJS) and includes build tool plugins for webpack and rollup. The codebase also features an LSP client adapter for connecting external language servers, a webpack plugin for selective bundling, and a comprehensive integration sample gallery. Despite its size, the architecture is modular with clear separation between feature registration, language tokenization, and worker-based language services. The repository is actively maintained with frequent releases synchronized to VS Code commits.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
microsoft/vscode ★ 193342 43983 APPLICATION

This repository is the source code for Visual Studio Code (VS Code), Microsoft's open-source code editor. It is a large, modular Electron application that provides a full-featured editing experience with support for hundreds of languages, debugging, version control, and a rich extension ecosystem. The codebase is organized into core editor components (`src/vs/editor`), a workbench shell (`src/vs/workbench`), platform services (`src/vs/platform`), and built-in extensions (`extensions/`). A Rust-based CLI (`cli/`) handles remote tunneling, authentication, and desktop integration. The repository also includes deep integration with GitHub Copilot, featuring an agent host subsystem, inline completions, chat sessions, and a comprehensive prompt engineering framework using TSX-based prompt elements. The architecture follows a dependency injection pattern with service singletons, event emitters, and disposable lifecycle management. Key entry points include `src/main.ts` (Electron main process), `src/bootstrap-server.ts` (server mode), and `cli/src/bin/code/main.rs` (CLI). External dependencies include Electron, Node.js, various npm packages for language services, and cloud services for Copilot and telemetry.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
godotengine/godot ★ 118062 26921 APPLICATION

This is the Godot Engine, a fully-featured, cross-platform 2D and 3D game engine. The repository contains the complete source code for the engine runtime, the built-in editor, and all supporting modules (rendering, physics, audio, networking, scripting, etc.). The architecture is a monolithic C++ core with a modular plugin system, supporting multiple rendering backends (Vulkan, D3D12, Metal, OpenGL), physics engines (Jolt, GodotPhysics), and scripting languages (GDScript, C# via Mono). The editor is a full-featured IDE built on the engine itself, with scene editors, debugger, asset pipeline, and export system. The codebase is exceptionally well-structured, with clear separation of concerns between core, servers, scene, and platform layers. It demonstrates world-class engineering in real-time graphics, physics simulation, audio processing, and cross-platform abstraction. While the code is tightly coupled to the Godot framework, many individual components (math libraries, spatial data structures, serialization utilities) exhibit high craftsmanship and could be extracted with moderate effort.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
toeverything/AFFiNE ★ 73192 5324 APPLICATION

AFFiNE is a cross-platform, block-based knowledge management application that combines notes, whiteboards, and databases in a local-first, real-time collaborative environment. Built on the BlockSuite editor framework, it features a modular architecture with extensible components, AI-powered capabilities (Copilot), and support for embedding external content. The application consists of a web client, desktop client (Electron), and mobile clients (iOS/Android), backed by a Node.js/NestJS server with Prisma ORM and Rust performance modules. Data is synchronized via Yjs CRDTs with a custom storage layer (nbstore) for offline-first capabilities.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ueberdosis/tiptap ★ 38590 3140 APPLICATION

Tiptap is a headless, framework-agnostic rich text editor built on ProseMirror. It provides a core editor engine with an extension system for nodes, marks, and plugins. The architecture is a monorepo with separate packages for core, framework bindings (React, Vue), HTML/markdown conversion, static rendering, and dozens of first-party extensions. Key entry points are the Editor class, Extension/Node/Mark factories, and framework-specific components like EditorContent and useEditor. Data flows: user input → ProseMirror state → extension hooks → commands → transaction → view update. External dependencies: ProseMirror libraries, Yjs for collaboration, lowlight for code highlighting, Floating UI for popups. The codebase demonstrates high craftsmanship with a well-designed extension API, comprehensive test coverage, and reusable patterns for decoration management, markdown serialization, suggestion autocomplete, and static rendering.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
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
ianstormtaylor/slate ★ 31752 3303 APPLICATION

Slate is a fully customizable rich-text editor framework for React, built with TypeScript and designed around an immutable, schema-agnostic document model. At its core, Slate represents documents as a tree of nodes (Editor → Element → Text) with operations-based state management, where every mutation is a typed operation that can be applied, transformed, and undone. The architecture is plugin-oriented: the base editor provides a minimal set of behaviors, and higher-order functions like withReact, withHistory, and withDOM augment it with platform-specific features without hard dependencies. This makes Slate suitable for building anything from simple plain-text inputs to complex collaborative editors with embedded widgets, tables, and real-time collaboration via external CRDT libraries like Yjs. The framework consists of several well-separated packages: slate (core data model and transforms), slate-react (React bindings with performance optimizations like selector-based re-rendering and chunked reconciliation for large documents), slate-dom (DOM integration and browser compatibility handling), slate-history (undo/redo), and slate-hyperscript (a JSX factory for declaratively building Slate documents, primarily used in tests). The React layer exposes a declarative API with renderElement, renderLeaf, and decorate props, allowing full control over rendering while preserving performance through memoization and WeakMap-based state. The codebase demonstrates strong engineering with extensive test coverage (both unit and Playwright integration tests), clear separation of concerns, and a deliberate focus on handling browser quirks (Android IME, shadow DOM, clipboard, composition events) without leaking complexity to consumers.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
coteditor/CotEditor ★ 8599 541 APPLICATION

CotEditor is a native macOS text editor written in Swift, designed for code editing with syntax highlighting, file management, find/replace, and scripting support. It uses a hybrid AppKit/SwiftUI architecture, with core editing logic in the EditorCore package, syntax parsing in the Syntax package (supporting both regex-based and tree-sitter incremental parsing), and macOS-specific UI controls in the MacUI package. The application follows an MVVM pattern with @Observable models, async task-based background processing, and extensive localization across 19 languages. Key entry points include the DocumentWindow and DocumentViewController for the main editing interface, the SettingsWindow for configuration, and the command-line tool `cot`. Data flows involve file opening with encoding detection, syntax highlighting via incremental parsers, find/replace operations with progress tracking, and remote editing via the rmate protocol. External dependencies include tree-sitter grammars for 20+ languages, Sparkle for updates, and various macOS system APIs. The codebase demonstrates strong engineering practices: modular package design, protocol-oriented interfaces, reactive state management, and comprehensive test coverage. It is actively maintained with frequent releases and security fixes.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 6 reusable components found
JiHong88/suneditor ★ 2010 347 APPLICATION

SunEditor is a fully-featured, vanilla JavaScript WYSIWYG HTML editor library designed for modern browsers. It provides a rich text editing experience with extensive formatting options (inline, block, lists, tables, media embedding), multiple display modes (classic, inline, balloon), and a plugin architecture that supports dropdowns, modals, commands, browsers, and input fields. The editor is built around a clean dependency injection kernel, a reducer-based event handling system for keyboard and input events, and a modular structure for UI components (toolbar, menu, controllers) and file management. It includes built-in plugins for images, videos, audio, drawing, math expressions, autocomplete, slash commands, table editing, code view, markdown preview, and document layouts (A4 page breaks). The codebase is extensively tested with unit, integration, and e2e tests (Playwright), and follows strict architectural rules enforced by dependency-cruiser. It exports TypeScript definitions, supports internationalization (20+ languages), and integrates with popular frameworks via official React/Vue wrappers. The library is distributed via npm and CDN, and demonstrates a high level of engineering craftsmanship in its event system, DOM manipulation utilities, and plugin lifecycle management.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
xdan/jodit ★ 1967 386 APPLICATION

Jodit is a pure TypeScript WYSIWYG HTML editor designed for embedding in web applications. It provides a rich editing experience with a toolbar, file browser, image editor, and support for complex formatting, tables, media embedding, and source code editing. The editor is built on a modular plugin architecture with over 60 built-in plugins, a custom event system, a UI component framework, and extensive internationalization (30+ languages). It includes security-focused HTML sanitization, undo/redo with snapshot history, and async storage providers (IndexedDB, localStorage, memory). The project is MIT-licensed with a commercial PRO version offering additional plugins like AI assistant and PDF export. The architecture is layered: core modules (event emitter, DOM helpers, selection/style engine, async utilities, decorators) provide the foundation; a plugin system manages lifecycle and dependencies; UI components (buttons, forms, popups, dialogs) are built with a BEM-like naming scheme and state-driven rendering; and modules (file browser, uploader, toolbar, history) implement higher-level features. The editor can operate in inline or iframe mode, supports dark themes, and is responsive with mobile-adaptive toolbars. Key entry points are the Jodit class constructor and the static Jodit.make() factory method. The primary data flow is user input (keyboard, mouse, clipboard) processed through the selection engine and plugins, producing sanitized HTML output. External runtime dependencies are minimal (no required JavaScript libraries), but the build system relies on Webpack, TypeScript, and various development tools.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 6 reusable components found
codex-team/editor.js ★ 31970 2248 APPLICATION

Editor.js is a block-style, plugin-based WYSIWYG content editor for the web, developed and maintained by the CodeX team. It outputs clean JSON instead of heavy HTML, making it ideal for modern web applications that need structured content. The editor is built as a TypeScript library with a modular architecture: core modules (BlockManager, Toolbar, InlineToolbar, Saver, Renderer, etc.) communicate via an internal event bus, and all editing capabilities are provided by pluggable tools (Block Tools, Inline Tools, Block Tunes). The library exposes a comprehensive API for programmatic control over blocks, caret, selection, events, sanitization, i18n, and read-only mode. The architecture is centered around a plugin system where tools are external classes with lifecycle hooks (render, save, validate, merge, onPaste) and static configuration (toolbox, sanitize, pasteConfig, conversionConfig). The editor handles paste from various sources, supports cross-block selection, drag-and-drop, keyboard navigation, and mobile responsiveness. It includes a rich set of UI components: a floating toolbar, inline toolbar, block settings popover, and a versatile popover system with search, nested menus, and keyboard navigation via the Flipper component. Editor.js is not a standalone application but a library meant to be embedded into web apps. It is distributed as an npm package (@editorjs/editorjs) with UMD and ESM builds. The repository includes extensive Cypress end-to-end tests, example pages, and detailed documentation for developers. While primarily an application library, it also demonstrates strong data engineering patterns in its sanitization and paste handling, though these are not its primary focus.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 7 reusable components found
Flutter-Bounty-Hunters/super_editor ★ 1931 330 APPLICATION

super_editor is a Flutter framework for building configurable rich text editors, read-only document viewers, and chat/messaging UIs. It provides a document model based on nodes and attributed spans, a single-column layout engine, platform-specific selection/caret/toolbar controls, IME integration, and serialization to/from Markdown, HTML, and Quill Delta. The repository is a monorepo containing the core super_editor package plus supporting packages: attributed_text, super_text_layout, super_keyboard, super_editor_clipboard, and super_editor_spellcheck. It is used in production by apps such as Superlist and ClickUp, and includes example clones of Google Docs, Slack, Quill, Bear, Obsidian, Medium, and iOS Messenger.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
micro-editor/micro ★ 29661 1382 APPLICATION

Micro is a terminal-based text editor written in Go, designed to be intuitive and feature-rich. It provides a full editing experience with multiple cursors, tabs, splits, syntax highlighting, undo/redo, search/replace, autocomplete, and a built-in command bar. The architecture follows a modular design with clear separation of concerns: the `internal/action` package handles keybindings and event dispatching via a trie-based key tree; `internal/buffer` manages text buffers using an efficient line array and an event-driven undo stack; `internal/display` renders the editor UI through a window abstraction that supports soft wrapping and status lines; and `internal/screen` wraps the tcell library for terminal I/O. The editor supports Lua-based plugins that hook into lifecycle events and expose Go standard library packages, enabling extensibility without recompilation. External dependencies include tcell (terminal control), gopher-lua (scripting), go-diff (diff computation), and several forked libraries for JSON5 parsing and shell quoting. The main entry point is `cmd/micro/micro.go`, which parses CLI flags, initializes configuration, loads plugins, and runs the event loop. Data flows primarily involve file I/O (reading/writing buffers), terminal input events (keyboard/mouse), and plugin callbacks. The codebase is well-tested with unit tests, generated buffer tests from VSCode model tests, and CI pipelines across platforms.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
FyroxEngine/Fyrox ★ 9591 456 APPLICATION

Fyrox is a large, mature Rust game engine delivered as a multi-crate workspace, plus a full visual scene editor (fyroxed) and a project manager. The codebase implements a complete runtime stack: 3D/2D rendering through OpenGL or wgpu backends, a scene graph with dynamic node types, physics integration via Rapier, an animation system with ABSM state machines, a sound engine with HRTF and DSP effects, a custom UI toolkit, and an async resource loading framework. The editor is built on the engine's own UI and uses plugin architecture, command-based undo/redo, inspector property editors, gizmos, tilemap tools, and asset browsers. Entry points include the public `fyrox` facade crate, `editor-standalone/src/main.rs` for the editor binary, `project-manager/src/main.rs` for project management, and example applications in `examples/` and `fyrox-sound/examples/`. Architecturally, the engine is a library plus a desktop application rather than a service. It relies heavily on a custom reflection and serialization stack (`Reflect`, `Visit`, type UUIDs, builder patterns) that powers scene persistence, asset hot-reloading, and editor inspectors. The primary data flow is asset-to-scene: resource loaders read files (FBX, glTF, RGS, RON, audio, textures), construct typed resources through UUID-driven constructor containers, and insert them into the scene graph; the renderer then converts scene nodes into GPU data via deferred rendering, caches, and visibility/occlusion systems. Plugin/script hot-reload is supported for dynamic loading of game code. External dependencies include winit for windowing, Rapier for physics, nalgebra for math, wgpu/OpenGL for graphics, and OS audio backends. The codebase is generally well-engineered, with clear subsystem boundaries, reusable builder APIs, and an unusually deep custom infrastructure for an open-source engine. However, it carries notable maintenance risk: two graphics backends must stay in sync, parts of the editor are tightly coupled to engine internals, several modules contain unsafe transmutes or deliberate leaks, and the custom derive macros and serialization format require careful versioning. Dependency drift exists, including old `syn`/`darling` versions in `fyrox-core-derive` and unresolved backend feature gaps such as missing wgpu occlusion queries. Overall this is a strong, active codebase with several genuinely reusable components, but not an exceptionally polished one.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
ilai-deutel/kibi ★ 1942 116 APPLICATION

Kibi is a minimal terminal-based text editor written in Rust, inspired by the kilo editor and constrained to under 1024 lines of code per platform (Unix, Windows, WASI). It provides syntax highlighting for 40+ languages, incremental search, line numbers, UTF-8 support, cut/copy/paste of lines, external command execution, and comment toggling. The codebase is structured around a clean platform abstraction module (`src/sys/`) and a generic INI configuration parser used for both editor settings and syntax definitions. Core editing logic lives in `src/editor.rs`, with row management and render mapping in `src/row.rs`. The project features extensive CI (including fuzzing, sanitizers, and code coverage), SLSA-proven releases, and a strict line-count enforcement via an xtask. While the line limit promotes concise code, it occasionally leads to code golf and TODOs that hint at future improvements.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 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
suren-atoyan/monaco-react ★ 4738 320 APPLICATION

This is the `@monaco-editor/react` npm library, a React wrapper for the Monaco Editor (the editor that powers VS Code). The library provides two main components: `Editor` and `DiffEditor`, both fully typed with TypeScript. It handles the asynchronous loading of the Monaco Editor via the `@monaco-editor/loader` package, supports multi-model editing (with path-based model identification and view state persistence), and exposes hooks like `useMonaco` to access the monaco instance outside of the component lifecycle. The internal architecture is clean: a container component manages layout and loading state, custom hooks (`useMount`, `useUpdate`, `usePrevious`) control editor lifecycle and prop changes, and utility functions (`getOrCreateModel`) abstract model management. The build system uses tsup for generating CJS and ESM bundles, and tests are written with vitest and jsdom. The library is actively maintained, supports React 16-19, and has no security vulnerabilities flagged by Dependabot.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
drawdb-io/drawdb ★ 39836 3287 APPLICATION

drawDB is a free, open-source, client-side web application for designing relational database schemas and generating SQL. It provides an interactive ER diagram editor with support for multiple database dialects (MySQL, PostgreSQL, SQLite, MariaDB, MSSQL, Oracle), import/export in SQL, DBML, JSON, Mermaid, and Markdown, and features like auto-arrange, auto-connect foreign keys, schema validation, migration generation, and versioning via GitHub Gists. The architecture is a React single-page application (Vite + Tailwind CSS + Semi UI) with state managed through custom React Contexts and hooks, persistence via IndexedDB (Dexie), and an optional cloud backend through an extension system. It is primarily an application, with no data research or ML components.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Orama-Interactive/Pixelorama ★ 10518 558 APPLICATION

Pixelorama is a full-featured open-source pixel art editor built with the Godot Engine (GDScript). It provides a professional-grade environment for creating pixel art, sprites, tiles, and animations. The application includes a rich set of drawing tools (pencil, line, curve, shape tools, bucket, gradient, shading), selection tools (rectangle, ellipse, lasso, magic wand, color select), and a comprehensive layer system supporting pixel, group, tilemap, 3D, and audio layers. Animation is handled through a timeline with keyframe interpolation, onion skinning, and frame tags. The editor supports a variety of import and export formats including Aseprite, Krita, Photoshop, Piskel, PNG, GIF, APNG, MP4 (via FFmpeg), and its own .pxo project format. It features a dockable UI, customizable shortcuts, extension support, shader-based non-destructive layer effects, and a built-in noise generator and gradient editor. The codebase demonstrates a well-structured tool inheritance hierarchy, a robust undo/redo system, and several reusable custom UI widgets and addons.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 5 reusable components found
playcanvas/supersplat ★ 10370 1184 APPLICATION

SuperSplat is a browser-based 3D Gaussian Splatting editor built with the PlayCanvas engine and PCUI framework. It provides a full-featured editing environment for loading, inspecting, selecting, transforming, color-grading, and exporting Gaussian splat data (PLY, SOG, SPZ, Splat formats). The application supports real-time GPU-accelerated data processing (histograms, bounding boxes, picking), camera animation with keyframe tracks and spline interpolation, video export via WebCodecs, and publishing to the PlayCanvas platform. Its architecture is event-driven with a centralized command queue for serializing async GPU work, an undo/redo system, and a modular tool system covering selection (rect, lasso, polygon, brush, flood, eyedropper, sphere, box) and transformation (move, rotate, scale, measure, orient). The UI is fully localized into 9 languages and includes a service worker for offline caching.

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