# mimecorg/vuido

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mimecorg-vuido).**

6,062 stars · 229 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/mimecorg/vuido
- Homepage: https://vuido.mimec.org/
- awesome-repositories: https://awesome-repositories.com/repository/mimecorg-vuido.md

## Topics

`desktop` `libui` `vue` `vuido`

## Description

Vuido is a framework for building native desktop applications for Windows, macOS, and Linux using Vue.js components, without requiring Electron or Chromium. It maps Vue components directly to native widgets from the libui library, creating lightweight applications that run on a single-threaded event loop and compile templates at build time for optimized runtime performance.

The framework provides a complete Vue.js component-to-native bridge, enabling two-way data binding via v-model, component-based window composition, and platform-specific package generation for distributing executables. It supports standard Vue.js patterns including reactive state definition, computed derived values, lifecycle hooks, custom event emission, and dynamic component swapping, while also allowing direct access to low-level libui classes when needed.

Vuido includes a comprehensive library of native UI widgets such as buttons, text inputs, checkboxes, radio buttons, dropdowns, sliders, spinboxes, progress bars, date and time pickers, color pickers, font pickers, and multi-line text editors. It offers layout containers for vertical and horizontal arrangement, tabbed content, captioned groups, and form layouts, along with capabilities for 2D graphics drawing, file picker dialogs, and modal message boxes. The framework supports Vue.js extensions like Vuex and single-file components, and provides tooling for creating production builds and cross-platform desktop packages.

## Tags

### Mobile Development

