Skip to content

Latest commit

 

History

History
96 lines (63 loc) · 3.42 KB

File metadata and controls

96 lines (63 loc) · 3.42 KB

Open Web Desktop

A modular framework for building web-based desktop experiences.

Overview

Open Web Desktop (OWD) is a framework designed to provide a simple environment for building web-based desktop experiences. It's built with Vue.js & TypeScript, and it leverages the extensible Nuxt.js architecture.

Demo · Community · Documentation

Features

  • Fully extendable through apps, modules and themes
  • Bundled with popular Vue.js libraries like Pinia and VueUse
  • Designed to make the most of the Nuxt.js ecosystem
  • Styled with PrimeVue and Tailwind for a consistent UI
  • Fully localizable with nuxt-i18n support

Repository layout

  • desktop/ — monorepo dev desktop (workspace apps, modules, themes). Use pnpm run dev from the repo root.
  • template/ — scaffold copied by npm create owd / desktop init. Do not edit by hand; regenerate with pnpm desktop template (or pnpm template:sync) after changing the starter desktop or publishing @owdproject/* packages. Blueprint sources live in packages/core/template-blueprint/.

Getting started

Bootstrap a new project by running:

npm create owd

Once the process is done, you can start to develop:

cd owd-client

# Run the dev server with hot-reload
pnpm install
pnpm run dev

# Build for production
pnpm run generate

Extend your desktop

Thanks to Tailwind and PrimeVue, you can create custom themes from scratch and ensure a consistent look across all apps. Each theme defines its own style, making your desktop both cohesive and uniquely yours.

Developing apps/themes in isolation: publishable packages use a playground/ mini-desktop and nuxt-module-build — see docs/agents/OWD_APP_MODULE_PLAYGROUND.md (examples: app-about, app-wasmboy).

Applications · Modules · Themes

🧩 Install an app

Discover apps by searching the owd-apps tag on GitHub.

For example, to add the To-do app:

desktop add app-todo
# from npm only:
desktop add app-todo --npm

This installs (or clones) the package and registers it in desktop/desktop.config.ts. The owd command is a deprecated alias for desktop.

🧩 Install a module

Discover modules by searching the owd-modules tag on GitHub.

For example, to add Pinia persistence backed by IndexedDB (idb-keyval):

desktop add module-persistence
# or your fork:
desktop add module-persistence --from your-github-user

🖥️ Install a theme

Themes are full desktop environments that style all UI components independently, using PrimeVue.
Each theme provides a unique look and feel while maintaining consistent functionality across applications.

Discover themes by searching the owd-themes tag on GitHub.

desktop add theme-gnome

License

Open Web Desktop is released under the MIT License.