Puter
puter.com
puter.com
(Those were both the same app and have been for months. I just claimed Puter after PuterPuter way back when.)
I think you could solve it by giving apps an option to not open automatically when you start Puter. That way you could start the Puter app, and it'd open a nested instance of Puter, but that instance wouldn't start infinite recursion by automatically opening the Puter app inside.
I thought it would be funny, since I got in pretty early, to make an app called Puter that would just load Puter inside. (I initially called it "PuterPuter", but then tested to see if just "Puter" was available. It was. Now both apps exist and do the same thing.)
The "DDoS" is because when you open up either app, it loads up another instance of Puter... which promptly restores your session that has the app open, causing infinite recursion. If the HN hug of death found my comment and each person started infinitely recursing, that's a DDoS.
I believe ent101 (Puter developer) thought I changed the name from one to the other to stop the recursion. I didn't. Both apps just exist. I trust that anyone stupid enough to open that app is also smart enough to close it when they are done. :)
I'll take a chance to mention my attempt at creating a desktop environment in the browser as it's open source, if anyone is interested in checking out.
Code: https://github.com/DustinBrett/daedalOS
Demo: https://dustinbrett.com/
Yesterday on Reddit, someone mentioned your project as one of the coolest projects he had seen, and I was more than happy to reply to him with more details [1] as I really enjoyed watching your journey. Cool projects deserve more sharing and support for their creators.
1. https://www.reddit.com/r/Frontend/comments/z9wgw5/comment/iy...
Wow, ASCII art Star Wars! (⊙ˍ⊙)
Another comment on here explains it very well: "It’s “pyu-ter”, like comPUTER! Puter dot com! Well done" This is why I loved it so much!
He has more domains available here: https://portotype.com/documents/domains/
Woah is this a serious project then? Seems like a huge investment for a fun side project
So you could use it on a chromebook as well.
I like the idea, and as PG often says the best ideas often sound crazy at first.
Glad someone other than me is trying I guess :-)
It's pretty cool, but I can't think of what this would be useful for. Presumably, you need a sophisticated desktop OS that can run a modern web browser in order to use this. And that OS is likely more useful than this.
I did this months ago! Here it is: https://puter.com/app/puter
Yep, you can, I now have several nested Puters.
If Puter/FriendOS can support legacy Windows enterprise apps not updated in over a decade and adds collaboration, SSO, 2FA, access controls, VPN/intranet, etc. - basically what FrontEgg (https://techcrunch.com/2022/07/28/with-40m-in-new-funding-fr...) offers - on top on them, it could be a pretty great business.
This is a great illustration of this type of business: https://apenwarr.ca/log/20120326. A lot of customers totally need, not just want, this type of thing.
Puter/FriendOS type systems can graft upon some modern features on top of all legacy apps, which is far far better than having to build it out for every single one. Especially as the market lies more in the long tail of the custom software tailed to specific companies, that has been chugging along for 15 years in maintenance mode.
https://github.com/prettydiff/share-file-systems
I am trying to think of where to take it next. Possibly integrate something like VLC for media playback or allowing users to install applications. I don’t really know what users would want from something like this.
I am impressed by the slickness and speed of this thing. It is more responsive than your average MS Windows system.
@ent101: well done and good luck with this project! Super slick!
This seems dishonest, or maybe I'm just missing the point of Puter. Who the heck is using this?
https://docs.puter.com/#/?id=why-should-i-develop-apps-for-p...
_Literally_ unusable.
(But for serious, this is a _very_ clean interface, I like it a lot.)
the UX clearly makes the brain think it's an actual computer.
Like terminals to a mainframe computer but on WAN level.
- external file storage
- events/notifications
- REST to access puter resourcesBut maybe times are more mature now?
I'm sure this is well made and a fun project to develop, but I just don't get the fascination with this idea of desktop OS mimicry in a browser tab.
Why not build (complex but specific) SaaS applications that just leverage OS designs paradigms on the frontend (taskbar, windows, notifications, desktop, icons..) inside the same tab?
What if the OS-like apps were open plugins that will augment that SaaS?
[edit] here is an example: Imagine an alternative OS-like interface to HN that is plugin-based. You can add themes, or apps like messaging between HN users (in different windows), keyword-based and comment replies notification (a la Action Center)...
it is like HNES [1] on steroids.
[1] https://notion-enhancer.github.io/ [2] https://betterdiscord.app/
I need my custom awesomewm desktop now
Also putero means whore house in spanish.
answered by
> this is well made and a fun project to develop
Opened the file into an editor :)
Can't wait to see more levels.
I can’t reproduce now. I bet there are other Easter eggs here.
I was like "hm, okay, looks like another windows93.net" and closed the page
FriendOS is arguably also the most advanced and complete of these systems: https://friendos.com/
This is a great illustration of this type of business: https://apenwarr.ca/log/20120326. A lot of customers totally need, not just want, this type of thing.
Puter/FriendOS type systems can graft upon some modern features on top of all legacy apps, which is far far better than having to build it out for every single one. Especially as the market lies more in the long tail of the custom software tailed to specific companies, that has been chugging along for 15 years in maintenance mode.
I'm truly skeptical as well
Am I missing something or this a TERRIBLE idea? How does it keep showing up over and over again? Just about any developer could build something like this in under a month, it isn’t some novel idea. I don’t mean to rain on a parade here I am always happy to see hobby projects, but the fact someone is investing in this and real money is being allocated seems ridiculous. The implications of anyone seriously thinking this is a reasonable cloud desktop environment are scary; people will get duped into being data harvested with no ownership of their data.
It deserves scrutiny. If I was making a business out of this (which they are), what I’m saying can only improve their product.
I've seen instances of fun things like "Windows 98 in a browser" that were interesting projects. This seems to be someone trying to make a full-on product out of the concept, even referring to it as "cloud computing" on their Twitter account.
They can't play both sides. It's either a fun little toy, or it's a serious product. "Puter" seems to be aiming for the latter, so they deserve the relevant scrutiny.
- dualboot (not doing that again, Windows 10 loved to eat my bootloader over and over and would get stuck in update loops)
- wine, which requires a lot of configuration and has weird bugs, but is really good for more heavyweight apps (foobar2000 is still king)
- virtualization, which also requires a lot of configuration. need to perform a full OS install, etc. I haven't found a way to easily spin up a virtualized windows box (I run Manjaro = Arch, let me know if you have an easy way. A while back I gave it a couple hours and couldn't figure it out, so I gave up.).
A Windows-in-browser that runs "well enough" and can access my local filesystem would let me just run the damn app, do the thing I want to do, and then call it a day. Of course, I'm sure there's lots of details I haven't thought through here. But it feels like a potentially legitimate use case.
Wh.. what?
Or did they think they could handle all the scale and all the random small features on the site too?
That’s a lot of time! I think I could clone this in that time. And I’m a Linux kernel programmer with little web experience.
With modern tooling and documentation this kind of project is within reach for many.
Yeah, one line of kernel code is more difficult to write than 100 lines of web code.. but you're going to be churning out 10,000 lines of web code, and every layer of abstraction you try to use will make everything crappier and more screwy
This page isn't a normal website either, so a lot of those website toolkits won't be of much use
You just need to host a single-tenant db, handle auth, manage users, and allocate blob storage for each user. This is all pretty well understood on the backend now with baked turnkey solutions on every major cloud provider.
The app logic can all be done clientside and can be done pretty easily in react / vue / whatever framework you want. Most of the apps can be wired to existing solutions on npm.
So mainly all you need to do is customize some css and bring it all together, deploy & deliver the app itself, and market it.
I’m not sure but I don’t see any x86 virtualization here, seems to just all be JS, so it looks to me to be a very straightforward implementation (correct me if wrong)
I'll finish it one of these days..
the truth is that in order to use this site, you need a working computer with a desktop anyway. So the only value would be is that you can access your stuff from anywhere on any computer.
It’s just security nightmares all the way down.
There is a value proposition in having a synchronized desktop across every environment (phone, tablet, desktop, etc.) but this project doesn’t remotely capture what that would entail —- a wasm-based OS with a webgpu frontend, all locally computed. All synchronization / any data leaving would be encrypted locally with a key shared among local systems via a QR code, and the option to self-host the entire stack would be readily available.
The encryption + self-hosting is bare minimum as a business, not the least of which is because it adds credibility to the entire system. Open source is also a requirement to verify nothing nefarious is going on.
With that in place, it might be reasonable to have a cloud offering that is paid so most users wouldn’t need to self host.
Systems should also be able to replicate data locally so if cloud access is ever shut down, they can continue functioning without much issue.
I could build all that (and have built that + more, so it comes from experience) in a ~month — how is it that this project is getting funded, after lacking any of that after years?
My guess? It is cheap & looks usable, and for some reason gained massive popularity, so it will dupe people into freely sharing their data which can be mined and monetized. Apologies if this isn’t the intention of the original creators, but that is what investors will use this for. If I am wrong, I recommend they implement what I suggested.
Would I ever use it though? Of course not.
It in fact goes in the exact opposite direction of computing for me. I am increasingly moving away from any product that relies on WiFi/connectivity.
So nice to have your own media (movies, music) and not have to worry about an always-on internet to be your streaming bottleneck (never mind the inefficiencies of requiring a personal, on-demand, high-bandwidth movie stream). But then to take and put all your tools and desktop in the cloud as well?
I guess it's why I have no use for Chromebooks either.
But as a stock laptop I get your point.
You're obviously entitled to your opinion about Puter. It's completely fine if you think this is a very terrible idea. I disagree but I guess only time will tell.
But I just wanted to say that it's categorically false that Puter is trying to harvest data and sell it later. It's clearly spelled out in its Terms of Service and Privacy Policy. I'm not trying to dupe anyone into anything, just hoping to build a better cloud storage service...
A few things:
1) please read my other comment about encrypting / address encryption of data.
2) a ToS can be changed at any time in the future. If you value privacy, bake in client-side encryption ASAP. Use bcrypt + salt for the password hashing and use something like libsodium (https://libsodium.gitbook.io/doc/secret-key_cryptography/sec...) to encrypt/decrypt. These are both available in js:
Bcrypt: https://www.npmjs.com/package/bcrypt
Libsodium: https://www.npmjs.com/package/libsodium
Off the top of my head, have a user enter a password, generate a random nonce, hash it with bcrypt, store that hash to localstorage. Create a secretbox stream with that hash and run any data being persisted through that stream. This will add some safety to userdata.
3) if you do well and get acquired your ToS doesn’t protect anyone but yourself / the new owners
4) the instant you start accepting VC money you will slowly have less and less say in any of this — make protecting customers your first priority asap.
As for ToS and Privacy Policy. I didn't use an off-the-shelf document from the internet because I was trying to make sure it's clear the data is not being harvested in any way, but I guess I need to amplify that more. What do you suggest? I'm genuinely curious and would like to know your suggestions.
Thanks again :)
Encryption is an important key here, and I’d want to see source of the core app to make sure it handles all that appropriately. If I was you, I’d publish the core app as open source, and I’d sandbox apps potentially in iframes with reduced permissions & inject a message channel to talk with the main app. You could control access to any secrets on the main app this way, so users have some safety guarantees.
Basically:
Main app (secret management, styling, window management, etc)
|
|——————— msg channel <-> apps
|
|
|——————— (de)crypt <-> persist
Have the apps talk with the core and any core services via a message based event loop. Have all persistence go through a service on the core.
Apps can potentially be closed sourced safely that way.
Whatever you do, make it so third party power users can independently verify it is legit and the entire project will be much more able to stand scrutiny.
I'm actually planning to open source the whole thing (fingers crossed) this way anyone can look into the code!
There's also a neat changelog https://puter.com/app/changelog
touch abc
cat abcUncaught SyntaxError: private fields are not currently supported
So I went back to try it: app names are apparently global. I couldn't create an app called "test" because "Name is already used by another app. Please pick another name."
Oh, an app is just a URL. Clicking on it just opens the URL in a new window/iframe. It looks as if you can attach a document to the app, so perhaps it sends that along when you drop a document on the icon. Would be neat, but it does rely on other people making and publishing your killer app, and provide the infrastructure for it. I smell micropayments.
Splatting a login/signup form in your face right away with no indication whatsoever of what the website is about, is a dark and scummy pattern.
"Puter is a cloud operating system that allows you to upload, store, process, and share data, files, personal information, messages, pictures, and other materials (collectively, your “User Data”). You can also search, preview, sort and personalize your User Data."
I didn't give them anything; I also don't recall their asking for anything.
When I click the link, I see only a login modal over some abstract background art. I don't even see the link to the terms of service you have there. (That's after I enabled Javascript on the page to even get that far.) I can only assume that's what OP is complaining about. Maybe they've got too many users because of this post and they're limiting it to signup-only for now? Or maybe my browser isn't passing some IP trustworthiness thing. shrug
Edit: deleting cache and offline website data in Firefox fixed it. In my experience when this fixes something it's usually because there's a broken web worker and that forces it to redownload.
If for whatever reason, one of the XHR/fetch requests fails, you end up with only the "has_visited_before" key in the LocalStorage, which causes you to be stuck on the login screen until you clear the LocalStorage.