dworkspace-components 0.0.0

The application platform for your cyberpunk desk
# Desk

### 🔮 The application platform for your cyberpunk desk

[![Demo](https://img.shields.io/badge/Desk--X-Wasm+WebGL2-b236a6)](https://desk-x.com)
[![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg?style=flat)](https://github.com/Hihaheho/Desk/blob/main/LICENSE)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/ryo33?color=ffc5cd&labelColor=2a4638)](https://github.com/sponsors/ryo33)
[![GitHub Repo stars](https://img.shields.io/github/stars/Hihaheho/Desk?style=social&color=yellow)](https://github.com/Hihaheho/Desk)


## Goal and philosophy

🎯 **We want to make top boards of people's desks into touch panel displays that run Desk.**

- 🎮 **Intuitive** like games
- 🥼 **Pragmatic** like professional tools
- 🗺️️ **Versatile** like spreadsheet
- 💗 **Accessible** to everyone
- 🛹 **Minimalist** design

## Why Desk?

Desk apps (applications built on Desk) are inherently:

- 🎼 **Data-oriented**
- 🔒 **Statically-typed** (data and UI)
- 🤖 **Programmable** (extensible by code)
- 🧲 **Interoperable** with other Desk apps
- 📱 Running on **everywhere** (web, desktop, mobile)

## How does it work?

Desk is powered by several systems:

- Desk Programming Language (Desk-lang)
- Desk-workspace (dworkspace)
- Desk-plugins (dplugins)

### Desk Programming Language

Desk-lang is a programming language which has:

- Minimalistic syntax and semantics
- Type system with inference
- Algebraic effects
- Content-addressable by type and UUID
- Incremental compilation

Most of data and programs on Desk apps are finally evaluated as a snippet of Desk-lang.

### Desk-workspace (dworkspace)

Desk-workspace is a platform-agnostic environment for editing Desk-lang.

Desk-workspace provides these features:

- File system for Desk-lang
- Permission management system
- Realtime collaboration support
- 🚧 Package management system
- 🚧 Version control system

🚧 not yet implemented

### Desk-plugins (dplugins)

There are many Desk-plugins. Each Desk-plugin implements a single feature for the Desk Environment.

- **Desk Editor** is an default editor for Desk-lang
- **Desk Runtime** is an default runtime for Desk-lang
- **Desk Guide** provides 🚧 interactive tutorials of Desk
- **Desk Craft** provides 🚧 3D/2D rendering with meshes

🚧 not yet implemented

## Is it any good?

Yes.

## Resources

- [Contributing Guide]https://github.com/Hihaheho/Desk/blob/main/docs/CONTRIBUTING.md

## Join our community

👉 [![Q&A Have a question?](https://img.shields.io/badge/Q%26A-Have%20a%20question%3F-yellowgreen?style=social&logo=github)](https://github.com/Hihaheho/Desk/discussions/new?category=q-a)

👉 [![GitHub Discussions](https://img.shields.io/github/discussions/Hihaheho/Desk?logo=GitHub&style=social)](https://github.com/Hihaheho/Desk/discussions)

👉 [![GitHub Repo stars](https://img.shields.io/github/stars/Hihaheho/Desk?style=social)](https://github.com/Hihaheho/Desk)

👉 [![Twitter Follow](https://img.shields.io/twitter/follow/HihahehoStudio?style=social)](https://twitter.com/HihahehoStudio)

👉 [![Discord](https://img.shields.io/discord/808315755460165683?color=6A7EC2&label=&logo=discord&logoColor=ffffff&labelColor=4e5af0&style=for-the-badge)](https://discord.gg/egTTeg7DRp)