Readit News logoReadit News
Posted by u/DustinBrett 7 months ago
Show HN: DaedalOS – Desktop Environment in the Browsergithub.com/DustinBrett/da...
Demo: https://dustinbrett.com

Hey HN!

I've been building my passion project daedalOS for over 4 years now.

The original idea was to give visitors to my website the experience as if they had remotely connected to my personal machine. To do this I decided I would attempt to recreate as much of the functionality as possible.

My hope is to keep working on this project for the rest of my life and continue to evolve it's capabilities as technologies progress.

Thanks for checking it out!

Lerc · 7 months ago
I made one of these years ago, much less polished but broadly similar.

From that perspective you have done well to avoid discouragement. Most of the feedback I received was negative. Worse was that the negative feedback was not related to my implementation but arguing that I should not try at all.

If you do keep working on this project for the rest of your life, I commend you.

I kind of got split between making a client only version (all data client side), a file storage server where all brains are client side but persistent data is on a server, or a direct Linux login (open real shell on browser. Linux executables can connect to a socket to open windows on the browser and provide a UI similar to how X11 does, only with a much smarter UI host)

In recent years I have been doing a few experiments working on the areas that were difficult. So many things have been added to browsers since I started, I can't recall exactly how long ago that was but I remember boot2gecko adding features that I needed.

Recently I have been experimenting with launching web workers which asks for an API and is given a MessagePort with code to construct functions that translate to messages. That way all of the desktop features can be provided as permissions with some auditing theoretically(but unimplemented) available.

nichol4s · 7 months ago
Wow - indeed. I see you made something like this already back in 2012. Impressive: https://github.com/Lerc/notanos That is more than 13 years ago when websockets where about to become generally available. Impressive!

Don't be discouraged by people that argue what you should or should not do. The world is full with people with their own agenda or that simply have a too narrow view of how their world should operate.

rollcat · 7 months ago
To everyone: Ignore the nay-sayers. You've done more than most of them ever attempted. It's more easily said than done, negative feedback tends to set off a stronger emotional response. Seek feedback from people you know will support you.

I play guitar, for fun. I've once posted a recording. Someone said something mean. It really hurt me somehow, I didn't record anything at all in the following 15 years.

Recently I've been talking a lot with my sister, we both really liked a song so we agreed to record a cover. I've now been working on that for many evenings. I'm sharing the WIP demos with people I know will give me constructive feedback. I keep going. It's more work than I've expected! But it's so much fun.

Don't stop dreaming.

DustinBrett · 7 months ago
Totally agree, the nay-sayers don't phase me anymore because I enjoy what I am doing, everything else that comes from my work is just a freebie.
DustinBrett · 7 months ago
Notanos looks awesome, I will check it out.

There are several milestones of my project that will likely require forks in the road where I might have to do a rewrite, but I hope to be able to keep doing it and learning.

I think that in 10-20 years with the progress of AI, this project could become something quite amazing, but by then maybe everything will be amazing by todays standards.

Lerc · 7 months ago
Arrgh, now I get to live with the shame of someone looking at my code. Be wary of the https://github.com/Lerc/userserv component, because that's the bit that is only really proof-of-concept level and runs as root. It's the bit that allows user login (it forks and drops privileges to the user before serving static files) It's probably a candidate for a Rust rewrite.

I agree on the AI part. When ChatGPT4 came out my test case for it was getting it to make a filesystem on top of IndexDB and and a set of edge case tests. It did quite a respectable job (until it got bigger than the context anyway). I should go back and finish the job now that contexts are larger.

nichol4s · 7 months ago
This is amazing - well done, and indeed runs oh-so smooth - even on mobile!

I see that the browser is somewhat limited as most sites try to prevent 'embedding'. However, we have a solution where we can proxy any web content in such a way to still allow you to embed it: https://www.webfuse.com/use-case/embed-unembeddable-content

Lmk if you would like to try this out and I can help you set this up.

DustinBrett · 7 months ago
Thanks! I actually did add a "Proxy settings" button to the right of the address bar which allows you to pick between a few free to access proxies. For my proof of concept Browser I have been ok with this, but if I did want to have a legit proxy then I would consider something like what you mentioned.
koolala · 7 months ago
It would be €529 /month for 20 users but wouldn't they need to possibly support way more users than that? I wish we had a client-side solution that could infinitely scale beyond having users run their own node.js proxy.
nichol4s · 7 months ago
The 'per user' pricing is only for the number of admins/devs they'd need to give access to the platform, beyond that you can scale to unlimited users.

And also for this specific need case (just proxying and embedding) the 'spark' plan at €19 will be enough though. Also for these non-for-profit usecases I'm happy to sponsor access.

tamat · 7 months ago
On one side Im amazed by the amount of good work you have done, but on the other, I feel it lacks true useful scenarios.

For instance, I would love to install it in my server to handle my own server files, but it doesnt support mounting a folder to access from the OS.

Or I would love to have an SSH client, or a terminal that is executed in the server, to run my own nodejs apps.

Also some form of login/pass would be helpfull in case somebody got access to the URL.

But none of them are available.

I understand than the goal was to see whats possible in a browser, but to make it more appealing to people I would love to see some real usecases covered.

Cheers

DustinBrett · 7 months ago
It does indeed have a long way to go if I want to add usefulness beyond my personal website use case.

It is possible to "map" a local drive in several ways, such as via the desktop right click menu's "Map directory", and also if you built it locally you could put a folder in "public" which would then be mapped.

But it isn't the same as what you are describing and that would likely require a server component so I could bypass the limits of the browser.

I hope to eventually have an answer for all the use cases you mention, but because this is just a side project and my main goal is a client-side personal website, I don't expect those features in the 2020's, maybe the 2030's. :-)

wkat4242 · 7 months ago
Reminds me a bit of Sun's network computer (JavaStation) back in the day. Based on JavaOS. It was an idea to get Java on the map but it had very obvious issues.

The main thing I remember about that... s...l...o...w... :P The other thing I remember: Shit cool hardware. As expected from Sun. They were the cool kids before Apple were cool, along with SGI.

But of course computers are not what they used to be these days.

1bpp · 7 months ago
This is really impressive and surprisingly visually close to Explorer, especially the font rendering and the button hover effects. I also started poking around to see how the animated wallpaper was done and the custom devtools were a nice surprise too. I don't know how much Microsoft cares about people ripping Windows icons, but directly using icons from Facebook Messenger, VLC, VSCode, Chromium, etc might be more of a concern if it starts to get more attention.
jeffhuys · 7 months ago
Much deeper and works better than anything like it, at least from what I’ve seen around the web. And that’s only from my phone. Very well done

I even got quake to run, haven’t tried connecting a keyboard yet.

DustinBrett · 7 months ago
Thanks for saying so, I've tried to make something which is "deep" in functionality. Some of the games/demos work better on desktop than mobile, but I tried to make it work on as many devices as possible.
vishnudeva · 7 months ago
Just magical! It's so realistic that I had to remind myself that it was a website and not a VM!

The nuances you've captured across so many different interfaces must've taken you a long time!

DustinBrett · 7 months ago
Happy to hear you found it realistic! It did indeed take many years to get the level of detail it has now. I still find things to add/adjust almost daily.
rfl890 · 7 months ago
The accuracy and attention to detail in the UI is amazing. You even got the little window borders right. Nice work!
DustinBrett · 7 months ago
Thanks very much! I'm glad to hear you considered it detailed. I have indeed spent a lot of time trying to get the little stuff right.

I am someone for which things that aren't quite right stand out, so it's been somewhat comforting to have a project where I can try and make things feel "right".