18 ms·
Show HN: 3 years and 1M users later, I just open-sourced my "Internet OS"
- sgbeal 3y agoIt's all fun and games until we reflexively hit ctrl-w to close a virtual window and end up closing the browser tab that window is running in :/.
- diggan 3y agoDefinitely a `window.onbeforeunload = () => "Are you sure you want to close this browser tab"` missing, or override the keyboard input completely, so it doesn't try to close the tab. Same problem exists for all browser shortcuts inside the OS.
- stretch07 3y ago> window.onbeforeunload = () => "Are you sure you want to close this browser tab" besides the fact that now all browsers just display the uninformative "Your unsaved data may be lost" rather than any custom message, this would be a perfect addition.
- yu3zhou4 3y agoReally nice execution! Thanks for sharing
- ent101 3y agoThank you very much! Glad you liked it :)
- actionfromafar 3y ago[flagged]
- firstbabylonian 3y ago> For performance reasons, Puter is built with vanilla JavaScript and jQuery. jQuery is overdue for a comeback.
- deleted 3y ago[deleted]
- enriquec 3y agocould not disagree more. That statement alone makes me completely lose any consideration for this entire project.
- noduerme 3y agoIt never really went away for me. I still reach for it in every web app. Over time, I've stopped using some parts of it that used to be timesavers... e.g. shifting away from $.ajax calls to fetch, but it's a good base for rolling your own responsive frameworks if that's what you want to do. And it's what I want to do, because I dislike the paradigms for react and vue, and have no interest in relying on those projects.
- rgbrgb 3y ago[flagged]
- deleted 3y ago[deleted]
- user8501 3y agoIt is absolutely not bait. Declarative programming for the web is certainly more pleasant, but direct DOM manipulation will always and forever have a performance upper hand over rendering frameworks that sit atop the DOM. Now this performance difference is usually negligible, but for projects like VSCode or this, there’s a very good reason they aren’t written using frameworks.
- josephg 3y agoYep, jQuery isn't an obvious choice if you want performance: https://krausest.github.io/js-framework-benchmark/current.html https://krausest.github.io/js-framework-benchmark/current.ht...
- commotionfever 3y agojquery isn't on that list
- nicce 3y agoTechnically, when you use Vanilla JS these days, it is mostly like jQuery since most if not all things have been migrated from jQuery to Vanilla JS :)
- nosefurhairdo 3y agoControlling DOM updates yourself will always allow for best performance. Virtual DOM still needs to reconcile and apply DOM updates, but since this is handled by your UI framework of choice you have limited ability to optimize these updates. See benchmarks: https://krausest.github.io/js-framework-benchmark/current.html https://krausest.github.io/js-framework-benchmark/current.ht... I would argue that if performance is your top concern you'd still be better off using a framework like SolidJS, but theoretically JavaScript and JQuery can be better optimized.
- deleted 3y ago[deleted]
- jethro_tell 3y agoThe docs say a this can be used for remote access to servers and workstations. How does it handle things like privilege escalation and sandboxing? I'm assuming you mean remote access for a user account like a terminal server as opposed to server management. Is that the case?
- rkagerer 3y agoDec 2022 https://news.ycombinator.com/item?id=33838179 https://news.ycombinator.com/item?id=33838179
- ent101 3y agoWelcome to my annual HN roast :')
- DustinBrett 3y agoIs it that time of the year again already?
- deleted 3y ago[deleted]
- mixmastamyk 3y agoLooks awesome. I'm thinking about building a niche CMS soon, could this be an interface to it? Mentions cloud applications. Seems like it might confuse normal folks though—a desktop in a browser. What do y'all think?
- deleted 3y ago[deleted]
- mattl 3y agoCongrats on getting this out there. Looks slick. I’ll take a look tomorrow when I’m back at a computer with a larger screen.
- theogravity 3y agoWe also do a desktop in a browser, but some core differences are you can launch real browsers in our environment and essentially load any web-based app you want collaboratively. It also does screen sharing and has A/V for meetings (we are not open source though, and have a paid product): https://www.switchboard.app/ https://www.switchboard.app/ Knowing how difficult it is to build something like this, Puter definitely deserves praise.
- orliesaurus 3y agowhat's the reason you built it?
- theogravity 3y agoI believe the original reason was the founder wanted a way to have his guitar teacher share tabs and give A/V feedback on his guitar playing. It was originally a product for teaching with limited sharing features, then the founder realized it could be used for many other use-cases and expanded to be much more collaborative and became essentially a multi-room collaborative virtual desktop-like experience. We use it daily for things like standups, sprint planning, all hands, operations dashboards, product roadmap discussions, dungeons and dragons sessions, watching videos together and more.
- haswell 3y agoWas curious to check this out, but no Firefox support is a non-starter, unfortunately.
- theogravity 3y agoSorry about that. It should hopefully be fixed once we change our A/V stack in a few months. I unfortunately do not have specific details on why the A/V stack only works with Chrome-based browsers.
- willguest 3y agoI've been looking an OS for a VR computer (i.e. simulated but functional workstation). This should work very well :)
- ent101 3y agoI've tested Puter on Oculus, seems to work pretty well; however, I think very soon I'm going to do very specific optimizations for XR, it's a new, emerging form factor that deserves its own design.
- willguest 3y agoI don't mean in a browser on a VR headset, I mean on a texture on a game asset in a Unity scene in a Webxr space in a browser on a headset. This way you have the experience of sitting in front of your computer while wearing a VR headset anywhere in the world.
- simon_acca 3y agoThe experience of making and publishing websites and apps from within puter is sobering for how simple it is. Something to aspire to
- danlugo92 3y agoCan you post a tldr here please...?
- tambourine_man 3y agoThat warms my heart: “ - Why isn't Puter built with React, Angular, Vue, etc.? For performance reasons, Puter is built with vanilla JavaScript and jQuery. Additionally, we'd like to avoid complex abstractions and to remain in control of the entire stack, as much as possible. Also partly inspired by some of our favorite projects that are not built with frameworks: VSCode, Photopea, and OnlyOffice. - Why jQuery? Puter interacts directly with the DOM and jQuery provides an elegant yet powerful API to manipulate the DOM, handle events, and much more. It's also fast, mature, and battle-tested.”
- deleted 3y ago[deleted]
- tony_cannistra 3y agoHell Yeah.
- enriquec 3y agoThis just tells me they don't understand why any of those things were created and how to actually use them. It won't get traction and it'll wallow and get stale since it'll be an unmaintainable project. Also, VSCode is built on Electron while Photopea and OnlyOffice are straight up painful to use.
- simondotau 3y agoThat’s a lot of smack talk for someone who didn’t provide a link to their own, even more impressive project. This kind of reaction reminds me of people who can’t fathom why anyone would use a database without an ORM. (And meanwhile I’m confused because nearly everything I do with a database would be twice as difficult and ten times slower with an ORM in the way.)
- enriquec 3y agoMust not be doing anything very complicated. Wheres your impressive link if thats a prerequisite for discussion? Some ORMs suck, I’ll give you that.
- boomskats 3y agoI got carried away for ages with this. I was installing extensions in VSCode and got confused when it wouldn't open a link to a repo in a little browserception, because by that point I was fully expecting it to. Really nicely done.
- ent101 3y agoThank you! As a side note, we're open-sourcing the VSCode integration soon. Building an integration with VSCode takes quite a bit of work so hopefully the community will benefit.
- mjburgess 3y agoAre you aware of Theia IDE? I've been using this as a way of quickly putting a UI over an EC2 instance. Could you advise on how you'd do the equivalent here? Eg., say I want to provide an EC2 machine with various packages installed (python, node,...) -- or, the equivalent docker image -- is there a way of using your UI to provide access to this? Consider, eg., using an iPad with your UI in a browser. Could you advise a way that this could provide a complete development experience for datasci/seng? (As above, i'm using theia to do this in a quick-and-disposable way).
- 1attice 3y agoOne of the things I find curious here is that there's no mobile story to speak of. Drag the window narrow, and all that happens is that the taskbar icons look squished. Is there a mobile mode coming? This would be dope af if I could get a mobile-esque UI on mobile-like devices, or opt into one on tablet-like devices. In all honesty, this is perfect for people like me (who are rarely away from a keyboard) but less than ideal for people who live a more 21st century computing lifestyle. If this thing had a mobile mode it would be revolutionary. As it stands, it's still definitely revolution-friendly :)
- ametrau 3y agoWhat is a “mobile story”? Can you deliver some messaging in a comment story?
- 1attice 3y agoCharming. What I mean is: - there are strong, empirically tested usability reasons why a desktop-style UI is the pits on a mobile device - generally, the move to mobile devices inclines to a different UI paradigm -- something finger-friendly and un-windowed (think iOS, Android, etc.) - if there was a way that Puter could look kind of like a phone with some of the de-facto standard UI motifs and paradigms when it's on a phone, you could do cool shit like replace the Android shell with Puter, and have a pure web UI for your phone that runs web apps - next step would be to add e.g. the ability to run Puter apps when offline, when reception is going in and out, etc. Sort of like Google Apps used to be (in Chrome) - now you've got a cross-platform one-UI-to-rule-them-all breakout industry moment. As it stands, Puter is already really cool, but if it turned into something that behaved a bit less like MacOS and a bit more like iOS at narrow resolutions, you'd have something that would make a lot of people very upset (and this is a good thing, they deserve to be upset)
- NikolaNovak 3y agoDid you try it on mobile? Seems to work fine on my iPhone.
- 3y ago
- qiqitori 3y agoLove it! I liked the Solitaire implementation. The terminal seems very lacking, "ls" worked but e.g. "ls *" or the "find" command didn't work.
- redbell 3y agoAh, Puter! That fascinating project surfaced on HN about a year ago, claiming the top spot for most of the day. I'm delighted to witness its transition to open source, allowing us to glean insights from the creator. Gracias for sharing! The emergence of such front-end projects provides a profound glimpse into the maturation of front-end development and showcasing the incredible possibilities it offers today. Another really cool project, somehow related, is DaedalOS [2]. Honorable mention, Windows 11 in Svelte [3] 1. https://news.ycombinator.com/item?id=33838179 https://news.ycombinator.com/item?id=33838179 2. https://news.ycombinator.com/item?id=38830132 https://news.ycombinator.com/item?id=38830132 & https://news.ycombinator.com/item?id=29779753 https://news.ycombinator.com/item?id=29779753 3.https://news.ycombinator.com/item?id=35896505 https://news.ycombinator.com/item?id=35896505
- DustinBrett 3y agoThanks for the mention for daedalOS! I agree that when done well these projects can help demonstrate the maturity of the web as a platform. For anyone interested in checking out mine, it's on my personal website @ https://dustinbrett.com/ https://dustinbrett.com/
- deleted 3y ago[deleted]
- mavili 3y agoThis is insanely cool! Looks really slick too, even in a mobile screen. jQuery?? I cannot imagine how difficult it is to not break this when you make the slightest change, hats off for managing with vanilla Javascript and jQuery! The best thing about React for me is to not have to worry about breaking the DOM or messing up with event handlers because some jQuery line, somewhere obscure is probably doing something funky that is really difficult to track down!
- Intralexical 3y agoOh, wow. When this came up before, I don't know if I looked at the DOM, because I assumed you would do this type of thing by drawing pixels on a Canvas. It's actually made of HTML elements? That's impressive.
- Aaronmacaron 3y agoI too think it's very impressive but wouldn't it be even more impressive if it was made using canvas? It would mean that you would need to implement your own rendering loop and layout engine. You'd need to reimplement a lot of elements such as input fields or buttons. You get all of this for free when building on top of HTML/CSS.
- noduerme 3y agoYou do get a lot of UI elements for free, but styling them consistently and getting them to layout properly becomes a lot more difficult.
- Intralexical 3y agoI think it would likely be more technically involved and complicated if it were made with `canvas`. But large blobs drawing to `canvas` aren't anything new at this point. The part that impressed me is doing it the simple way, using what the browser already provides, and getting it to work this well.
- 3y ago
- DustinBrett 3y agoGreat to see you finally got it open sourced, congrats!
- whalesalad 3y agoThis is one of the cool elements of the Synology operating system. Would be neat to see this extended further into other areas, using this as a base. I setup a TrueNAS box for my dad recently and he was yearning for some kind of very light desktop environment for simple maintenance tasks. In hindsight I should have gotten him a Synology device.
- ghostly_s 3y agoAre you saying Synology's DSM is based on this Puter project?
- whalesalad 3y agoSorry - “this” being the concept not the literal codebase.
- globular-toast 3y agoWhat kind of maintenance tasks? I always found the Synology interface a bit of a pointless gimmick.
- ijxjdffnkkpp 3y agoYou used the AGPL! Glorious! I commend and salute your efforts. Thank you for your contribution!
- cushpush 3y agoWhen I was young I dreamed on having a USB stick (not yet invented) I could take with me to different kiosks and have a standard OS load my specific instances thanks to my custom key. This approaches that functionality and I think it's pure brilliance that you've included such thorough a demo for us to enjoy that you spent so much time and enthusiastic effort into creating and making manifest. So, I applaud you there and thank you for making it open-source that's super cool, and might inspire someone to make a kiosk that, by default, loads your site.
- DustinBrett 3y agoNearly 20 years ago when I was in IT, I had something like this using a tool called BartPE which allowed you to make a custom WinPE environment that could be booted from a USB drive. As someone who went on to make one of these "web desktops", maybe things like BartPE were a partial inspiration.
- mikewarot 3y agoAbout 30 years ago when I was a programmer and support guy all in one, I had an MS-DOS boot disk and a 300 Megabyte Backpack portable hard drive. It was awesome. I had all of the source code, backups of the customer sites data and my programming environment with me no matter where I went. Great stuff!
- blintz 3y agoThis is such a neat idea, and you get the gist of it from just the screenshot. I wonder what kinds of 'integration' you could do (clipboard, opening links, drag-and-drop, etc). I could see this as an educational tool for doing development on a Chromebook, because of the (emulated) terminal + filesystem.
- DustinBrett 3y agoIndeed the modern Web API's can do all that and more. One of my favorites is dragging out of the browser onto the desktop. Another is ctrl+c'ing a file on the real desktop and then ctrl+v'ing it into the "fake" one. Some super powers sadly are locked away in the need for a PWA, but I think they could one day just be part of what any site can do.
- AlexCoventry 3y agoChrome OS has a developer mode which runs debian in a virtual machine, FWIW.
- danans 3y agoTechnically it's not developer mode , it's just a regular feature of the OS. "Developer Mode" on ChromeOS is when you remove boot verification for ChromeOS itself.
- infogulch 3y agoThis reminds me of Kera Desktop [1]. Featured on HN 8 months ago, 343 points, 111 comments [2]. [1]: https://desktop.kerahq.com/ https://desktop.kerahq.com/ [2]: https://news.ycombinator.com/item?id=36260589 https://news.ycombinator.com/item?id=36260589
- ambigious7777 3y agoAnd this anuraOS[0] too! I haven't looked to closely at it (it showed up in my GH feed) but it looks like it uses v86[1] to emulate a *nix environment. [0]: https://github.com/MercuryWorkshop/anuraOS https://github.com/MercuryWorkshop/anuraOS [1]: https://copy.sh/v86/ https://copy.sh/v86/
- Solvency 3y agoI love how this is done with jQuery. And it'll be obvious to literally anyone whose ever used jQuery (and is a good designer) how perfectly suitable and in many ways superior jQuery would be for something like this. But 98% of developers will absolutely balk at this in horror/confusion/wonder, despite the fact that the React/Angular DIYs they'd make would be bloated and outrageously slow.
- deleted 3y ago[deleted]
- OJFord 3y agoSuper slick demo, I'm on mobile and it's impressively fast nevermind functional. But it is 'just' a DE webapp right? From 'internet OS' here (which actually I don't think you use at TFA repo) I expected to be able to boot to it. I guess there is some other solution that would allow that, but not a package deal? I suppose I'm just saying be careful/manage expectations with 'OS', but for what it actually is it's really cool.
- mattl 3y agoYeah “OS” really overused.
- baudaux 3y agoBut it is a great project. For a real (Unix-like) OS you can have a look to https://exaequOS.com https://exaequOS.com (I am the creator)
- klyrs 3y ago> Super slick demo, I'm on mobile and it's impressively fast nevermind functional. No kidding. As far as I've seen, it's the best open paint app on android
- lphnull 3y agoThis reminds me of something I made once in "Macromedia" Flash back when I was 16 in like 2001ish or so. It wasn't really an actual OS, but I managed to get a working desktop with a file browser, fake non functional web browser, and a task bar and start menu. My flash application didn't accomplish anything, but I felt immensely proud of having been able to create a mock up of a UI, even though it was extremely kludgy and wasn't even able to read or write files in the fake applications. ...No offense to the creator though. I don't mean to compare my high school project to this one. This project is indeed very cool! I too dream of one day inventing my own kind of spreadsheet and terminal hackery OS, so I salute this person for creating a proof of concept that looks good.
- Intralexical 3y ago
- GMoromisato 3y agoThis is really cool--I've played with a lot of these online desktops, but this is by far the slickest. As someone who is doing something similar (https://gridwhale.com https://gridwhale.com), I'd love to know what your goals were. Did you ever try to commercialize it? If not, why not? If yes, what happened?
- indigodaddy 3y agoWhat’s the “publish as website” thingy/functionality all about?
- elwell 3y agoBeautiful execution! Though I'm crestfallen it has no Browser app with which to view an inception of Puter within.
- keepamovin 3y agoTechnically you could fake it with an iframe if puter is served with the correct frame-src CSP rules. But for a full browser experience you’d need a backend and a remote browser.
- LoganDark 3y agoJust open the Puter app: https://puter.com/app/puter https://puter.com/app/puter Alternatively, open the PuterPuter app, which contains itself: https://puter.com/app/puterputer https://puter.com/app/puterputer You're welcome
- lagniappe 3y agowhat about just a browser in general?
- keepamovin 3y agoI want to add BrowserBox to it, which is a web browser you can embed in any web app haha! :). It will require a backend tho but it should work. https://github.com/BrowserBox/BrowserBox https://github.com/BrowserBox/BrowserBox
- lagniappe 3y agodid you add it?
- keepamovin 3y agoyeah i'm in the process of. why? are you interested to try? if you are send me a hello to cris@dosyago.com and I can send you a link when up and get your feedback if you're free :)
- semolino 3y agoMore web desktops: https://simone.computer/#/webdesktops https://simone.computer/#/webdesktops Note that most of these are aesthetic / non-CRUD.
- deleted 3y ago[deleted]
- Linda231 3y ago[dead]
- hliyan 3y agoWhy is this so easy to read compared to React? https://github.com/HeyPuter/puter/blob/master/src/UI/PuterDialog.js https://github.com/HeyPuter/puter/blob/master/src/UI/PuterDi...
- ashishb 3y agoThe JSX syntax makes React hard to read due to multiple layers of nesting. IMHO, Vue is superior for both maintainability and readability than React. Especially because CSS, JS anda HTML are largely in separate blocks of the same file.
- benatkin 3y agoYou can see this in that Flutter didn't copy JSX and its usability seems better. Not that I'm confident Flutter is worth the trade-offs.
- pmarreck 3y agonarrator: It's not.
- mightyham 3y agoI'm confused about what you mean by this. There's nothing about Flutter's API that encourages less nesting, In fact, it's the exact opposite. Plenty of layout and styling that takes a number of nested widgets in Flutter can be achieved using a single div in React.
- CharlieDigital 3y agoI can understand some of the benefits of JSX, but compared to Vue SFC's, it's a mess to read. React CSS modules feel so unwieldy compared to Vue SFC's inline `scoped` CSS. Vue's approach to templating using `v-for` and `v-if` means that you won't end up with a big block of logic mixed in with the template (you can still do it, but Vue's nature steers you away from it).
- noduerme 3y ago
- maxloh 3y agoIn case you wonder about the purpose of the project like I did, here's the explanation in README: > It can be used to build remote desktop environments or serve as an interface for cloud storage services, remote servers, web hosting platforms, and more.
- waldrews 3y agoCurious how AGPL would apply for something like this. This seems like a tool to put a nice front end on a complex app, but would that trigger copyleft for the the overall backend?
- pdntspa 3y agoI hate that these guys have to justify using jQuery. Too many of you have been seduced by all these bullshit javascript stacks that just add a seemingly infinite amount of complexity to something that is already almost too complicated.
- danielovichdk 3y agoAmen!
- dartos 3y agoAh, jQuery, that cute little artifact from web development's stone age, where manipulating the DOM directly was the height of innovation. How quaint it seems now, in the shining era of React, where state management is not just a task but, once it gets its hooks in you, evolves to a transcendent experience. To cling to jQuery is like insisting on using a typewriter in a world of voice-to-text AI, but adorably obsolete. React, with its majestic state orchestration, makes jQuery's efforts look like child's play. It's like comparing the glow of a firefly to the brilliance of a laser beam. Truly, we React devotees can only chuckle at the notion of jQuery, for we have tasted the future, and its name has and always will be React. /s
- lioeters 3y ago> state management..gets its hooks in you Pun appreciated.
- ent101 3y agoYes, I've been asked why we use jQuery many times so I had to put it in the FAQ. I think we have solid reasons for it but it is controversial sometimes.
- deleted 3y ago[deleted]
- saidinesh5 3y agoDoes jQuery by itself offer any value these days compared to plain Javascript though? I was under the impression jQuery was for the IE5 days where not all browsers provided the same javascript APIs and doing an xmlhttprequest was more clunky than doing a fetch() call these days. At least for my personal Jekyll based blog, I was able to replace 40-45 lines of jQuery with 50 lines of plain Javascript and was able to get rid of 33kb of jquery dependency.
- peterleiser 3y agoLooks very cool. Am I correct that this is more like a client and that the persistence (user storage, sessions, etc) is handled by the proprietary non-open source cloud backend? Not a criticism, just trying to understand.
- asveikau 3y agoIt would be cool to self host the backend. I wouldn't want to put files on some guy's server, both from the eavesdropping angle and from the perspective that it could be abruptly shut down and lost.
- willi59549879 3y agoit is basically a webserver written in javascript. you can clone the git repository and run the server on your pc
- kerneldeimos 3y agoHi, I maintain that backend (which we call a "kernel"). For now, yes this is correct. Our goal is to open-source a kernel as well. We have a couple hurdles: we need to ensure the code architecture makes productive contributions possible, and we need to make it possible to run without complex cloud infrastructure setup so that it's relatively accessible. Seeing the reception of the newly-open-sourced desktop environment, releasing the open-source kernel is going to be a major priority. I'm personally very excited about that, and I'm happy to see that's how other people want to use Puter too.
- garyrob 3y agoSo, the cloud storage isn't a decentralized system where all users contribute disk space; rather you are providing the cloud storage in boxes you control? It seems like you must have some storage limits to prevent abuse, yes? Could you say what they are? Also, I ran your hosting example and ended up with a static site at https://quiet-morning-9156.puter.site/ https://quiet-morning-9156.puter.site/. How long will that site be there? I assume not forever?
- FpUser 3y agoBeautiful work. Much appreciated
- Th3Alt3r 3y agoVery cool, LFG!!!!!!
- koukides 3y agoLove it!! I own the domain internet.inc that would be perfect for this - want to use it??
- arcastroe 3y agoInside the OS, there's a game called Danger Cross, which seems very similar to crossy roads. Did the Puter developer essentially reimplement crossy road? Or was there some open source version already existing could somehow run on this "OS" ? Briefly searching google for Danger Cross didn't yield any results.
- diggan 3y agoNever played Crossy Roads so I don't know the full extent of what gameplay features there are, but from looking at screenshots, looks like the gameplay code could be done relatively quickly (like some days at max), so doesn't seem out of the question that it's a full re-implementation. Crossy Roads looks like another clone of Frogger, and clones of that game have been done since the 80s.
- kerneldeimos 3y agoMany of the apps are user-submitted apps from puter.com
- codeonline 3y agoI just wanted to say well done. I wish other eco systems were this open, hackable and understandable.
- Razengan 3y agoNot to detract from the coolness of this, but I wish new OSes dabbled in new GUIs as well. Experimental operating systems seem to be dime a dozen by now, but we almost never see experimental GUIs or entirely new "desktop environments". Just as how almost every "new" programming language is still stuck with semicolons and other C-isms that were ancient back when the Egyptians were laying down the pyramids, we're still stuck with either imitating the macOS GUI or the Windows GUI, or some weird Frankenstein's bastard of the two. iOS, Android, consoles, and most recently the Vision Pro have proven that eschewing longstanding conventions can be successful — for example the vast majority of people on this planet don't need or care about scrollbars (or even menubars) anymore. So why aren't the creators of experimental OSes being more experimental with the frontend? Come on guys, none but the nerds among us will be impressed with how it's made behind the scenes. The first impression that most people will get is that's just Yet Another WinMac-Looklike.
- kerneldeimos 3y agoAs an avid user of i3wm, the "YAWML" that you described isn't my favorite. The good news is we're working on architectural changes that will make it easier to develop alternative desktop environments that use the same APIs. I have a daily video chat with the author and the topic of custom guis is something that comes up pretty often.
- sn0n 3y agoAre you the MS guy with a YouTube channel who's website is basically this? Can't recall the channel right now though.
- DustinBrett 3y agoThat would be me, the other guy in Vancouver making a web desktop. :-) Thanks for the mention https://www.youtube.com/@DustinBrett https://www.youtube.com/@DustinBrett
- Intralexical 3y agoSo… Somebody submitted Half Life/Xash3D as a Puter app: https://puter.com/app/half-life-c3j01ag3pyd https://puter.com/app/half-life-c3j01ag3pyd It looks like it's using a build of the below, hosted on GitHub.io: https://github.com/Pixelsuft/hl https://github.com/Pixelsuft/hl
- patife 3y ago[flagged]
- kgeist 3y agoI wonder what are the security implications. I just opened a random URL and an arbitrary application was launched inside my Internet OS desktop. What if someone gives me a link to a malicious password stealer, for example? I think a permission system would be nice.
- Intralexical 3y agoThere is a permission system I think. It's described in the developer docs: > […] your app will get a few things by default: […] An app directory in the user's cloud storage […] A key-value store in the user's space […] > > Apps are sandboxed by default! Apps are not able to access any […] https://docs.puter.com/security/ https://docs.puter.com/security/ I guess that refers to the cloud storage/backend. Clientside apps seem to run as IFrames, so should be subjected to normal browser sandboxing (…and actually, I guess, multiprocessing too), with only explicit message-passing. Honestly I think the developer API could have been better highlighted by this HN post. Puter's actually doing a bit more than the Desktop Environment mockup that's visually apparent, and not featuring that seems like a wasted opportunity to pick up some app developers.
- evere 3y agoMaybe it could be "sandboxed" in an iframe?
- splatzone 3y agoI can't get past the menu, is it just me?
- yankaf 3y ago[flagged]
- jrflowers 3y agoOnly the truly fulfilled have time to Post Online about it
- soloknight 3y agoThis is soo freaking amazing !! What a legend
- lovestaco 3y agoPretty slick
- geek_at 3y agoKind of reminds me of EyeOS [1] I was using it heavily in 2005. Mindblowing experience at the age of Windows XP [1] https://en.wikipedia.org/wiki/EyeOS https://en.wikipedia.org/wiki/EyeOS
- isoprophlex 3y agoThis looks amazing. Also; > Why isn't Puter built with React, Angular, Vue, etc.? > For performance reasons, Puter is built with vanilla JavaScript and jQuery. Additionally, we'd like to avoid complex abstractions and to remain in control of the entire stack, as much as possible. Absolute boss level.
- theK 3y agoDoes this argument really still stand nowadays, with all the virtual DOM and whatnot that those frameworks bring OOB?
- trashburger 3y agoNot sure why you're downvoted, it's a valid question (the downvote isn't an "I disagree" button). I believe the answer the Puter author came up with is that the VDOM takes away too much of the control from the author. They do make life easier but they have an abstraction cost (mental overhead) and in case of some of them performance issues (execution overhead).
- zarathustreal 3y ago> the downvote isn’t an “I disagree” button Take it from a guy that regularly posts unpopular truths: people vote based on the way they feel after reading. It has almost nothing to do with the content. Edit: for example, try posting a personal opinion about a controversial topic and you’ll still have people downvoting to disagree as if it’s possible to tell someone that they are in fact wrong about a statement of what their opinion on a topic is. It’s a bit sad if you think about what voting like that means, as content is often amplified or suppressed based on votes. Echo chambers seem inevitable
- isoprophlex 3y agoHello! Would you like to post any opinion at all, or in any possible way mention anything about, the humanitarian situation in Gaza?
- lavrton 3y agoTo me, Puter platform has a huge potential. And as a developer, I already have large value from it. Using puter.js I was able to add full cloud storage for my design editor https://studio.polotno.com/ https://studio.polotno.com/ without messing up with auth, backend and databases.
- ent101 3y agoThank you, Anton! Polotno is incredible. I recommend everybody to check it out!
- samsquire 3y agoI like this thinking. If someone could combine Supabase + Postgrest or Hasura with an easy visual admin dashboard for them inside this, this could be a complete easy to access, easy to deploy platform.
- genuine_smiles 3y agoCould you elaborate on how Puter helped?
- lavrton 3y agoPolotno Studio is a free app. And for a long time, it didn't even have the ability to signup and save created designs into a cloud. I didn't want to invest my resources into "cloud saving" feature (as it is a free app). Setup full authorization, setup database, setup servers and tons of other work to finish the cycle. https://docs.puter.com/ https://docs.puter.com/ gives a very simple, yet powerful client-side js SDK to enable full cloud saving and loading of data for my users. I spent a couple of days for integration. Doing everything by myself with full hosting would take weeks, if not months.
- exodust 3y agoSounds good, but it seems the sign-in feature pops open a new window to the puter.com domain. Does the SDK provide any means of avoiding this and keeping everything integrated on your app without pop-up windows? Also I'm confused about how you pay puter for the service. What if a million people suddenly use your app, and sign-up? As the app owner, do you have access to the users who signed up? Can you export those members in case you wanted to import them somewhere else if you moved your app?
- 5350-uiop-1130 3y ago"Puter is built with vanilla JavaScript and jQuery" respect.
- gorkaerana 3y agoA slightly unfortunate name for Spanish speakers, I'm afraid: "putero" can mean either "brothel" or "man who maintains sexual relations with prostitutes" [1]. Fun fact: the Mitsubishi Pajero had to be marketed as Montero in Spanish speaking markets as "pajero" is Spanish for "wanker" [2]. [1] https://dle.rae.es/putero https://dle.rae.es/putero [2] https://dle.rae.es/pajero https://dle.rae.es/pajero
- Beijinger 3y agoWanker is a family name in Austria. I knew a scientist who started every talk with the origins of his family name....
- ClikeX 3y agoWe've got Dutch people that are literally called Dick Cock.
- gorkaerana 3y agoSpanish also delights us with unlucky surnames. E.g., three acquaintances of my father have the family names "Feo", "Bastardo", and "Gay"; which translate, respectively, to "ugly", "bastard", and, of course, "gay".
- Beijinger 3y agoWell, I know European Companies that wanted to expand into the US market. One was named PMS LLC and one had a product that was named xfriend. Both names are very memorable, but not the best choice. Xfriend was actually a pretty good software: https://xfriend.soft112.com/ https://xfriend.soft112.com/ (only description, not for download anymore)
- henryackerman 3y agoSimilary, the Hyundai Kona is called the Hyundai Kauai in Portugal as "cona" literally translates to "pussy". Languages are fun :)
- deleted 3y ago
- anonzzzies 3y agoPossible to write our own window manager? I guess just diving into the code, but that would make it very hackable of course. And fun.
- ulrischa 3y agoMake JQuery great again
- Zenst 3y agoImpressive and reminded of https://en.wikipedia.org/wiki/Java_Desktop_System https://en.wikipedia.org/wiki/Java_Desktop_System
- jaequery 3y agojQuery? :D it's true, coding was easy with jQuery ...
- ent101 3y agousername checks out :D
- thatgerhard 3y agoWhat is this used for?
- deleted 3y ago[deleted]
- throwaway11460 3y agoAnybody remembers the original (not Apple) iCloud web desktop? Or EyeOS?
- 1oooqooq 3y agothis is more in line with webOS, from palm. still lives in LG tvs. i mean, the front end of it. the back end of it would be a much better option than eletron apps btw. but they were too early to the container age, since the paradigm was syscalls proxies
- throwaway11460 3y agoWhy do you think so? It seems to be exactly what eyeOS was - especially given the enterprise use cases the author listed.
- nhanhi 3y agoI used to mess with EyeOS a lot back in the day - same thing, and although I enjoyed it, I suspect the utility will be just as limited.
- kwhitefoot 3y agoI tried running it locally and connecting to it with Firefox but it just gives me a log in dialog and trying to create an account fails. With Vivaldi creating an account works. But where is this account created? Ah,just got an email that includes a link to puter.com so this created an account on a remote server. So it's not quite as local as advertised.
- marcinioski 3y agoI've spent whole yesterday evening for finding something like this. Great work!
- RGamma 3y agoThe circle is finally complete! Now of course you want to use a browser within puter as well: Browser in browser OS in OS in virtual machine... It's mind boggling how far one can torture the concept of markup documents to eventually arrive at something like this... just so users don't have to install software.
- oblio 3y agoMillions of people have been killed so that other people wouldn't have to wear itchy clothes. Convenience is the most powerful force in humanity.
- projektfu 3y agoWas that the merino massacre of 1887?
- lukas099 3y agoSomething to do with the Silk Road?
- oblio 3y agoSilk, and in general almost every type of clothing until modern cotton processing. Most traditional clothing was very coarse and one of the most obvious class indicators, across millenia.
- eisbaw 3y agoI still don't get the appeal. Why would you want this again?
- 0xDeveloper 3y agoI used it, I loved it! But why would someone use it?
- Kalanos 3y agoLove it! It would be nice if `~` was mapped to home directory (e.g. `cd ~/Desktop`) Hard to resize windows. If I want to grab the right edge there is only 1 pixel to work with. When printing with `cat` from terminal, it would be nice if there was a new line at the end of the text. The prompt shows up on the same line as cat's output. Copy-paste from clipboard into puter instance. How do I get python on here?
- kerneldeimos 3y agoWe have a separate repo where you can submit issues related to the shell: https://github.com/HeyPuter/phoenix/issues https://github.com/HeyPuter/phoenix/issues If a file doesn't have a newline at the end then `cat` will immediately start writing the prompt after the last line; this is the same behavior you'd expect from sh or bash. We might later improve this by having a "no newline"-indicator in the promptline instead.
- BMSR 3y agoFirst thing I tried was checking if I could use it to share images. Which would be a nice way to organize what I share in folders. But apparently it can only be opened inside Puter itself, and it asks the user if they want to download it.
- Jemm 3y agoBeen looking for something like this for use with a VR headset for coding.
- thomasfl 3y agoIf anyone was in doubt; jQuery is not dead. For anyone who wants to write minimalistic and efficient vanilla javascript, jQuery is still being maintained and used by many.
- kilroy123 3y agoCan confirm. I just started down the long, arduous journey of building a complex browser extension. For the first time in like a decade, I added and am using jQuery. Honestly, I only thought to do after reading about the upcoming version 4.
- deleted 3y ago[deleted]
- rocky_raccoon 3y agoHere's my "contribution": https://puter.com/app/browser-n70yre8kj1 https://puter.com/app/browser-n70yre8kj1
- tcgv 3y agoInteresting to see that it's written more "low level": vanilla JS and jQuery (nostalgia kicks in). I guess it's analogous to why linux/windows kernels are still written in C language.
- stochastimus 3y agoThanks for this, OP. This is why I come here.
- dlivingston 3y agoI just want to point out how clean and pleasant to read this codebase is. I'm starting to learn JavaScript, coming from a background of systems programming, and I bookmarked this codebase just as a benchmark example of what good JS code looks like.
- ent101 3y agoThank you! I'm glad you liked it. Follow along on Github, we're a friendly community and open to contributors with all levels of JS experience :)
- chse_cake 3y agohow can I pip install on this?
- account-5 3y agoI think this is brilliant, amazing work, opened on mobile Firefox with ublock advanced enabled; everything works first party. Most modern text based websites can't do that! That being said I thought initially this would compete with ChromeOS, of the ill-fated Firefox OS; however, all other comments and FAQ are on about other things. So brilliant, but I don't get it.
- caycep 3y agois this basically a VM (w gui) running on the browser?
- rbanffy 3y agoIt has an interesting similarity with IBM's ZOWE web UI. Is there any commonality in the building blocks?
- renonce 3y agoTwo places where the project is very impressive: 1. Emulating a desktop with windows so smoothly on both desktop and mobile. This webapp is much snappier than most webapps these days. 2. A storage and file explorer with a friendly API for third party apps. Now any app can use a cloud storage synced across devices where the storage costs are paid by the user. Can't wait until more apps are available! I see some limitations like VS Code unable to open git repositories which seems a limitation of the storage API (append-only, cannot seek or download partially)? Hope it gets closer to native experience in the future
- ssl-3 3y agoDoes globbing not work in the shell? I made (touched) a bunch of shit* files in ~/Desktop to amuse myself, which I guess is fine. And then I made a few shit* files in ~, which should also be fine. But when I try to mv my new shit* to ~/Desktop, it fails. (ls shit* in ~ also fails.)
- drumttocs8 3y agoSuper slick! What are some common applications for this, though? I can't think of a reason I'd want to access this versus, say, a remote vm?