30 ms·
Os.js – open-source JavaScript web desktop platform with a window manager
- ale42 3y agoFor "some" reason Tetris feels less reactive than an old Windows 3.1 Tetris running on a 386 at 20 MHz...
- jongjong 3y agoReminds me of Buddy Pond https://buddypond.com/ https://buddypond.com/
- nXqd 3y agothis is super impressive
- robertwt7 3y agoFYI, last code update on the repo was Sept 22, 2022. seems inactive already
- gjvc 3y agowhat's wrong with you that you can't say something positive about it?
- DustinBrett 3y agoIndeed there hasn't been much movement on that project in a while. My project was inspired by OS.js and a few others like Windows 93. It's been actively maintained since I started it nearly 3 years ago. I hope to work on it for a long time to come. If interested in checking out the repo it's on GitHub as daedalOS. My personal website is the demo: https://dustinbrett.com/ https://dustinbrett.com/
- 4RealFreedom 3y agoThat's really great! Good job.
- DustinBrett 3y agoThanks very much!
- colecut 3y agoYeah, the thoroughness of this is very impressive.. Also nice how well it renders on a small phone screen, for a desktop OS simulation.. I just enjoyed a round of DX-Ball, that took me back a lot of years
- DustinBrett 3y agoThanks for noticing. I have tried to be quite thorough and I enjoy trying to get every little detail. I did indeed try and keep things as responsive as possible. Usually it works out but some of the apps are not as good as others when it comes to resizing and inputs. I had some great memories from DX-Ball and was quite happy to find a random Russian JavaScript port that I was able to integrate into my site.
- mdwalters 3y agoLink, please. Or were you referring to the organization name?
- DustinBrett 3y agoHere is the GitHub link to the source code: https://github.com/DustinBrett/daedalOS https://github.com/DustinBrett/daedalOS
- Lerc 3y agoI like this one. It's nice to see it utilizing a lot of browser enhancements that didn't exist when I had a go at making one. How much server side infrastructure does yours use? I used just a tiny shim to do login, serve static files, and establish a websocket for a FileIO. It provided a socket on the server side that processes could connect to and run things on the browser side, much like X11 processes connect to the X server. Every now and then I do a couple of tweaks to update mine. The first few things I tried out with ChatGPT were things that I wanted to make for my desktop environment (an IndexedDB filesystem and a transmit API through a messagePort system) It may seem like wasted time, but you never know how things turn out. In the last week I extracted a lot of the little paint program I made for my desktop and turned it into a ComfyUI plugin.
- DustinBrett 3y agoThanks! I did indeed try and use a lot of modern browser features when possible. It's a fully client-side app which only has static files. It would be cool to connect to X server and perhaps one day I will move into that area with a back-end, but it's been a goal of mine to keep it a fully front-end app.
- tommica 3y agoOh, I remember seeing that one some months ago and being super impressed! It inspired me to to make my own version of it, that even though I got bored with was a nice challenge to have. When you start making your own version, it gives some insight of how much work it really takes to build something like that, and it really is just wow. At some point I humored the idea of using that type of a setup for our online system, but doubt the end-users are ready for that kind of a web ui just yet.
- DustinBrett 3y agoThat's great to hear it inspired you! It is indeed a fun challenge but can be time consuming and it requires passion to keep going. I have become a bit obsessed with it over the last few years. A few people have forked my project and are attempting to make things from it. I think it's cool they are doing that but I am happy to keep it as my side project.
- Grimburger 3y agoI really like your build videos for DaedalOS, great insight into all the components. Topnotch stuff.
- DustinBrett 3y agoThanks so much, I am happy to hear you checked them out and liked them. I still work on it nearly daily in my nights so I am thinking of restarting my weekend live streams as I did them every week in 2021.
- Grimburger 3y agoI don't think you planned it as such but it's basically become a full advanced course into what you can actually do with react. Know you don't get many views but it's a tremendous resource and still holds up well.
- supermatt 3y agoIm usually quite dismissive of these browser based "desktops", but wow. I am amazed just how much detail and functionality you have put in to that. I'd recommend people have a look at the intro video, as theres a LOT more than meets the eye: https://youtu.be/CkvKPspIPLs https://youtu.be/CkvKPspIPLs
- DustinBrett 3y agoThanks so much, It's great to hear that! I have spent many hours working on this project for people to have the feeling of functionality and detail. My goal is to recreate everything an OS can do as much as is possible within a browser, and to the same pixel level detail as seen in Windows 10. It's a never ending project that I really enjoy working on. Thanks for checking out my video also, I plan to make another one shortly as that is a year old and I have added quite a bit of new stuff since then.
- mdwalters 3y agoThis project seems very well made; someone should fork it to make a more active revival project.
- userbinator 3y agoI'm not sure if your comment was meant to be satirical, but thinking a project less than a year old is "inactive" is so stereotypical of the JS world.
- lolinder 3y agoThe copyright on the site is from 2009, so "inactive already" seems a bit unfair—even if that were the last commit ever, that's a 13-year run, which is a lot longer than I've ever maintained a side project!
- seabrookmx 3y agoIt's a 10 year old project. Less than a year of inactivity isn't a big deal for something that's basically "finished".
- tambourine_man 3y agoI went looking for a terminal in the Apps menu
- elcaro 3y agoI went looking for a web browser!
- DustinBrett 3y agoI swear they used to have a Terminal and a few other features that seem missing from the existing demo. I saw videos of it from nearly a decade ago where it had a lot more stuff.
- johnwheeler 3y agoSerious question, not trying to be a jerk. Why do people keep making these? Because they’re fun? I don’t think I’ve ever seen one of these gain traction.
- sharts 3y agoProbably to practice JS.
- yen223 3y ago"It is fun" is a perfectly valid reason to do this.
- DustinBrett 3y agoAs someone who has been working on one for nearly 3 years, it is indeed a lot of fun to make. I also learn a lot from doing it and I enjoy making the app as I use it for my personal website. It's my side/passion project and I hope to get to work on it for a long time to come.
- ChrisArchitect 3y agoheh, they don't. This is from like 2011 https://news.ycombinator.com/item?id=3252199 https://news.ycombinator.com/item?id=3252199
- pipeline_peak 3y agoThey clearly have talent, I don't understand why they don't make products like Draw.IO or at least something more meaningful and original than a 2000's era desktop environment. Based on the docs https://manual.os-js.org/ https://manual.os-js.org/, they clearly have some serious intention. This is what happens when the Wozniak's of the World don't have a Steve to guide them. They do what they want without a clear vision to practicality.
- devjab 3y agoThis is going to be a bit unrelated to what you said, but I recommend looking into Mermaid diagrams in your MD files as a replacement for draw.io. It saved us a bunch of time and has given us documentation diagrams that developers actually want to update because they don’t have to spend 9 years aligning lines.
- travisgriggs 3y agoI couldn’t play Tetris on my phone because I needed to press space bar to start. On one hand, I think these things are cool. Why did they do this? Because they could. On the other hand, I still wonder why they do it.
- qup 3y agoWhen someone adds virtual keyboard support so they can play Tetris in there on their phone, you will at least be able to eliminate any rational reasons.
- toastal 3y agoThe inclusion of a XMPP client is cute
- jancsika 3y agoLooks like the Tetris pieces aren't aligned to the canvas pixel grid, causing unnecessary antialiasing. This causes the piece borders to look eternally blurry. To fix it, you should add a "cleaning cloth" app that the user can drag and drop onto the Tetris canvas that moves the pieces horizontally by 0.5 pixels. Or even better, only move the pieces that intersected with the cleaning cloth. :)
- zamadatix 3y agoCSS should have a way to handle all offset properly at some point https://www.w3.org/TR/css-values-4/#round-func https://www.w3.org/TR/css-values-4/#round-func but until then you can use JavaScript to automatically get the correct offset.
- SeanAnderson 3y agoI would've guessed the entire thing rendered in canvas, but no, it uses HTML and just uses a canvas for stuff like the paint program.
- erikpukinskis 3y agoPeople underrate how much good stuff CSS gives you for building UIs. If you did everything in canvas you’d just have to reimplement something like flexbox to center, align, stretch, and animate all your icons text, boxes, buttons, etc. Why not just stay in HTML and use a layout engine that’s already implemented, and highly optimized for literally every platform.?
- toastal 3y agoMost folks seem adverse to learning CSS. In contemporary times they’ll go as far as to add 44 cryptic utility class names to element to avoid writing a line of the stuff.
- tomelders 3y agoIt boggles my mind. CSS isn’t hard anymore.
- zith 3y agoWhat is the best way of learning modern css?
- 0wis 3y agoInterested too. I did several full courses and exercises on it (Freecodecamp, W3, Mdn, Codepip…) and I still struggle a lot to create clear UI and have each HTML element where I want them. I am looking at CSS frameworks (BEM, Tailwind) but I would like to master « vanilla » CSS.
- 3y ago
- arunc 3y agoWonder why people choose gitter over something functional like zulip chat.
- IshKebab 3y agoI think it's older.
- notpushkin 3y agoGitter is now a Matrix.org instance, so pretty functional if you ask me.
- patmorgan23 3y agoZuilp is pretty new
- ensocode 3y agoGames collection is awesome - Tetris and Wolfenstein 3D
- kbrannigan 3y agoWe built a OS (compiler) on top of our OS(windows) on top of our OS(web broswer) on top of our OS.js
- thefoolisidiot 3y agoTransform this to OS for DIY NAS and you'll have great success !
- qalmakka 3y agoThese kinds of things have been a recurring trend since the mid '00s, I do remember people writing Windows-lookalikes in JS even back then. Every time a new one pops up I get this very nostalgic feeling for an era of computing that, sadly, I think is dying real fast.
- trumbitta2 3y agoI have seen them in the late '90s, but in Flash
- DustinBrett 3y agoAt least for me I have been making one for nearly 3 years and hope to be able to work on it for another 30 years. I use it as my personal website so perhaps this is an additional incentive for me.
- rausr 3y agoAll the text in the Desktop is in French for me. Is that because I'm in the German-speaking part of Switzerland, and it's somehow geo-locating incorrectly?
- riedel 3y agoFor me only the advertisement in the webpage was geolocalized: in Germany everything was in English except the ad was in German
- deleted 3y ago[deleted]
- naillo 3y agoIt's funny how this is faster and more responsive than my actual windows desktop window manager experience (speed of opening apps etc).
- deleted 3y ago[deleted]
- t0mas88 3y agoIt's crazy how slow Windows 11 is on modern hardware. Even on a modern CPU, with 16gb ram, it takes serious time to load things. Very sluggish compared to a Macbook Air of a similar price point. I can't imagine that big a difference is due to hardware differences. The M2 is fast, but Intel 12th gen isn't much slower just more power hungry. That means it's a software issue. Which is sad considering how good the NT lineage of kernels was, they have been making a worse and worse OS around it. They have themselves to blame for dropping from nearly 100% desktop marketshare to around 60% now. Only time until they're going the AOL or Yahoo way...
- XCSme 3y agoI tried to test your remark and drag my Brave browser around, my whole PC froze for 2 seconds. On a 12c/24t 5900x...
- notpushkin 3y agoTangential, but https://windows93.net/ https://windows93.net/ is by far my favourite take on the “web desktop” concept.
- ale42 3y agoLol, that one is really funny! Especially for those who used Windows 95...
- easton 3y agoIn a similar vein, my favorite is Windows RG (really good edition): https://www.newgrounds.com/portal/view/27549 https://www.newgrounds.com/portal/view/27549
- DustinBrett 3y agoHaha ya that one is a great parody. Flash actually had tons of these, but RG was the best. I have the file (/Users/Public/Documents/Flash Files/Windows RG Build 207.swf) on my website and run it via Ruffle.
- dividuum 3y agoYou might enjoy Kitboga using that to mess with tech support scammers: https://www.youtube.com/watch?v=F0peLpovDB8 https://www.youtube.com/watch?v=F0peLpovDB8 and https://www.youtube.com/watch?v=XxWFdFhHd9U https://www.youtube.com/watch?v=XxWFdFhHd9U
- rollcat 3y agoI find it ironic that the "boot log" displays the text "Safari is teh new Internet Explorer", while it's one of the two final holdouts against Chrome's complete and undivided domination, as Google is trying to force WEI down our throats. The open web is dying, and it's those messages that are killing it.
- jchw 3y agoI hate this logic. Neither Safari nor Chrome are good for the open web, Google being worse than Apple does not make Apple some kind of hero. As far as WEI goes, I certainly do not expect Apple to save us considering they've already been happy to implement remote attestation in their platforms and of course, in Safari, in the form of PATs. Meanwhile, Safari lags on web standards that are actually good, (while still implementing remote attestation in their browsers,) forcing you to test all of your stuff on Safari. I never have to test my stuff on Chrome, because well, Chrome implements every standard I care about that Firefox implements. But with Safari, I never know. I'm the resident troubleshooting guy for a bunch of people, and it's difficult to express the confusion and anger I get when I have to explain to people that yes, Safari on iOS really, truly still doesn't support WebM or Opus fully. Some people (insanely, imo) believe WebM is somehow evil, but I would love to hear why Opus is evil. What Google and Chrome are today is vastly different and far worse (IMO) than what Microsoft and Internet Explorer were for the web and internet. Microsoft was also bad for the open web, but they couldn't dream of something as devious as WEI; the technology wasn't even there yet. Meanwhile, Safari is basically hated for the same reasons as IE: You have to test with it to make sure things work (and of course that includes needing to own Apple products to even have the privilege of doing so...)
- syx 3y agoI recently wrote a blog post [1] about the comeback in popularity of these web desktops, especially after seeing a lot of these being posted on HN recently. OS.js was one of the early projects I started tracking years ago, and it's really well designed and documented. The interface always reminded me of those mid 2000's distros with GNOME 2, which is a nice thing since most nostalgic web desktops tend to have Windows 9x themes. [1] https://system31.simone.computer/blog/desktops-zip https://system31.simone.computer/blog/desktops-zip
- deaddodo 3y agoEyeOS was doing this around the turn of the millenium: https://en.wikipedia.org/wiki/EyeOS https://en.wikipedia.org/wiki/EyeOS The initial release of OS.js was around 2015, over a decade later.
- mid-kid 3y agoI used to play around with and use this, but I could never find a good use for it. It felt really counter productive to open up a desktop within my desktop when it was a laptop, so I had it anywhere already
- Towaway69 3y agoBut can I open a browser in desktop within the browser on my desktop? Exactly my problem too, what's the main use case for a desktop in browser?
- injidup 3y agoWhat's the use of a desktop. I never see mine. Window at full screen always hide it. The taskbar is where it's at or hotkeys
- jeremyjh 3y agoThe taskbar is typically managed as part of the desktop environment. This term doesn’t refer only to the folder represented as empty space behind the windows.
- gumballindie 3y agoWhat I dont understand is why is everyone so obsessed with anime. I opened this app and sure enough there was an anime wallpaper lurking in there somewhere.
- Dalewyn 3y agoJapanese entertainment is one of the last remaining forms of sincere entertainment devoid of political correctness and driving narratives.
- voidfunc 3y ago> driving narratives lolwut. Japanese anime almost always reinforces traditional Japanese social and cultural norms. It's practically a teaching tool for kids there on how to behave in Japanese society.
- neoromantique 3y agoSee, it's not <insert some bad take about left>!
- augusto-moura 3y agoAnime is just a medium, not a genre. There are good and bad anime, just like there are good and bad movies, books, and TV shows. I don't think it's fair to judge an entire medium based on a few bad examples. I'm not a huge anime fan, but I've seen some good ones.
- pessimizer 3y ago> I don't think it's fair to judge an entire medium based on a few bad examples. Nobody said that Japanese cartoons that teach Japanese values were bad until you just did.
- anthk 3y agoNo. Even Evangelion it's a satire on the Japanese nerd obsessed with making women sexual objects. On Dragon Ball Vegeta (an obvious depiction of the old fart Japanese nationalist, Saiyans are like a samurais/ronin in space, same armor as the samurais et all) always loses against the open-minded and naive "ninja mountain-born singleton hick" Goku from Osaka/Kansai, which is the "progressive", "cheerful/open minded" and careless city/region from Japan. Technology and modernisation from the US saved Japan and that's symbolized by Bulma.
- davb 3y agoMeta, but I love the simplistic design of the landing page. That textured background is so much less brutal than a solid colour. I thought about using a background like that in my terminal (to give it a very subtle paper like quality) but was surprised to find nothing online about other people doing the same (I had hoped for screenshots and texture packs).
- chris37879 3y agoIts curious you couldn't find anything, tons of terminal emulators out there support this, I'm not sure what platform you're on, but on macOS, iTerm2 supports image backgrounds, on Linux, kitty is my goto customizeable terminal emulator, and I think even the new Windows Terminal supports them! Also, I think gnome's terminal emulator has an effect like this on it by default (or at least it did in some distro's default setup I've used)
- davb 3y agoIt wasn’t that I couldn’t find a terminal supporting background images (indeed, this is very well supported). It was that I couldn’t find anyone referencing using subtly textured (slightly noisy) images to avoid a very solid background.
- chris37879 3y agoMost of the ones I’ve seen that support backgrounds have the usual options to tile/stretch the background, what’s stopping you from finding a pattern you like and making it a tiling background? There used to be a (now defunct) site out there called subtle patterns that had a massive CC0 library of these kinds of textures, toss it in an image editor, apply a color you like, tile it and call it done!
- JNRowe 3y agoEterm used to have a support pack with some nice backgrounds for tiling, which sadly appears to be more difficult to find than it would've been a decade ago. I did find a mirror¹, but that is purely because I remembered the filename for some strange reason. Some of the textures in tile/ are still quite nice, but not all of them work so well with our modern higher resolution displays from a quick play. ¹ https://distfiles.macports.org/Eterm/Eterm-bg-0.9.6.tar.gz https://distfiles.macports.org/Eterm/Eterm-bg-0.9.6.tar.gz
- mysterydip 3y agoI feel strangely compelled to build/use one of these, and yet at the same time I can't think of an actual use case.
- gspencley 3y agoThe use case is a return to "dumb terminals." Many "Enterprises" already go as far as they can with remote desktop and VPNs but lots of enterprises would love to issue an employee a device that runs the entire OS remotely so that the device effectively becomes just a terminal and 100% of employee generated data stays within the origination's servers and networks. I'm not saying that this makes for a good employee experience, but it's a use case.
- jeremyjh 3y agoSo does this sync all the machine state to the cloud? I thought they mostly used local storage.
- gspencley 3y agoI don't know about Os.js, specifically, but yes if you were going to implement a browser based OS for the purpose I described then local state would be relatively transient and state would be persisted on the enterprise side. There's no reason you need to use something like localStorage or indexedDb for anything, really. The only thing that buys you are performance and offline capabilities. But if security / keeping data "in the enterprise" is the priority then you can minimize what gets persisted locally.
- jeremyjh 3y agoMy point was simply that no one is doing that. That isn't what these are for, and an enterprise that wants to provide a thin client desktop can't use anything that doesn't run the applications the business already uses, so they are going to be deploying an actual windows desktop hosted in the cloud using any of the many solutions available from tier 1 cloud provides or others to do that.
- shireboy 3y agoWhat a great way to make things that aren’t mobile responsive. Maybe this one is better, but I’ve worked with a large enterprise web app that uses a similar approach and it’s horrible. Everything opens in a “window” and there is weird state being passed around windows (ie drag a item from list window to the form window to view details). Not fun on a desktop and zero chance of it working on a tablet or phone.
- DustinBrett 3y agoI've spent a lot of time on my desktop environment to make it mobile responsive. I kind of went in with the idea of making something that could fit into any viewport. Most of the time it works, as much as is possible to transfer the desktop metaphor into mobile. But because my apps often rely on third party libraries, sometimes responsiveness is less than ideal.
- daltont 3y agoI find these web desktop idea interesting but a solution looking for a problem. Part of me wants to post the Batman slapping Robin meme with Robin saying "Maybe I should develop a web desktop that runs in the browser"
- pohuing 3y agoI know a couple people who have made their own versions with just that reason.
- DustinBrett 3y agoAt least for me as someone who made one, the inspiration was seeing really well done ones like OS.js or Windows 96 that got me thinking it was "possible" to make something realistic. But the core idea was less about making a desktop environment and more about my personal website being like someone RDP'd into my machine and could see all my stuff.
- gspencley 3y agoI'm disappointed that it doesn't have a web browser so that I can run os.js inside of os.js inside of os.js inside of os.js inside of os.js...
- DustinBrett 3y agoIf you want some Browserception, my desktop environment (https://dustinbrett.com/ https://dustinbrett.com/) can indeed do this. But after a few levels in Chromium you need to add a random query string (/?a=1) to the URL otherwise it stops working.
- chrisweekly 3y agoShould the title say (2021)? The last release (or even git tag) is from July 2021.
- sebastianconcpt 3y agoIt's a remarkable tech achievement, but what's the applicability?
- austin-cheney 3y agoI wrote a similar concept around private internet access to your file system. It’s at https://github.com/prettydiff/share-file-systems https://github.com/prettydiff/share-file-systems The window and state management can be demoed on my personal site at https://prettydiff.com https://prettydiff.com
- e12e 3y agoSomewhat related, the Lively Kernel project - Smalltalk like system on web technologies: https://github.com/LivelyKernel/lively4-core https://github.com/LivelyKernel/lively4-core
- petabytes 3y agoOnce I tried a Linux-based livecd distro with the UI being entirely in JS, ran through CEF or electron. It was an abomination, and awfully slow. There's just something so evil and funky about building an OS with web tech...
- aziis98 3y agoI've recently been trying to make something similar, mostly for fun, but I hope something cool comes out of it as it borrows many ideas from SmallTalk The backend is written in Go and can run locally or on a remote server; Go is just the only language I've used recently that has nice http frameworks and can be compiled to a statically linked binary, which means that running the program is as easy as downloading a single binary, and that a running instance of it can possibly upload itself via ssh on another linux machine the user wants to access. For now the frontend is web-based, written in Preact, and talks with the backend via some JSON endpoints, although I'm planning to add websockets sooner or later, for instance for double binding text input values. The motivation behind this project is to try and build an alternative to terminal with tmux+ssh for accessing multiple different linux machines at the same time, while being able to easily monitor and manage them.
- nektro 3y ago"Your Scientists Were So Preoccupied With Whether Or Not They Could, They Didn’t Stop To Think If They Should" but "Any application that can be written in JavaScript, will eventually be written in JavaScript" continues to deliver