DEV Community

Cover image for A web-based desktop environment
shmuelhizmi
shmuelhizmi

Posted on • Updated on

A web-based desktop environment

For the last 2 weeks I have been working on a new project of mine called "web desktop environment" (temporary name) and now I finally feel like the project is in a stage where it is ready to be shared with the world so...

GitHub logo shmuelhizmi / web-desktop-environment

a web-based cross-platform desktop environment

Web Desktop Environment

A cross-platform desktop-environment with a web interface design to provide a simple and intuitive way to manage your server with a desktop-like interface.

What is a Web Desktop Environment

just like any other desktop environment WDE was design to abstract the use of your computer is a visual way but the twist with WDE is that unlike other desktop environments, WDE was designed from the ground up to run on the web, and so the backend for WDE is made as an extensible web-server.

Why?

WDE usecases range from providing a slim interface for your raspberry pi to or any other micro-computer to proving an interface for developing on a remote super computer or inside a Docker container.
wehenever you need to work on a remote/cloud environment WDE can be a great choice. it can simplify and abstruct the way you interact with your server and allow to feel comfortable…

❓ so what exactly is "web desktop environment"

So one big thing that sperate a typical Linux server from a regular PC is that your PC probably run something called a "desktop environment" while a server main interface would probably be a text-based command line or some sort of a Control Panel,
the reason for that is that the typical visual desktop environments will be too "heavy" and is most likely not design to run on something so performance optimizes like a server.

now the target of the "web desktop environment" software is to provides an easy to use, slim visual desktop environment that is designed to run on something like a server or any sort of small Linux machine. That way server management can become something that even less savvy people can do too, since they no longer need to deal with a command line.

🏞 a dark theme screenshot

Dark theme

🎥 demo video

👨🏾‍💻 👩🏾‍💻 So let's get into the details

"web desktop environment" is made out of two main packages a NodeJS server app - for the server and a React web app - for the client both are written in Typescript and are using Mce/Reflow to communicate between them.

🙃 I'm currently looking for a better name

the project name is currently "web desktop environment" which is a bit dry if you have any better idea for a name it will be great if you can comment it in the discussion below, thanks!!

More....

If all or just some of that sounds interesting for you fill free to check the project out in github/shmuelhizmi/web-desktop-environment.

GitHub logo shmuelhizmi / web-desktop-environment

a web-based cross-platform desktop environment

Web Desktop Environment

A cross-platform desktop-environment with a web interface design to provide a simple and intuitive way to manage your server with a desktop-like interface.

What is a Web Desktop Environment

just like any other desktop environment WDE was design to abstract the use of your computer is a visual way but the twist with WDE is that unlike other desktop environments, WDE was designed from the ground up to run on the web, and so the backend for WDE is made as an extensible web-server.

Why?

WDE usecases range from providing a slim interface for your raspberry pi to or any other micro-computer to proving an interface for developing on a remote super computer or inside a Docker container.
wehenever you need to work on a remote/cloud environment WDE can be a great choice. it can simplify and abstruct the way you interact with your server and allow to feel comfortable…

Continue reading ->

Top comments (20)

Collapse
 
mikenikles profile image
Mike

Great idea, I wrote about my cloud-based development environment on my blog at mikenikles.com/blog/why-i-use-a-cl...

Collapse
 
shmuelhizmi profile image
shmuelhizmi

I agree it's really is a good idea for most developers to start working on a cloud-based IDE especially if your a node/web developer,
I also have a little project of mine called NotNotePad which is a web-based code editor (it currently is running completely on your browser FS so not exactly a cloud-based IDE) but I sure do have plans to add support for connecting to a server filesystem + terminal in the future.

the only problem for me and the main reason I don't switch yet to a cloud-based IDE is that I still do a bit of desktop and windows 10 specific development in my job.

Collapse
 
mikenikles profile image
Mike

Very cool, with some of the latest web APIs to access the local file system, this makes a lot of sense. Well done developing NotNotePad!

You're right, there are some limitations to cloud-based IDEs. Also for native mobile app development it's not quite ready yet.

It's exciting to see the innovation in this space!

Collapse
 
phantas0s profile image
Matthieu Cneude

I'm curious: why would you avoid the command line at the first place?

Collapse
 
shmuelhizmi profile image
shmuelhizmi • Edited

great question, most people won't I'm myself would probably even prefer using the terminal in some cases. BUT having a full desktop environment also has a few pluses like an easy to use look or a one-season advantage (ssh instances can get lost very easy at least for me while a desktop environment always stays in place).

you can be sure I'm not trying to say consoles are bad and we should always ditch them for a desktop environment, it's just that people have moved passed an only terminal interface for there PCs in the '90s and as a result - PCs have become more mainstream, I'm just saying it's maybe time to also give the server a more desktop environment like interface (and maybe they can become more mainstream).
and if we can't do so using a sort of display server then maybe the web can work :)

Collapse
 
phantas0s profile image
Matthieu Cneude

That's an interesting approach. As a developer, I deal mostly with plain text, and I think it's difficult to beat the shell for that. It's easier to automate, too, and I want my servers to be as automated as possible.

I love GUIs for everything visual, like video editing, photography processing, and so on. I wouldn't use that for my servers, but, of course, everybody is different. If your prefer GUIs in your workflow, why not.

Collapse
 
shmuelhizmi profile image
shmuelhizmi

Thanks, a demo will be a great idea I will definitely consider doing so, as for a video I will start working on it!

and yes "Synology's DiskStation Manager" does look a lot similar, there are actually a few projects who tried to do something similar.

Collapse
 
zilti_500 profile image
Daniel Ziltener • Edited

"Let's force and shoehorn EVERYTHING into a browser! Doesn't that idea sound amazing??"

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

"Let's crap on a young developer's hard work (with the admirable goal of making things easier for the uninitiated through technology they're already familiar with, rather than the CLEARLY superior approach of screaming 'RTFM!' at them for the gazillionth time like a crotchety, condescending curmudgeon), with nothing of actual value to add to the discussion! Doesn't that idea sound amazing??"

How does one rise to the level of lead developer, let alone CTO, with such people "skills?" Because I've always found that - at any level of dev advancement - uplifting and acknowledging the potential in (and positive contributions of) my peers (and they're always peers, regardless of the org chart), and offering constructive criticism, are critical.

Great job, @shmuelhizmi

Collapse
 
shmuelhizmi profile image
shmuelhizmi

Almost 5 months later and I'm still developing this project in some of my weekends.

this is a picture of the project running in a PWA native like app with a new nord theme.

today

Collapse
 
matthewia profile image
Matthew Alicea

This is awesome! Very cool to see how others are thinking of new ways to extend web technologies. I was just talking to a buddy of mine recently about how it'd be cool to be able to "hack" my desktop GUI using web technologies, but I hadn't at all considered an entire desktop environment built on web tech.

Collapse
 
ben profile image
Ben Halpern

This is cool!

Collapse
 
zilti_500 profile image
Daniel Ziltener

the browser is an awesome runtime environment for many conceivable projects

Now that's just your Stockholm syndrome talking.

this is a private pet project. These have values beyond the mere pratical.

Yea, that is true. I just find it a very odd choice. That's all. As long as you end up learning the right things from it, why not?

Collapse
 
chukwuemekaigbokwe profile image
Chukwuemeka Igbokwe

This is really cool.

Collapse
 
kapowell profile image
Kade Powell

Name should be "web den"