Show HN: DaedalOS – Desktop Environment in the Browser
201 DustinBrett 79 5/25/2025, 4:06:12 PM github.com ↗
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!
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.
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.
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.
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.
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.
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.
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.
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
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. :-)
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.
I even got quake to run, haven’t tried connecting a keyboard yet.
The nuances you've captured across so many different interfaces must've taken you a long time!
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".
Again, kudos for running this stuff natively in the browser, it's absolutely insane and I'm definitely gonna snoop through the source code later!!
First crazy idea that came to mind was a multi user desktop environment for an intranet where everyone has their own desktop but could also request access to other desktops entering and leaving them as they are working together through the day.
Hopefully one day it finds the right use case, but until then I am enjoying working on it.
No comments yet
Though I'd have preferred the option to switch to a light theme.
I hope to have light mode in the coming years as it's on my list to detangle the mess of styling I did to create the dark "theme".
How about running Linux there: https://bellard.org/jslinux/vm.html?url=alpine-x86.cfg&mem=1...
As for running Linux, I can indeed do this with v86 and I have a small linux image which is embedded into my project.
https://dustinbrett.com/?url=/System/linux.bin
Worked flawlessly and is a fantastic experience. I hope Microsoft is scared of the efficiency of your experience.
Besides having something you can continuously work on, what's the current concrete end goal for it for users?
As my personal website it has already reached the final goal I had for it. For other use cases, I am going with the approach of "if you build it, they will come".
I am a big fan of desktop environments so I know there are some good ones out there and I have indeed tried to make one of the best.
Congrats on the Webby nomination!
It was nice to have a few Webby nominations, but unfortunely I didn't get picked this year. I will try again next year and until I win.
https://dustinbrett.com/?url=/Users/Public/Documents/Games/D...
PS: I do not want the next generation of apps to be running only on top of these. We already have layers on top of layers in software.
And more layers on top of layers will be built, forever. That's just change, and for as long as programmers are alive, more abstractions will come up and ossify.
Don't think there is much we can do to fight it, regardless of how much we disagree with it.
Any other uses which may come from it would also be of interest to me and I am excited to see what can come of it in the future.
I still look at it when I want to remember how fun, cool and silly programming can be. I seriously love this project.
I still update it all the time so it's cool to hear you sometimes check back.
You can check with going to
chrome://gpu
(I assume for chromium it is the same adress as for chrome)
Graphics Feature Status
=======================
* Canvas: Hardware accelerated
* Direct Rendering Display Compositor: Disabled
* Compositing: Hardware accelerated
* Multiple Raster Threads: Enabled
* OpenGL: Enabled
* Rasterization: Hardware accelerated on all pages
* Raw Draw: Disabled
* Skia Graphite: Disabled
* Video Decode: Hardware accelerated
* Video Encode: Software only. Hardware acceleration disabled
* Vulkan: Disabled
* WebGL: Hardware accelerated
* WebGL2: Hardware accelerated
* WebGPU: Disabled
* WebNN: Disabled
One thing I found as a minor distraction was that when you go to browse a folder the tab title of tab changes to the folder.
...I love it.
I was going for functionally impractical.
- Winamp. With skins.
- SWFs. Badger.
- A bunch bootable ISOs with OSs like Kolibri. Kinda nuts to have a real OS in a browser OS on a real OS. Also: Windows RG.
- Web-self-inspector. <https://malleable.systems/> anyone?
- Games. Doom. Keen 4. Quake 3. What the heck- Quake 3!?
Credit to Webamp for the amazing features including hosting a winamp skin gallery which I use to get random skins. Also Webamp can run Milkdrop/Butterchurn for music visualization which I use daily on my spare computer.
I tried to add some of the old Flash stuff I recalled from my teen years.
The introspection I get from "DevTools" is very cool and fun to see, credit to Eruda for that.
Glad you liked the games I've added. I could add some other cool ones into the browser but the files get to be 100's of megabytes.
/ducks