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...
shmuelhizmi
/
web-desktop-environment
a web/node-based cross-platform desktop environment
A cross-platform desktop-environment with a web interface
What is a Web Desktop Environment
just like any other desktop environment it is just a visual interface for your computer.
the twist with this desktop-environment is that "web-desktop-environment" visual interface runs on the web with his server running localy on your computer
Use Cases
- interface for a cloud server (can possibly be used as a replacement for control panel)
- interface for small/low power computers like the Raspberry Pi zero
- interface for controlling your computer over a long distance
The technologies behind "web-desktop-devironment"
both the server and are build using a react framework called "react-fullstack" which is a framework for building fast react applications that rely a tight connection between the client and the server.
Screenshots
Contribute
if you have any new feature or existing feature you wnat to create or improve fell free to open a Pull Request
Features
Desktop
❓ 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
🎥 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
.
shmuelhizmi
/
web-desktop-environment
a web/node-based cross-platform desktop environment
A cross-platform desktop-environment with a web interface
What is a Web Desktop Environment
just like any other desktop environment it is just a visual interface for your computer.
the twist with this desktop-environment is that "web-desktop-environment" visual interface runs on the web with his server running localy on your computer
Use Cases
- interface for a cloud server (can possibly be used as a replacement for control panel)
- interface for small/low power computers like the Raspberry Pi zero
- interface for controlling your computer over a long distance
The technologies behind "web-desktop-devironment"
both the server and are build using a react framework called "react-fullstack" which is a framework for building fast react applications that rely a tight connection between the client and the server.
Screenshots
Contribute
if you have any new feature or existing feature you wnat to create or improve fell free to open a Pull Request
Discussion (26)
Hi Shmuel,
this looks awesome. I really like the idea. It surely looks like you are gaining a lot of experience from it. Maybe add a hands-on demo (with a fake/mock server) for those interested but too lazy to set up the environment themselves. Or a demo video.
Keep it up! You're 16-years-old? Wow, wish I had been where you are now when I was your age. 👍🏽👍🏽👍🏽
PS: By the way, this reminds me a lot of Synology's DiskStation Manager, which is quite a nice web-based OS (frontend).
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.
I'm curious: why would you avoid the command line at the first place?
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 :)
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.
Great idea, I wrote about my cloud-based development environment on my blog at mikenikles.com/blog/why-i-use-a-cl...
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.
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!
"Let's force and shoehorn EVERYTHING into a browser! Doesn't that idea sound amazing??"
Aside from the fact that the browser is an awesome runtime environment for many conceivable projects, this is a private pet project. These have values beyond the mere pratical.
I find this one a neat and worthwhile project to gain experience and hone one's skills. Nothing wrong with it, is there?
Now that's just your Stockholm syndrome talking.
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?
Please, elaborate. I'm interested in your opinion here.
The "right" in "right things" is always debatable. What are your relevance criteria?
"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
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.
This is really cool.
This is cool!
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.
Name should be "web den"
Keep it up Shmuel
I hope to see more cool projects like this from you ;)
Good luck
happy coding
Thanks and I hope you will :)
I think it is somewhat of a case of "If the only tool you have is a hammer, every problem looks like a nail".
sound cool :)
cool is it open source ? is so I would like to take a look.