Onsen UI is a comprehensive mobile UI framework for building hybrid mobile apps and progressive web apps (PWAs) with native-like interfaces. The repository is a monorepo containing a core library built on Web Components, CSS components with iOS and Material Design theming, and official bindings for React, Vue 2, Vue 3, Angular 2+, and legacy AngularJS. The core defines custom HTML elements (e.g., `<ons-navigator>`, `<ons-tabbar>`, `<ons-dialog>`) that encapsulate mobile-specific UI patterns such as navigation stacks, tab bars, side menus, pull-to-refresh, lazy lists, and various form controls. The CSS component library provides a consistent, themable styling layer via CSS custom properties and BEM-like modifier classes. Framework bindings wrap these core elements for seamless integration with modern frontend frameworks. The repository also includes example applications, a CSS component previewer, and extensive documentation schemas. While the framework is mature and feature-rich, it shows signs of technical drift with deprecated APIs, multiple legacy binding packages, and a complex build infrastructure. It is actively maintained but appears to be in a stabilization phase rather than rapid development.
Hippy is a cross-platform mobile application framework developed by Tencent that enables developers to build native mobile apps using JavaScript with React or Vue. It provides a JS driver layer that communicates with native renderers on Android, iOS, OpenHarmony, and Web via a bridge system. The architecture is modular: a DOM layer manages the virtual tree and layout (using Taitank or Yoga), native renderers create platform-specific UI components, and a virtual file system (VFS) handles resource loading. The framework includes a full devtools backend implementing Chrome DevTools Protocol for debugging, performance monitoring, and DOM inspection. Key entry points include the JS bootstrap (hippy.js), native engine managers (HippyEngine on Android, HippyBridge on iOS), and the JS framework adapters (hippy-react, hippy-vue, hippy-vue-next). External dependencies include V8, Hermes, JSC, or JSH JavaScript engines, and platform-specific SDKs (AndroidX, UIKit, ArkUI). The codebase is large and actively maintained, with multiple renderer implementations and both Vue 2 and Vue 3 support, though some duplication and deprecated code exist.
MQTTX is a cross-platform MQTT 5.0 client tool developed by EMQ, available as a desktop application (Electron + Vue), a web application (Vue), and a command-line interface (Node.js). It allows users to connect to MQTT brokers, publish and subscribe to topics, inspect messages, and manage connections with support for MQTT 5.0 features, TLS, WebSocket, and various payload formats (JSON, Base64, Hex, CBOR, MsgPack, Protobuf, Avro). It also includes an AI Copilot for MQTT assistance, a dashboard with real-time widgets, and scripting capabilities for payload transformation. The desktop app uses Electron with Vue 2, Element UI, TypeORM with SQLite for persistence, and MQTT.js for MQTT protocol. The web app shares many Vue components but uses lowdb/LocalStorage. The CLI is a separate Node.js package with its own test suite. The codebase is organized into shared utilities, database services, Vue components, and AI integration modules. Key entry points include src/background.ts (Electron main process), src/main.ts (render process), cli/bin/index.js (CLI), and web/src/main.ts (web app). Data flows involve MQTT connection lifecycle, message buffering via RxJS, payload conversion pipelines, and database persistence for messages, subscriptions, and settings. External dependencies include MQTT.js for MQTT protocol, TypeORM for database ORM, Electron for desktop, Vue 2 and Element UI for UI, Monaco Editor for code editing, ECharts for charts, and various AI SDKs (OpenAI, Anthropic, etc.) for the Copilot feature. The project also includes custom patches for third-party libraries (Monaco clipboard, MCP SDK, Azure SDK). The CLI depends on commander, chalk, and @faker-js/faker for simulation. While primarily an application, MQTTX includes data-oriented features such as message history querying with SQL recursive CTEs, topic tree persistence, data export/import in multiple formats, and IoT data simulation scenarios. These elements serve the application's debugging and testing purpose but demonstrate data engineering patterns.
Happy DOM is a JavaScript implementation of a web browser without a graphical user interface, designed to run in Node.js. It provides a comprehensive simulation of browser APIs including the DOM, HTML/SVG elements, CSSOM, Fetch, WebSocket, Canvas, Custom Elements, Shadow DOM, and more. The library is primarily used as a test environment for JavaScript frameworks (React, Vue, Angular, Lit, etc.) and supports server-side rendering via an optional server-renderer package. The codebase is a monorepo containing the core happy-dom package along with companion packages for global registration, Jest environment, server rendering, and a pluggable canvas adapter. It is actively maintained with thousands of tests and a large community. However, it exhibits moderate technical drift: some APIs are incomplete, there is significant boilerplate duplication across SVG/HTML element implementations, and a few deprecated settings linger. Overall, it is a solid, well-structured library but not exceptional in craftsmanship due to the repetitive patterns and some incomplete implementations.
vue-cropper is a Vue.js image cropping component supporting both Vue 2 and Vue 3. It provides an interactive cropping UI with features such as mouse/touch drag, zoom, rotation, EXIF-orientation correction, and multiple output formats (base64/blob). The component is self-contained within a single Vue file and relies on a minimal helper library for EXIF data parsing. It is distributed as a UMD/ES library and can be used via npm or CDN. The architecture is monolithic, with the cropping logic, coordinate calculations, and canvas rendering all encapsulated within the component, exposing a rich set of props, methods, and events for integration.
Jpom is a production-grade, self-hosted DevOps platform built with Java (Spring Boot) and Vue 3. It adopts a server-agent architecture: a central server manages multiple agent nodes via HTTP/WebSocket, enabling remote project deployment, process lifecycle management, script execution, Docker container orchestration, SSH command dispatch, and real-time log monitoring. The server provides a web UI and REST API for configuration, while agents execute operations locally. The codebase is modular, with clear separation into `server`, `agent`, `common`, `storage-module`, and `sub-plugin` modules, plus a Vue frontend with internationalization (i18n) support. Key features include CI/CD build pipelines (Git/SVN), artifact distribution ('outgiving'), trigger tokens for webhook automation, role-based access control with workspaces, database-backend abstraction (H2, MySQL, PostgreSQL), and a plugin system for extensibility (Git, SVN, Docker, encryption, email, webhook). The architecture demonstrates strong engineering practices: SPI-based plugin loading, annotation-driven validation and permission checks, a layered service model with database-agnostic storage, and comprehensive WebSocket handling for real-time features. The codebase is actively maintained with frequent releases and a detailed changelog. While some modules show code duplication (e.g., `SocketSessionUtil` in server and agent) and a number of test files are exploratory or stale, the overall design is clean, the plugin system is genuinely reusable, and the storage abstraction layer (H2, MySQL, PostgreSQL) is a highlight for multi-dialect support. This is a solid implementation of a complex distributed management tool, suitable for teams needing a self-hosted alternative to commercial CI/CD or server management platforms.
vue-promised is a small Vue library that removes boilerplate around rendering asynchronous state. It exposes two public APIs: `usePromise`, a composition-api function that watches a promise (or a Ref to one) and returns reactive refs for `data`, `error`, `isPending`, `isResolved`, `isRejected`, and `isDelayElapsed`; and `Promised`, a component that renders `pending`, `default`, `rejected`, or `combined` scoped slots based on that state. Both are built on `vue-demi`, so the same package works with Vue 2 (with @vue/composition-api) and Vue 3. In production the code solves two real problems: stale async updates are discarded by comparing the currently watched promise to the promise that settled (an identity check rather than a cancellation token), and a configurable `pendingDelay` prevents loading spinners from flashing on fast requests. Old resolved data is preserved while a new promise is pending, so UIs can render "refreshing" states without losing previous content. The implementation is deliberately small: the entire runtime is `src/usePromise.ts` and `src/Promised.ts`, with tests covering slot rendering, delay timing, timeout cancellation, and promise cancellation. The repository is a library rather than an application or data pipeline. It includes a docs Vite app, API Extractor config for d.ts rollup, size-limit checks, and CI with unit tests. Dependencies have been partially modernized, but the npm package has remained at 2.2.0 since 2021 and some test tooling (Vitest 0.31, Prettier 2.8, TypeScript 5.0) lags current releases, giving the project a medium technical drift.
This is a monorepo housing `create-uni`, a CLI scaffolding tool for quickly generating `uni-app` projects. `uni-app` is a cross-platform framework based on Vue, allowing development for iOS, Android, Web, and various mini-programs. The CLI supports interactive prompts (via `@clack/prompts`), command-line flags, a native desktop GUI (via a Rust `napi-rs` addon encapsulating `wry`), and an MCP (Model Context Protocol) server for AI-assisted project creation. The core package (`packages/core`) handles template rendering using EJS with a callback-driven data injection pattern, while `packages/config` provides the option catalogues. The GUI package combines a Rust webview with a Preact/TypeScript UI (built with shadcn/ui). The MCP package exposes two tools (`create-with-template`, `create-custom`) with Zod schemas auto-derived from config data. The project demonstrates strong architectural separation, modern tooling, and a novel integration of a native GUI into a Node.js CLI. Though tightly focused on the uni-app ecosystem, several internal patterns (template rendering, object merging, directory traversal, MCP server setup) are cleanly implemented and potentially reusable.
This repository provides a production-ready documentation template built on Nuxt 4, Nuxt UI 4, and Nuxt Content 3. The codebase implements a static site generator for technical documentation with full-text search, automatic navigation, dark mode, and optimized OG images. It includes a built-in MCP (Model Context Protocol) HTTP server that exposes two tools (`list-pages` and `get-page`) for AI assistants to discover and read documentation content programmatically. Additionally, it integrates `nuxt-llms` to pre-render `/llms.txt` and `/llms-full.txt` files for LLM consumption. The architecture follows a standard Nuxt/Nitro server-rendered app with prerendering enabled, relying on modules for search, image optimization, and content management. The repo is explicitly a template intended for forking, with clean configuration-driven customization via `app.config.ts` and a well-documented content structure.
This repository is a boilerplate for building desktop applications using Electron, Vue 3, and Vite. It provides a pre-configured setup that includes a main process (handling application lifecycle and window creation), a preload script (securely exposing Electron and Node.js APIs to the renderer via contextBridge), and a renderer process (built with Vue and Vite). The project includes demos showing inter-process communication (IPC) and direct Node.js usage in the renderer. The architecture follows the standard Electron model, with the main process managing the application lifecycle and the renderer process running the Vue application. Vite is used as the build tool for all processes (main, preload, and renderer), leveraging vite-plugin-electron to handle Electron-specific build configurations such as sourcemaps, minification, and dependency externalization. The preload script exemplifies best practices by using contextBridge to expose only the necessary IPC methods, avoiding the security risks of enabling nodeIntegration or disabling contextIsolation. While the project is relatively simple and serves as a starting point, it contains several reusable patterns and configurations. Notably, the Vite configuration (vite.config.ts) demonstrates a non-obvious but effective way to set up Vite for Electron builds, including separate configurations for the main and preload processes. The preload script also contains reusable DOM utility functions (domReady and safeDOM) and a secure pattern for exposing Electron APIs. Overall, the boilerplate is well-structured, adheres to modern Electron and Vue practices, and provides a solid foundation for building Electron applications with Vue and Vite.
Witsy is a feature-rich desktop AI assistant built with Electron and Vue 3. It operates as a Bring-Your-Own-Keys (BYOK) client, aggregating dozens of LLM providers (OpenAI, Anthropic, Google, Ollama, etc.) into a unified chat, agent, and automation platform. The architecture follows a standard Electron main/renderer process split, communicating via IPC, with a Vue 3 frontend and a Node.js backend. Beyond basic chat, Witsy provides a sophisticated agent system supporting multi-step workflows, A2A communication, scheduling, and webhooks. It includes a full RAG pipeline (document ingestion, chunking, embedding, vector search), a plugin system for tools (MCP, code execution, web browsing, image generation), and extensive voice capabilities (STT/TTS with multiple providers). Data is persisted locally as JSON files within workspaces, with a vector database for semantic memory and document retrieval. A key differentiator is its automation layer, which can control the desktop (text selection, pasting, app detection) via platform-specific automators (macOS, Windows, nut-js). It exposes a local HTTP API and a CLI for external integration. The MCP (Model Context Protocol) client allows it to connect to a vast ecosystem of third-party tools. While primarily an application, it contains significant data engineering components (RAG pipeline, memory manager, deep research orchestrator) that are tightly integrated into the app's workflow. The codebase is well-structured with a strong emphasis on testing, though its massive feature surface and reliance on external APIs introduce inherent complexity and maintenance challenges.
HotGo is a full-stack rapid application development framework built on GoFrame (Go) and Vue 3 (Naive UI). It provides an admin panel with RBAC, multi-tenancy, code generation, plugin/addon system, and integrations for payments (Alipay/WeChat/QQ), SMS, email, file storage (local/S3/MinIO/COS/OSS), message queues (Redis/Kafka/RocketMQ/disk), WebSocket real-time messaging, TCP server with RPC, and cron scheduling. The backend follows a modular service layer with generated DAO/entity patterns and custom ORM handlers for data filtering, tenant isolation, and sorting. The frontend is a dynamic SPA with built-in components for tables, forms, modals, uploads, and charts, plus i18n support. The codebase is production-ready but heavily relies on code generation and custom forks of GoFrame CLI tools, introducing some maintenance risk. Designed primarily for Chinese developers building enterprise admin systems.
undraw-ui is a Vue 3 UI component library built on top of Element Plus. It provides a set of custom components including Comment, Fold, Search, Chat, Editor, Table, Form, and CRUD interfaces. The repository is structured as a monolithic library with a Vite-based build system and TypeScript support. It includes a demo application for showcasing components and VitePress documentation. The codebase demonstrates a solid implementation of common UI patterns, with a focus on data-heavy components like comments and tables. While it lacks unit tests, the component structure is generally clean, utilizing Vue 3 Composition API and slots for customization.
FeedCraft is a self-hosted feed processing service that transforms raw sources (RSS, Atom, HTML, JSON, search results, inbox pushes) into customized RSS feeds through composable processing pipelines called 'crafts'. The system is a monolith Go backend with a Vue 3 admin dashboard, exposing REST APIs for feed ingestion, transformation (AI-powered translation, summarization, full-text extraction, filtering), and aggregation into 'topic feeds'. The architecture follows a clean separation of concerns: source fetching/parsing, craft processing (atomic operations and flows), engine runtime, and administrative controllers. External dependencies include SQLite/PostgreSQL, Redis, an OpenAI-compatible LLM, a browserless service for dynamic content, and optional embedding APIs for semantic filtering. The codebase demonstrates solid engineering with interfaces for sources, parsers, crafts, and caching, though it carries some migration complexity from legacy craft models to newer ones.
FileCodeBox is a file and text sharing service built with FastAPI and Tortoise ORM. It allows users to upload files or text accessible via short codes, with features including time/count-based expiration, chunked uploads, pre-signed URLs for direct cloud storage uploads, and an admin dashboard for management. The architecture uses a modular design with separate apps for base functionality and admin, storage abstraction for multiple backends (local, S3, OneDrive, WebDAV, OpenDAL), and background tasks for cleanup. Key entry points include main.py (FastAPI setup), apps/base/views.py (public sharing endpoints), and apps/admin/views.py (admin interfaces). The service demonstrates solid engineering practices with reusable components like storage abstraction and security headers, though some areas like settings management and rate limiting show opportunities for improvement in distributed environments.
This is a large Vue 3 monorepo (pnpm workspaces + Turborepo) that provides 14 fully functional applications: 7 admin panels (web-*) and 7 public-facing marketing sites (site-*), each built with a different UI framework (Ant Design Vue, Arco Design, Element Plus, iDux, Naive UI, PrimeVue, TDesign). The project demonstrates how to build identical feature sets across multiple UI ecosystems while sharing common business logic, API clients, state management, and build tooling. It includes a Nitro-based mock backend server (apps/backend-mock) for development and a client-side static mock (packages/effects/api/src/static-mock.ts) for GitHub Pages previews. The architecture is modular: shared packages under packages/ (api, request, stores, preferences, styles, types, utils, locales, constants) are consumed by all apps, while internal packages (vite-config, lint-configs, node-utils) provide centralized tooling. Key entry points include each app's main.ts, layout component, and router. Data flows through an Axios-based HTTP client (packages/effects/request) with token injection, Pinia stores for user and app state, and a preferences composable for theme/locale management. External dependencies include Vue 3, Vite 8, TypeScript 6, Tailwind CSS v4, Pinia, Axios, ECharts, and the seven UI libraries. The monorepo is designed as a showcase and boilerplate for enterprise front-end architecture, not a specific product.
Vaul Vue is a Vue 3 component library that provides a drawer (slide-in panel) component built on top of Reka UI's Dialog primitive. It is a port of the React Vaul library to Vue, offering features such as drag-to-dismiss, snap points, directional control, and background scaling effects. The library is structured with a clear separation of concerns, utilizing Vue's Composition API for logic and providing a set of reusable utility functions for DOM manipulation and browser detection. Although the project is marked as no longer maintained in the README, the codebase demonstrates strong engineering practices and contains several genuinely reusable components.
This is the Builder.io monorepo, a comprehensive headless CMS and visual page builder platform. It provides multi-framework SDKs (React, Angular, Vue, Svelte, Qwik, Solid, React Native, etc.) for fetching and rendering Builder.io content, a plugin ecosystem for extending the visual editor with custom components and data sources (commerce, CMS, media), CLI tools for project scaffolding and space management, and numerous example applications. The core SDK uses Mitosis for code generation to produce framework-specific implementations, and includes features like A/B testing, personalization, localization, visual editing, and server-side rendering. The repository also contains a Gatsby source plugin, a plugin loader, and integration plugins for Shopify, Contentful, Cloudinary, and others. While the codebase is large and actively maintained, it exhibits some technical drift with legacy Gen1 SDKs, duplicated configurations, and outdated dependencies in examples.
Frappe Insights is a full-stack business intelligence application enabling users to connect to data sources, build queries visually or via SQL, create visualizations, and assemble dashboards and workbooks. The decoupled architecture features a Vue.js 3 frontend communicating with a Python/Frappe backend through REST APIs. Key capabilities include a multi-database query builder using Ibis and SQLGlot, ECharts-powered visualizations, role-based access control, and DuckDB-based data warehousing for caching imported tables. The frontend leverages Vue composition API for reusable logic, while the backend uses Frappe's DocType system for extensibility. The project demonstrates solid engineering practices with modular API design, reusable components, and abstraction layers, though complexity arises from supporting numerous database types and deep Frappe integration.
Streamlabs Desktop (formerly Streamlabs OBS) is a production-grade live-streaming desktop application for Windows and macOS built on Electron and the OBS Studio native library (obs-studio-node). In production it lets streamers compose multi-scene/source setups, manage audio, go live simultaneously to Twitch, YouTube, TikTok, Kick, Facebook and other platforms, run alert/widget overlays, record and replay, generate AI highlight clips, and control the app programmatically through an external JSON-RPC API (used by Stream Deck devices, mobile remotes, and third-party platform apps). The product layer also includes Ultra subscription gating, an overlay/widget store, onboarding flows, game-capture source management, and a managed updater with incremental rollout and A/B testing. Architecturally, the app spans multiple Electron processes (worker services layer, main UI, child windows) with a custom dependency-injection framework (@Inject, Service/StatefulService/PersistentStatefulService) and IPC proxies that let any window invoke services as if local. State is persisted through layered mechanisms: Vuex-backed mutations, localStorage-backed persistent services, and RealmObject documents for real-time data. The UI is a hybrid: a large legacy Vue 2 surface is being progressively replaced by React 17 with antd 4, bridged through component wrappers. Undo/redo is a genuine Command pattern (EditorCommandsService with combinable commands and a 500-entry history), and scene collections serialize through a versioned node/array-node tree with overlay import/export and migrations. Core data flows: OBS native events (stream/record status, scenes, sources, audio meters) flow from obs-studio-node into stateful services that reactively drive the UI; scene collections persist as JSON via the node serializer; widget settings are fetched and patched against the Streamlabs REST API; real-time alerts, safe-mode state, and user state for AI features arrive over WebSocket; platform auth uses OAuth/PKCE flows. The highlighter subsystem contains a notably crafted media pipeline (FFmpeg frame reading, WebGL transitions, audio crossfading, vertical export, companion-app installation) for automated clip generation. The codebase is large (~5000 files) and shows its age in places: Vue 2 (EOL), React 17, and antd 4 are several major versions behind; at least four state-management approaches coexist (Vuex, Zustand, Realm, localStorage); a global Services locator couples many modules; and scattered @ts-ignore comments and skipped tests indicate debt. Despite this, the DI/service layer, command pattern, node serialization framework, JSON-RPC protocol, metadata-driven form system, and several DSP/geometry utilities are cleanly designed and genuinely reusable, and the project is actively maintained with CI workflows, dependency automation via Renovate, and an extensive test suite spanning unit, integration, screenshot, and performance tests.