- [Vue.js Desktop App Builders](https://awesome-repositories.com/f/mobile-development/react-native-applications/desktop-ports/react-desktop-app-development/vue-js-desktop-app-builders.md) — Provides the core framework for building native desktop apps from Vue.js components without Electron. ([source](https://cdn.jsdelivr.net/gh/mimecorg/vuido@master/README.md))

### Web Development

- [Cross-Platform Desktop Frameworks](https://awesome-repositories.com/f/web-development/cross-platform-desktop-frameworks.md) — Builds cross-platform desktop applications for Windows, macOS, and Linux using Vue.js components. ([source](https://vuido.mimec.org/master.md))
- [Electron-Free Desktop Frameworks](https://awesome-repositories.com/f/web-development/desktop-development/electron-free-desktop-frameworks.md) — Delivers native desktop applications using Vue.js without the overhead of Electron or Chromium.
- [Bidirectional Bindings](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/directives/property-bindings/bidirectional-bindings.md) — Synchronizes a data property with an input widget's value so changes in either are reflected automatically. ([source](https://vuido.mimec.org/usage/handling-user-input.md))
- [Node.js Desktop Frameworks](https://awesome-repositories.com/f/web-development/node-js-desktop-frameworks.md) — Enables direct use of Node.js file system, HTTP, and third-party packages within desktop applications. ([source](https://vuido.mimec.org/introduction.md))
- [Desktop Application Builders](https://awesome-repositories.com/f/web-development/vue-js-application-development/desktop-application-builders.md) — Builds cross-platform desktop applications for Windows, macOS, and Linux using Vue.js components without Electron.
- [Desktop Frameworks](https://awesome-repositories.com/f/web-development/vue-js-frameworks/desktop-frameworks.md) — Builds lightweight, native desktop applications for Windows, macOS, and Linux using Vue.js components without requiring Electron.
- [Desktop Application Integrations](https://awesome-repositories.com/f/web-development/vue-js-application-development/desktop-application-integrations.md) — Supports Vuex and single-file components for building desktop application interfaces. ([source](https://vuido.mimec.org/introduction.md))

### Part of an Awesome List

- [Cross-Platform App Builders](https://awesome-repositories.com/f/awesome-lists/devtools/desktop-and-mobile-apps/cross-platform-app-builders.md) — Creates distributable packages for Windows, Linux, and macOS from Vue.js source code.

### Data & Databases

- [Two-Way Data Binding](https://awesome-repositories.com/f/data-databases/data-synchronization/two-way-data-binding.md) — Synchronizes Vue data properties with native widget values using the v-model directive.
- [GUI Library Bindings](https://awesome-repositories.com/f/data-databases/sqlite3-extensions/node-js-bindings/gui-library-bindings.md) — Provides a Node.js binding to the libui native GUI library for creating cross-platform desktop interfaces.

### DevOps & Infrastructure

- [Desktop Packaging](https://awesome-repositories.com/f/devops-infrastructure/desktop-packaging.md) — Builds distributable desktop application packages for Windows, Linux, and macOS from a single codebase.
- [Cross-Platform Packaging Tools](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-packaging-tools.md) — Builds distributable packages for Windows, Linux, and macOS from a single codebase. ([source](https://vuido.mimec.org/packaging.md))
- [Desktop Application Packaging](https://awesome-repositories.com/f/devops-infrastructure/platform-as-a-service/desktop-application-packaging.md) — Wraps Node.js applications into platform-specific executables for double-click desktop use. ([source](https://vuido.mimec.org/packaging.md))
- [Cross-Platform Executable Generators](https://awesome-repositories.com/f/devops-infrastructure/platform-executable-generators/cross-platform-executable-generators.md) — Generates distributable executables for Windows, macOS, and Linux by wrapping the Node.js application.

### Operating Systems & Systems Programming

- [Vue.js Window Creators](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/window-management-systems/cross-platform-windowing-abstractions/windowing-abstractions/unified-window-creation/vue-js-window-creators.md) — Defines the root container for a desktop application window that holds all other interface elements. ([source](https://vuido.mimec.org/built-in-components.md))
- [File Save Dialogs](https://awesome-repositories.com/f/operating-systems-systems-programming/file-save-dialogs.md) — Prompts users to choose a location for saving new or overwritten files via a native dialog. ([source](https://vuido.mimec.org/usage/displaying-dialogs.md))

### Software Engineering & Architecture

- [Reactive Value Declarations](https://awesome-repositories.com/f/software-engineering-architecture/reactive-value-declarations.md) — Declares reactive data properties that automatically update the native UI when their values change. ([source](https://vuido.mimec.org/usage/script-section.md))
- [Reactive Computed Values](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-value-computations/reactive-computed-values.md) — Derives new values from existing data properties that recalculate only when dependencies change. ([source](https://vuido.mimec.org/usage/computed-properties.md))
- [Global Component Registration](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/framework-specific-integrations/global-component-registration.md) — Declares components once in the main script so they can be used in any parent without repeated imports. ([source](https://vuido.mimec.org/usage/custom-components.md))
- [Single-Threaded Execution Models](https://awesome-repositories.com/f/software-engineering-architecture/single-threaded-execution-models.md) — Runs the application's main loop on a single thread, processing user input and UI updates synchronously.
- [Compile-Time Template Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/compile-time-architectural-patterns/compile-time-template-optimizations.md) — Compiles Vue templates into render functions at build time to optimize runtime performance.

### User Interface & Experience

- [Window Initialization Routines](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/window-initialization-routines.md) — Ships a framework for creating and displaying native desktop windows from Vue components. ([source](https://vuido.mimec.org/usage/managing-windows.md))
- [Action Buttons](https://awesome-repositories.com/f/user-interface-experience/button-styles/action-buttons.md) — Renders clickable buttons that trigger actions when pressed in native desktop windows. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Vertical Arrangements](https://awesome-repositories.com/f/user-interface-experience/buttons/button-groups/vertical-arrangements.md) — Arranges child components in vertical or horizontal layouts to structure the user interface. ([source](https://vuido.mimec.org/built-in-components/containers.md))
- [Checkbox Components](https://awesome-repositories.com/f/user-interface-experience/checkbox-components.md) — Renders toggleable checkbox components for binary selection in native desktop interfaces. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Component Data Passing](https://awesome-repositories.com/f/user-interface-experience/component-architectures/component-communication-patterns/component-data-passing.md) — Sends typed data from parent to child components with optional default values and required validation. ([source](https://vuido.mimec.org/usage/custom-components.md))
- [Component Composition](https://awesome-repositories.com/f/user-interface-experience/component-architectures/component-composition.md) — Breaks complex windows into separate child components imported and declared in parent templates. ([source](https://vuido.mimec.org/usage/custom-components.md))
- [Attribute Binding Directives](https://awesome-repositories.com/f/user-interface-experience/data-binding/attribute-binding-directives.md) — Attaches reactive data or expressions to widget properties via directives like v-bind. ([source](https://vuido.mimec.org/usage/interpolations.md))
- [Native Window Creations](https://awesome-repositories.com/f/user-interface-experience/desktop-windowing-management/native-window-creations.md) — Creates and displays native desktop windows from Vue components with main loop management. ([source](https://vuido.mimec.org/usage.md))
- [Interactive Input Collecters](https://awesome-repositories.com/f/user-interface-experience/input-prompts/interactive-input-collecters.md) — Renders interactive widgets such as buttons, text fields, and labels for user interaction and data display. ([source](https://vuido.mimec.org/built-in-components.md))
- [Component Layout Containers](https://awesome-repositories.com/f/user-interface-experience/layout-management/component-layout-containers.md) — Provides layout containers that arrange child components vertically or horizontally within a window. ([source](https://vuido.mimec.org/built-in-components/containers/box.md))
- [Dropdown Selection Components](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/list-rendering/dropdown-selection-components.md) — Presents a collapsible dropdown menu for selecting an option with two-way data binding. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Vue-to-Native Widget Mappings](https://awesome-repositories.com/f/user-interface-experience/native-widget-mapping/vue-to-native-widget-mappings.md) — Maps Vue components directly to libui native widgets for platform-native rendering without Electron.
- [Radio Button Components](https://awesome-repositories.com/f/user-interface-experience/radio-button-components.md) — Renders groups of radio buttons for single selection from a set of options. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Text Editing Components](https://awesome-repositories.com/f/user-interface-experience/text-editing-components.md) — Provides a single-line text input widget with two-way data binding support. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Component-to-Native Bridges](https://awesome-repositories.com/f/user-interface-experience/ui-components/component-registries/vue-js/component-to-native-bridges.md) — Serializes Vue component trees into native UI widgets via a JSON message bus to the libui library.
- [Desktop UI Toolkits](https://awesome-repositories.com/f/user-interface-experience/ui-components/component-registries/vue-js/desktop-ui-toolkits.md) — Offers Vue.js components that map directly to native widgets for building desktop application interfaces.
- [Conditional Rendering](https://awesome-repositories.com/f/user-interface-experience/ui-element-selectors/conditional-rendering.md) — Shows or hides widgets based on data properties, destroying and recreating them when conditions change. ([source](https://vuido.mimec.org/usage/conditionals-and-loops.md))
- [User Event Handlers](https://awesome-repositories.com/f/user-interface-experience/user-event-handlers.md) — Attaches event listeners to UI elements so user interactions trigger methods in the application logic. ([source](https://vuido.mimec.org/usage/handling-user-input.md))
- [Desktop UI Suites](https://awesome-repositories.com/f/user-interface-experience/vue-js-layout-utilities/ui-component-suites/desktop-ui-suites.md) — Creates native desktop interfaces by composing reusable Vue components with layouts, containers, and interactive widgets.
- [Widget Arrangement Systems](https://awesome-repositories.com/f/user-interface-experience/widget-arrangement-systems.md) — Uses Box, Form, Group, or Tab containers to align, group, or tabulate child widgets vertically or horizontally. ([source](https://vuido.mimec.org/built-in-components.md))
- [Widget Data Bindings](https://awesome-repositories.com/f/user-interface-experience/widget-data-bindings.md) — Displays dynamic values inside widget labels using mustache syntax with automatic updates. ([source](https://vuido.mimec.org/usage/interpolations.md))
- [Component-Based Window Structures](https://awesome-repositories.com/f/user-interface-experience/window-management-components/component-based-window-structures.md) — Builds each window as a tree of Vue components, with the root defining the window and children defining layout.
- [Individual Window Closers](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/accessibility-based-window-manipulators/console-window-controllers/window-hiding/window-closing/individual-window-closers.md) — Destroys a specific root Vue component to close its window without stopping the application. ([source](https://vuido.mimec.org/usage/managing-windows.md))
- [Boolean Input Editors](https://awesome-repositories.com/f/user-interface-experience/boolean-input-editors.md) — Binds a checkbox to a boolean value using v-model, updating the state when the user checks or unchecks it. ([source](https://vuido.mimec.org/built-in-components/widgets/checkbox.md))
- [Form Layout Containers](https://awesome-repositories.com/f/user-interface-experience/buttons/button-groups/vertical-arrangements/form-layout-containers.md) — Provides a vertical form layout container with captioned fields for structured data entry. ([source](https://vuido.mimec.org/built-in-components/containers/form.md))
- [Color Pickers](https://awesome-repositories.com/f/user-interface-experience/color-pickers.md) — Opens a native color selector dialog and returns the chosen color to the application. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Color Selection Components](https://awesome-repositories.com/f/user-interface-experience/color-selection-components.md) — Opens a color selector dialog when clicked and binds the chosen color to a model. ([source](https://vuido.mimec.org/built-in-components/widgets/colorbutton.md))
- [Component Slot Systems](https://awesome-repositories.com/f/user-interface-experience/component-slot-systems.md) — Places text, widgets, or other components into a child component's designated slot from the parent template. ([source](https://vuido.mimec.org/usage/custom-components.md))
- [Component Swapping Utilities](https://awesome-repositories.com/f/user-interface-experience/component-swapping-utilities.md) — Replaces the active component inside a special element without closing or recreating the window. ([source](https://vuido.mimec.org/usage/custom-components.md))
- [Custom Event Emission](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-apis/event-communication-systems/event-emission-declarations/custom-event-emission.md) — Fires named events from child components to notify parents, optionally passing data. ([source](https://vuido.mimec.org/usage/custom-components.md))
- [Multi-line Text Inputs](https://awesome-repositories.com/f/user-interface-experience/data-display-components/list-components/multi-line-item-renderers/multi-line-text-inputs.md) — Provides a multi-line text input widget for capturing and editing long-form string content. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Data Entry Forms](https://awesome-repositories.com/f/user-interface-experience/data-tables/data-entry-forms.md) — Builds structured data-entry interfaces with text inputs, sliders, checkboxes, radio buttons, and dropdowns.
- [Date and Time Pickers](https://awesome-repositories.com/f/user-interface-experience/date-and-time-pickers.md) — Presents a widget that lets users pick both a date and a time value from a single interface. ([source](https://vuido.mimec.org/built-in-components/widgets/datetimepicker.md))
- [Time Pickers](https://awesome-repositories.com/f/user-interface-experience/date-and-time-pickers/time-pickers.md) — Opens a time-selection interface and returns the chosen hour and minute to the application. ([source](https://vuido.mimec.org/built-in-components/widgets/timepicker.md))
- [Date Picker Interfaces](https://awesome-repositories.com/f/user-interface-experience/date-picker-interfaces.md) — Opens a calendar interface for selecting a single date from a visual picker. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Multiple Window Creators](https://awesome-repositories.com/f/user-interface-experience/desktop-windowing-management/native-window-creations/multiple-window-creators.md) — Mounts additional root Vue components to display multiple windows within the same application. ([source](https://vuido.mimec.org/usage/managing-windows.md))
- [File Pickers](https://awesome-repositories.com/f/user-interface-experience/file-pickers.md) — Invokes native system dialogs for selecting files from the filesystem. ([source](https://vuido.mimec.org/usage/displaying-dialogs.md))
- [Font Pickers](https://awesome-repositories.com/f/user-interface-experience/font-configurations/font-configurators/font-pickers.md) — Opens a native font selector dialog and returns the chosen font to the application. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Numeric Inputs](https://awesome-repositories.com/f/user-interface-experience/numeric-inputs.md) — Provides a spinbox widget for incrementing or decrementing a numeric value. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Radio Groups](https://awesome-repositories.com/f/user-interface-experience/radio-groups.md) — Presents a group of mutually exclusive radio choices where selecting one deselects the others. ([source](https://vuido.mimec.org/built-in-components/widgets/radiobuttons.md))
- [Task Progress Bars](https://awesome-repositories.com/f/user-interface-experience/scroll-animations/scroll-progress-mapping/scroll-progress-bars/task-progress-bars.md) — Displays a horizontal progress bar that indicates the completion status of a task. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Tabbed Content Panes](https://awesome-repositories.com/f/user-interface-experience/tabbed-content-panes.md) — Displays child widgets in separate tabs for switching between different content sections. ([source](https://vuido.mimec.org/built-in-components/containers/tab.md))
- [Text Display Widgets](https://awesome-repositories.com/f/user-interface-experience/text-display-widgets.md) — Renders read-only text labels on the interface without user interaction. ([source](https://vuido.mimec.org/usage/window-template.md))
- [Combo Box Inputs](https://awesome-repositories.com/f/user-interface-experience/text-input-widgets/predictive-text-inputs/combo-box-inputs.md) — Provides a text input combined with a drop-down list for selecting or typing values. ([source](https://vuido.mimec.org/built-in-components/widgets/combobox.md))
- [Slider Inputs](https://awesome-repositories.com/f/user-interface-experience/ui-components/form-input-components/numeric-input-controls/slider-inputs.md) — Provides a horizontal slider widget for adjusting a numeric value within a range. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Visual Separators](https://awesome-repositories.com/f/user-interface-experience/visual-separators.md) — Ships visual separator widgets that draw horizontal or vertical lines between interface elements. ([source](https://vuido.mimec.org/built-in-components/widgets/separator.md))
- [Property Configurations](https://awesome-repositories.com/f/user-interface-experience/widget-behavioral-configurations/property-configurations.md) — Sets properties on native widgets to control their appearance and behavior in desktop applications. ([source](https://vuido.mimec.org/usage/common-attributes.md))

### Business & Productivity Software

- [Data Change Listeners](https://awesome-repositories.com/f/business-productivity-software/data-change-listeners.md) — Triggers callbacks when specified data properties change, enabling side effects like async operations. ([source](https://vuido.mimec.org/usage/computed-properties.md))

### Content Management & Publishing

- [Captioned Content Groups](https://awesome-repositories.com/f/content-management-publishing/q-a-content-strategies/content-grouping-containers/captioned-content-groups.md) — Provides a captioned group container for organizing related widgets in native desktop interfaces. ([source](https://vuido.mimec.org/built-in-components/containers/group.md))

### Graphics & Multimedia

- [Programmatic Canvas Drawing](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing/interactive-canvas-drawing/programmatic-canvas-drawing.md) — Provides an API for programmatic drawing of shapes, paths, and text on a native canvas. ([source](https://vuido.mimec.org/built-in-components/widgets/area.md))
- [Blank Canvas Areas](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/canvas-vector-graphics/custom-shape-rendering/custom-renderable-interfaces/blank-canvas-areas.md) — Provides a blank canvas widget for custom 2D graphics drawing and mouse event handling. ([source](https://vuido.mimec.org/built-in-components/widgets.md))
- [Native Desktop Rendering](https://awesome-repositories.com/f/graphics-multimedia/native-desktop-rendering.md) — Draws custom 2D shapes, paths, and text on native desktop canvases with mouse and keyboard input support.

### Programming Languages & Runtimes

- [Instance Method Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/class-method-definitions/instance-method-definitions.md) — Creates functions that can access and modify reactive data and respond to user input. ([source](https://vuido.mimec.org/usage/script-section.md))
- [Lifecycle Hook Executions](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/run-lifecycle-controls/lifecycle-hook-executions.md) — Executes custom code at specific moments such as instance creation, update, or destruction. ([source](https://vuido.mimec.org/usage/script-section.md))
