[HN Gopher] DaedalOS: Desktop Environment in the Browser
       ___________________________________________________________________
        
       DaedalOS: Desktop Environment in the Browser
        
       Author : aidog
       Score  : 165 points
       Date   : 2022-01-03 11:37 UTC (11 hours ago)
        
 (HTM) web link (dustinbrett.com)
 (TXT) w3m dump (dustinbrett.com)
        
       | archerx wrote:
       | On my test computer which is an i7 m620 and no GPU it is very
       | slow and takes the CPU to 100% on all cores while idle. opening a
       | window will just get stuck at "working on it". While it looks
       | nice this has probably been the slowest and least efficient web
       | desktop I have opened on this computer and I have looked at a lot
       | because I am building my own.
        
         | [deleted]
        
         | rstat1 wrote:
         | Yea I was also noticing a lot of "Working on it..." showing up,
         | and I'm using a modern machine with an 11th Gen Core i7.
         | 
         | I'm thinking most of the issue might be the wallpaper. Its cool
         | and all, but its a huge CPU drain.
        
         | mushufasa wrote:
         | To be fair, that is a 12 year old processor, so many modern
         | websites are probably hard
        
           | archerx wrote:
           | You would be surprised, most sites work well actually. OPs
           | site is probably one of the slowest sites I've visited with
           | this laptop.
        
           | [deleted]
        
           | DustinBrett wrote:
           | I indeed coded with modern computers/browsers in mind. It's
           | unfortunate to hear someone is siting at "Working on it...",
           | because at least for me on Chrome+Windows at home accessing
           | my production website, it is very quick. I have heard some
           | people also say it's quick, but it is starting to seem like
           | 10% or so are having issues with performance. I could see the
           | wallpaper being an issue. Or the CDN perhaps not having it
           | cached as my web server is slow if it needs to grab from
           | there. Thanks for the feedback!
        
         | DustinBrett wrote:
         | I've heard a few people with no GPU accel having issues with
         | the wallpaper. I should probably find a way to detect that and
         | unload it. Thanks for feedback!
        
       | acqbu wrote:
       | Amazing! Wondering how much work must've gone into this...
        
         | DustinBrett wrote:
         | Thanks! Ya it took a long time, a year for this v2 one.
        
       | ModernMech wrote:
       | Super cool, although I would not use the Windows logo for the
       | "Start" menu. Definitely change that and call it something else!
       | I'd imagine Microsoft jealously defends that sort of thing.
        
         | DustinBrett wrote:
         | Thanks for the tip! I am hoping it's ok as I have seen many
         | people use the logo and I actually got it from the free font-
         | awesome SVG icons.
        
         | Kwpolska wrote:
         | If you look around the filesystem and find the author's resume
         | in the Documents folder, you'll find out he works for
         | Microsoft. So I'd guess Microsoft doesn't mind as much.
        
           | DustinBrett wrote:
           | Hehe ya I actually just started there last month. They don't
           | know much about my project but atm at least I am confident
           | that it's ok.
        
           | ModernMech wrote:
           | Oh good, that's a relief!
        
         | xattt wrote:
         | I feel that direct mimicry of UIs and designs is a shibboleth
         | of someone just starting out and starting to getting a good
         | handle on tools.
         | 
         | Another is enthusiasm to share your own work with the world.
         | 
         | Neither is bad, but just something to be aware of.
         | 
         | I saw this in my own early work before I reached an equilibrium
         | of spontaneous original designs.
        
           | DustinBrett wrote:
           | I just love try to copy details of something. I've been
           | coding for 20 years, this is just a passion of mine.
        
           | FpUser wrote:
           | >"I feel that direct mimicry of UIs and designs"
           | 
           | Unless the unique design is the goal on its own why waste
           | time?
        
         | kroltan wrote:
         | It uses Windows design and icons for everything else, too.
         | Would require a complete visual overhaul to divorce from MS.
        
           | DustinBrett wrote:
           | I've attempted to isolate things enough where it should be a
           | mostly easy process to change "themes". But ya it would
           | require a lot of new stuff/gfx.
        
       | gjsman-1000 wrote:
       | I wonder if someone will eventually make a desktop OS that is
       | entirely web-based. No GTK or WinUI - everything is a web app.
       | Except that the DE would also be, technically speaking, a web app
       | itself that shows other web apps. Kind of like this, except
       | imagine if the example apps ("File Explorer") were real web apps
       | loading into the web app desktop environment.
       | 
       | I think Firefox OS was the farthest that this got, but I think it
       | has potential. Such an OS would basically just be Linux +
       | Headless Chromium + web browser API abstractions for things like
       | USB (WebUSB), etc.
        
         | carlesfe wrote:
         | This was done in 2005 by eyeOS:
         | https://en.wikipedia.org/wiki/EyeOS
         | 
         | Sadly, too advanced to its time, it was acquired but dismantled
         | some time later.
        
         | tbassetto wrote:
         | That's what we did at Jolicloud a decade ago to make a better
         | (different? beautiful? doomed?) OS for netbooks:
         | https://en.wikipedia.org/wiki/Joli_OS
         | 
         | The OS booted ASAP to a fullscreen Chromium instance, until we
         | added support for running Linux apps too later on. I didn't
         | work on the windows management so can't say more about this
         | technical side.
        
         | npteljes wrote:
         | How far is ChromeOS / ChromiumOS from what you described?
        
           | gjsman-1000 wrote:
           | Not there yet, because ChromeOS's user interface is not
           | written as a web app. (Think close, minimize, maximize,
           | window frame, taskbar, etc.) Same for it's native user
           | interface (Settings menu).
           | 
           | I'm thinking of a desktop environment where everything was
           | truly web - there was no native toolkit.
        
             | srtjstjsj wrote:
        
         | the_only_law wrote:
         | Not the same as what you're talking about, but I recall seeing
         | this a few months back and found it pretty cool:
         | https://github.com/udevbe/greenfield
        
         | zubnix wrote:
         | That's what I am building, except both native and web apps work
         | seamlessly together: https://www.greenfield.app/
         | https://github.com/udevbe/greenfield
         | https://twitter.com/FriedChicken/status/1420671685485867014?...
        
         | lsferreira42 wrote:
         | I don't really remember the name now, but gnome/gtk had a way
         | to render the entire interface in a browser, if anyone can
         | remember please let me know
         | 
         | Edit: it is the project the_only_law posted below
        
         | legrande wrote:
         | These (online browser based) desktop environments work best
         | when you hit F11 and go fullscreen, stripping the browser
         | chrome away.
         | 
         | Either the user does that, or we signal to the browser that
         | this is a 'fullscreen only app and you must run it fullscreen'
         | but that would be bad user experience, since most users would
         | struggle to exit it.
        
       | mysterydip wrote:
       | I've always loved "desktop websites", but beyond novelty I
       | haven't found a real use case. Maybe something like a thin client
       | or "work anywhere" for a business?
        
         | hutzlibu wrote:
         | As someone who has to regulary switch OS for various reasons: I
         | would love to have the same file explorer/desktop environment,
         | that works everyway in the same way. I hate the windows file
         | manager. I even more hate the chromeOS file manager, Mac has
         | been too long to remember - but if I use a new system and just
         | want to look at some files and do basic stuff - I do not want
         | to have to figure out the various ways of doing things. I just
         | want to do them, the way I am used to it.
         | 
         | So the general idea is good, but I do not like the windows
         | clone style of this one too much, also it is very slow. But
         | that might be different, if locally installed.
         | 
         | Btw. it took me some time, to find the github link
         | 
         | https://github.com/DustinBrett/daedalOS
        
         | creativenolo wrote:
         | Synology DSM is a well executed example of a good "desktop
         | website" use case. https://www.synology.com/en-uk/dsm
        
           | maushu wrote:
           | Would love a open source version of this for custom hardware.
           | Sometimes I don't feel like using a shell for my local
           | servers.
        
             | boomskats wrote:
             | DSM may not still be, but last time I looked it was built
             | using Sencha ExtJS.
             | 
             | I'm not sure when the buyout happened, but a few years ago
             | Sencha became the shadiest, nastiest organisation I've ever
             | dealt with. I'm keen to see what Synology do / have done to
             | displace it.
        
             | mysterydip wrote:
             | webmin is the closest thing I've found in the past, but
             | would love to hear of newer options
        
             | dutchmartin wrote:
             | Well, you can run their os on your hardware or in a virtual
             | machine using https://xpenology.org/
        
         | pkhodiyar wrote:
         | Yes, there are use cases, I too loved 'web-desktops' so made a
         | comprehensive github repo listing 171 such webDesktops that
         | people made. Please have a look here, you will love it :
         | https://github.com/zriyans/awesome-OS
        
           | mysterydip wrote:
           | This is an excellent list, thanks! I'll be spending a while
           | going through it.
        
         | ocdtrekkie wrote:
         | I suspect novelty is indeed the primary purpose here. I view
         | platforms like Sandstorm.io as a web operating system, since
         | you install apps and manage files that use those apps contained
         | within a web UI, but there's no real reason to emulate the look
         | of a desktop OS, especially consider how much you have to fight
         | with the browser to make that happen.
         | 
         | Most of the conventions of window-based desktop UIs inside a
         | web browser is silly because it is, itself, a window. You are
         | likely better off using multiple browser tabs than a fake
         | windowed UI inside a single browser tab.
        
       | xiamx wrote:
       | Reminds me of a (personal) website I saw long time ago that
       | replicates an earlier day OSX desktop, with functional itunes
       | player. Does anyone remember what it was called?
        
         | DustinBrett wrote:
         | I don't recall that exact one but I do love personal websites
         | designed as OS's, not sure why, just my thing.
        
       | codetrotter wrote:
       | Name seemed familiar. It's a play on the name of a guy from Greek
       | mythology. Daedalus.
       | 
       | https://en.wikipedia.org/wiki/Daedalus
       | 
       | Father of Icarus. From https://en.wikipedia.org/wiki/Icarus
       | 
       | > Icarus and Daedalus attempt to escape from Crete by means of
       | wings that Daedalus constructed from feathers and wax. Daedalus
       | warns Icarus first of complacency and then of hubris, instructing
       | him to fly neither too low nor too high, lest the sea's dampness
       | clog his wings or the sun's heat melt them. Icarus ignores
       | Daedalus's instructions not to fly too close to the sun, causing
       | the wax in his wings to melt. He tumbles out of the sky, falls
       | into the sea, and drowns. The myth gave rise to the idiom "don't
       | fly too close to the sun".
        
         | DustinBrett wrote:
         | Indeed! I liked that Wikipedia said "Daedalus was a skillful
         | architect and craftsman, seen as a symbol of wisdom, knowledge
         | and power". Not to suggest I am that, but the name seemed cool
         | anyway.
        
       | diegoperini wrote:
       | Great project!
       | 
       | By launching Doom and Blog Posts simultaneously, I caused some
       | kind of deadlock on Firefox 96.0b10 (64-bit) Developer Edition on
       | Windows 10.
        
         | ochrist wrote:
         | I just opened it in a new tab, and it crashed my computer
         | (Firefox 95.0.1 (64-bit) on Ubuntu).
        
         | DustinBrett wrote:
         | Ah darn. Some of the libs are less stable than others. I will
         | attempt to recreate that. My main test browser has been Chrome.
        
       | einpoklum wrote:
       | > Desktop Environment in the Browser
       | 
       | You lost me at the title already.
       | 
       | I suppose next they would want to integrate that web browser into
       | of systemd and then I know I've fully arrived in hell.
        
       | andwaal wrote:
       | Wow, I did not expect it to be this smooth. Really well done!
       | Also amazing to see that the creator has made this over 52x
       | streams in the last year.
        
         | DustinBrett wrote:
         | Thanks! Smooth was for sure a goal of mine, although from the
         | feedback I've seen I think Chrome+Windows is the only certain
         | way to keep it smooth. Thanks about the streams too, I enjoyed
         | making them and they motivated me to keep going.
        
       | xbar wrote:
       | Also, congrats on the new gig Dustin.
        
       | warpech wrote:
       | I love the fact that I can drag an mp3 from the "Music" folder to
       | multiple apps - Webamp, Video Player, even Monaco Editor!
        
         | DustinBrett wrote:
         | Thanks! I wanted to try and make things interactive enough
         | where people could mix and match ideas.
        
       | tux wrote:
       | Incredible! Good Job Dustin. Now you can create a software store
       | where you sell different tools that run on this OS and you have
       | yourself a OSasS (Operating System As A Service).
        
         | DustinBrett wrote:
         | Thanks! Haha ya that is the next step.
        
       | DustinBrett wrote:
       | Thanks everyone for the feedback. This has been my passion
       | project for all of 2021 and I am glad to see someone liked it
       | enough to post it on HN.
        
       | IronWolve wrote:
       | https://github.com/DustinBrett/daedalOS
        
         | DustinBrett wrote:
         | Thanks for the shout out! Indeed I tried to keep it all open
         | source. Feel free to post any issues on that repo.
        
       | pkhodiyar wrote:
       | I love 'web-desktops' so made a comprehensive Github repo listing
       | 171 such webDesktops that people made using react, angular,
       | electron, or simple HTML.
       | 
       | Please have a look here, you will love it :
       | https://github.com/zriyans/awesome-OS
        
         | DustinBrett wrote:
         | Thanks for doing this pkhodiyar! It's an amazing list and I am
         | honored to be on it!
        
       | antris wrote:
       | Could open the browser and run DaedalOS on it, but the browser
       | inside that DaedalOS wouldn't run another DaedalOS anymore.
       | 
       | Hee hee.
        
         | laurent92 wrote:
         | Did they not implement it as an iframe?
        
         | DustinBrett wrote:
         | Thanks for the feedback. I have actually heard of other people
         | doing this without an issue and the Browser is indeed just an
         | iframe, so I am not sure why it didn't work for you.
        
       | c7DJTLrn wrote:
       | Really impressive. With work I could easily see this being a
       | product with big customers.
        
       | unixhero wrote:
       | Is is this a competitor to AaronOS then?
        
         | DustinBrett wrote:
         | Thanks! I know AaronOS and no it's not competition! His OS did
         | help inspire me though!
        
         | AaronAdams wrote:
         | AaronOS dev here. I love the work he did on this, and that mine
         | is considered a source of inspiration.
         | 
         | One thing is certain when comparing the two - I have a LOT to
         | learn from this project. The inspiration goes both ways.
        
       | urban404 wrote:
       | Amazing work!
        
         | DustinBrett wrote:
         | Thanks!
        
       | Daegalus wrote:
       | wow, I was not expecting it to run buttery smooth on my phone of
       | all things. it's a Pixel 6 Pro, so not old, but most JS apps work
       | for shit regardless, this thing runs better than most native apps
       | on my phone, amazing work. I hope you keep building and improving
       | on this. I personally have a distaste for JS and would love to
       | use this if it some day became a full desktop solution.
        
       | legrande wrote:
       | There's a few of these knocking around the web:
       | 
       | https://winxp.vercel.app/
       | 
       | https://windows96.net/
       | 
       | https://www.windows93.net/
        
         | bravetraveler wrote:
         | Deleted the computer on windows96, wasn't disappointed
         | 
         | (volume warning)
        
         | syx wrote:
         | I keep track of all these web desktops around the web here [1]
         | if you're interested in a even bigger list :)
         | 
         | [1] https://simone.computer/#/webdesktops
        
           | Lerc wrote:
           | With all these I feel like there is an opportunity for a
           | standardized API for client programs.
           | 
           | Web apps running in a frame could postMessage requests for
           | selected services from the desktop environment. It could
           | potentially allow for a app to easily support a large number
           | of different environments.
        
           | quirino wrote:
           | Incredible website! Very functional for how experimental it
           | is and full of neat surprises. Love that a screensaver comes
           | on after it is inactive for a while.
           | 
           | (I found the pizza recipe btw)
        
             | syx wrote:
             | So glad you explored it all the way down!! You might find
             | some more Easter eggs here and there ;)
        
           | DustinBrett wrote:
           | Thanks syx for the work you do! And that screensaver is
           | awesome on your site, Hack the Planet!
        
             | syx wrote:
             | Thank you Dustin and congrats for your new release,
             | definitely worth all the effort you put into it!!
        
       | 1MachineElf wrote:
       | Dustin live-coded every week for a full year while working on
       | this project. Here's the video playlist on YouTube:
       | https://www.youtube.com/playlist?list=PLM88opVjBuU7xSRoHhs3h...
        
         | DustinBrett wrote:
         | Thanks for the shout out! Indeed it was a long year of weekly
         | streams.
        
       | mdtrooper wrote:
       | I know this project http://www.xpud.org/ . And yes, this is
       | really a desktop mixed with a browser.
        
       | amaccuish wrote:
       | Nice, even replicates the slowness of the start menu.
        
         | DustinBrett wrote:
         | Thanks! I think the slowness, ideally is a cache thing. At
         | least there is a case where it can be "snappy"-ish.
        
       | NKosmatos wrote:
       | Really nice and fluid interface, if you liked the animated
       | background you can generate more from https://www.vantajs.com/
        
         | DustinBrett wrote:
         | Thanks! Ya VantaJS has some really cool ones. I ended up doing
         | some tweaks to this one to allow it to change colors and work
         | with the latest Three.js.
        
       | deepstack wrote:
       | Appreciated what has being put into this effort. Quite slow on
       | macbook pro with 16gb of ram. This makes me question the
       | usability of React. Wouldn't something like this better written
       | in something more lightweight such as Mithril or SolidJS, Vue,
       | etc?
        
         | codeptualize wrote:
         | I did some quick profiling and it is doing quite a lot of re-
         | rendering, but I do not see any of the common issues you see in
         | actual slow React apps. For me it performs well, even on 6x
         | slowdown there is no visible lag or "stickiness" (I'm on a
         | Macbook Air M1).
         | 
         | The background does take up some CPU, have you tried if it's
         | still slow when you change it to a static picture? Side note:
         | it's absolutely insane that you can change the background!
         | Amazing work, such detail.
         | 
         | A different framework would not make a difference per se, maybe
         | less re-rendering could help a bit, you can easily do that in
         | React. And btw I'm not hating on the other frameworks
         | mentioned; absolutely legit choices, but React is as well.
         | 
         | There are many very performant and user friendly apps written
         | in React, and you can easily write shitty apps in all
         | frameworks (React included).
         | 
         | I'm very impressed by this app, so much functionality and
         | details, honestly insane.
        
         | DustinBrett wrote:
         | Thanks for the appreciation. In general at least for me I found
         | it quite quick on Chrome/Windows, so at least under some
         | scenario it can be reasonably quick. If it is slow, it's likely
         | not React as I have quite a few other things that run slower,
         | like the wallpaper. I haven't tested Safari much as I don't
         | have a Mac, but I will continue to try and optimize. Thanks for
         | feedback!
        
         | dustymcp wrote:
         | Thy would have the same problems past x amount of components
        
         | endofreach wrote:
         | This is my usual experience with react. Also i am just not
         | liking the code... I really don't understand why it became so
         | popular except for Facebook marketing it so much hence people
         | bought into the hype. And now it has the big ecosystem, which
         | is one of the main arguments to use react for many people...
        
           | snowl wrote:
           | Because it's amazing to develop in and if you are good at
           | development it's not hard to make performant applications.
           | Don't blame the framework for a lack of skill
        
             | bsagdiyev wrote:
             | If the trigger goes off just being looked at, maybe the
             | manufacturer shares blame...
        
             | mikojan wrote:
             | This is breathtakingly wrong. Performance bottlenecks are
             | notoriously hard to fix in ReactJS. Once you've exhausted
             | memoization, hoisting, even propagating state via message
             | passing, you have to fight tooth and nail to rip a hot path
             | out of ReactJS' grip. It's horrible. And it's the prize you
             | pay for using a framework everybody and their grandmother
             | can learn reading only a 5 minute blog post (the true value
             | proposition here).
        
           | jraph wrote:
           | On my PinePhone, I can immediately tell whether an app is
           | built with React.
           | 
           | - the app usually takes several dozens of seconds to load
           | 
           | - the phone becomes warm
           | 
           | - any text I typed is not restored after a crash or a page
           | reload if the developers have not explicitly saved my
           | keystrokes in the local storage.
           | 
           | - each key press in an input takes a good fraction of a
           | second (if not one full second) to appear on the screen
           | 
           | For the last one, I feel the lag on a decent laptop too (even
           | if the lag is shorter). I know why: it is good practice to
           | feed back any input into the state of the React component so
           | everything is in sync. This triggers a re-render and if the
           | devs were not careful, a good chunk of the app is re-
           | rendered, which does not necessarily lead to a browser re-
           | render / a blink, but definitely makes React execute a lot of
           | render methods and re-diff virtual DOM trees. So each key
           | press makes the browser run some JS that makes useless
           | computation and accesses to the DOM. It's called "controlled
           | component" [1]. Well, this is good practice for the devs, but
           | it is user hostile. I wish more things were designed user-
           | first instead of dev-first.
           | 
           | React + React-dom alone is around 130 KiB, 42 KiB Gziped [2].
           | It's without counting the usual dependencies (classname,
           | Redux, browserlist, polyfills...). It's also more than three
           | times the size of the entire frontend of the SMS app I'm
           | building with Svelte. The heaviness is insane.
           | 
           | It is probably possible-ish to build an almost lean app with
           | React. Signal seems to be kind of an exception and feels
           | quite fast on my laptop (can't tell on the phone). It leaks
           | memory and gets OOM killed quite often but React might not be
           | to blame here. But React apps usually come with a awful lot
           | of dependencies, to add insult to the injury.
           | 
           | It's render and diff'ing lags, fan takeoffs and RAM
           | exhaustion all the way down.
           | 
           | [1] https://reactjs.org/docs/forms.html#controlled-components
           | 
           | [2] taken there, as linked in the tutorial
           | (https://reactjs.org/docs/add-react-to-a-website.html):
           | https://unpkg.com/react-dom@17/umd/react-
           | dom.production.min.... and
           | https://unpkg.com/react@17/umd/react.production.min.js
        
             | nafey wrote:
             | > I know why: it is good practice to feed back any input
             | into the state of the React component so everything is in
             | sync.
             | 
             | I used to this. A better approach is to use the onBlur
             | event of the input field to update the text to state. The
             | text itself can be accessed via a reference to the input
             | field in the onBlur event (created with useRef). This makes
             | it so that not every typing action rerenders the whole
             | component.
        
         | lab14 wrote:
         | I have the same laptop and it runs pretty smooth on Chrome.
        
         | Isthatablackgsd wrote:
         | I have Macbook Air M1 8GB, it ran smoothly on my side. The
         | highest CPU usage I seen from that is 30%. Doom and Nuke Dukem
         | 3D is running smooth in there as well. And my NUC (i7 8559U)
         | have a tiny input delay but overall ran smoothly on it. I use
         | Vivaldi for my Macbook and Firefox for my NUC.
        
           | DustinBrett wrote:
           | Glad to hear it went well. I had this going on a 4th gen i7
           | and it also wasn't too slow, so I think it depends on a few
           | factors as to how quick it is for others.
        
         | talhah wrote:
         | Running perfectly on my OnePlus 8, another user indicated that
         | it also runs fine on the OnePlus 6.
        
         | maushu wrote:
         | Quite interesting since on my mobile (OnePlus 6 with Chrome)
         | seems kind of performant.
         | 
         | Edit: I wonder if its some kind of functionality causing the
         | slow down? Perhaps Safari doing something stupid? Have you
         | tried Chrome or another browser?
        
           | DustinBrett wrote:
           | It's possible Safari is indeed a bit slower, also the
           | animated wallpaper seems to have mixed performance results.
        
       ___________________________________________________________________
       (page generated 2022-01-03 23:02 UTC)