6 ms·
There’s still no good way for me to write an open source web application and have its users bear the cost of running it. This is a major regression from open s
by erikpukinskis 5y ago
There’s still no good way for me to write an open source web application and have its users bear the cost of running it.
This is a major regression from open source desktop software, and IMO is the reason open source web applications haven’t taken off more.
- charcircuit 5y agoIsn't the solution just to use ads to have users fund the site? What were you thinking of?
- geysersam 5y agoI think s/he wants something that the users hosts together. Ads can be blocked, reduces the value of your service and do not pay enough to cover infra cost unless you have many users. In comparison - the resources needed to run a desktop app is 100% provided by the user.
- kardos 5y agoThat requires running a pile of nonfree/intrusive tracking code, and many people block this kind of thing
- water-your-self 5y agoHow is peertube these days
- layer8 5y agoSandstorm.io was basically doing that, and it’s the direction I’d want to see as a user. Unfortunately it isn’t attractive to application providers who want to monetize their applications, and without enough applications it’s also not attractive to users. Maybe it needs to be combined with a platform like NextCloud.
- thorgutierrez 5y agoOne of my big realization of 2021 is that this is exactly what blockchains can provide. You can have permanent hosting of your website on Arweave[1] and interactions with the website could save your state on Ethereum or similar. You pay once to host the website, and then it's free to browse and users pay whenever they want to change the state (e.g. post something on your website). Ethereum is like this big world computer that anyone can publish to and users pay to interact with it. You don't have to worry about hosting or uptime and it will be up there forever. [1]: https://www.arweave.org https://www.arweave.org
- matkoniecz 5y agoHow large is ETH overhead? I expect it to be atrociously massive.
- thorgutierrez 5y agoIt's massive right now, yes. Especially because of proof of work. It will get better, but I don't think we can expect it to be as good as everybody hosting their own services in the cloud. That is a big disadvantage of Ethereum, but I still think it is pretty interesting that it essentially handles devops for you forever.
- macrolime 5y agoThere's the SAFE Network that will do exactly that. It's pay on put. You as a developer would have to pay a one time cost to store the app on network, but that should quite cheap. Users would then pay to store their own private data through the (web)app. It uses its own browser and protocol as sites are stored on a peer to peer network. It's still in somewhat unstable test versions, but I think there's hope it can be out within the next year or so.
- afpx 5y agohttps://safenetwork.tech/ https://safenetwork.tech/
- carlosdp 5y agoThere's actually a lot of open source apps that have this property in a particular category: web3 apps. Users (or other intermediaries, not necessarily the app dev) pay the cost of transactions, and thereby pay the cost of the data storage / computation layer. HN doesn't seem to like web3 very much yet, but one of the most positive innovations it brings is giving open-source apps a direct business model (instead of the usual "pro" and service org or hosted-version model). There are plenty of open-source apps making hundreds of millions or billions in revenue in this space! Even utility open-source projects receive significant funding through projects like Gitcoin (https://gitcoin.co/ https://gitcoin.co/).
- yuliyp 5y agoweb3 apps do have high transaction costs, but that's not really reducing the costs that the web3 app would have otherwise paid to have a local database. So it costs money, but the developer doesn't really earn anything because of it.
- carlosdp 5y ago> but that's not really reducing the costs that the web3 app would have otherwise paid to have a local database I'm not sure what you mean? It literally makes the cost to the developer 0 per user. And the original developer can absolutely earn money this way. In fact, in web3 it's possible for frontend devs to earn money by creating better frontends to existing protocols utilizing referral fees that can be specified in calls to the protocol!
- hutrdvnj 5y agoI think we need something like micro payments. Take lichess for example it's the biggest open source chess website completely ad free and runs by donations. If you divide the total monthly costs to run the servers by the number of games and you get a tiny fraction of a dollar cent. I don't remember the exact number, but it has been in the order of 1k chess games equals 1$. If you could charge 0.1 cent per game, then this website could run without any extra donations. Another idea that comes to mind is that the server side could be somehow run by the connected users. Users have storage + cpu cycles. Similar to torrent as long there's enough users (seeders) the game server will continue to work. Lichess for instance has tens of thousands players online 24/7.
- zamadatix 5y ago"How to pay" always seemed like the easy half of the problem to solve, "how to manage what should be paid" seems much harder as nobody wants to deal with sorting through fraction of a penny payment approvals. Is 0.01 cent per game acceptable? 0.05? If you accept at 0.01 and it goes to 0.05 do you have to re-accept? If everyone decides sets 0.1 cents as an auto-approve boundary does that mean every site is now going to try to charge 0.0999 cents? Does some centralized entity try to set these rates instead? How does the system protect against the equivalent of collect call scams? Does it protect against that in a way that doesn't limit actually using a service very quickly? It's like the permissions problem (really easy to prompt, really annoying to do so, really really bad to just assume yes or no all the time) except worse. In regards to distributed serving using the client endpoints it has a strong tendency to be more work, less reliable, and not as scalable (see peertube). What has seemed to work is offloading as much of the functionality for that user as you possibly can to that user's device. E.g. want to play a game against the computer? Run the chess engine WASM bundle on your device instead of the server (lichess does this).
- ggeorgovassilis 5y ago> "How to pay" always seemed like the easy half of the problem to solve With the cut payment providers currently keep it still seems like an unsolved problem for micropayments
- imiric 5y agoForget open source—there never was a simple way for users to self-host web ~servers~ applications that gained any traction whatsoever. Opera gave it a go more than a decade ago with Opera Unite, but that went nowhere. Like a sibling comment mentioned, Sandstorm was a push in the right direction, but it also eventually failed. Docker and current container solutions are still way too complicated for the average user. The fact web founders focused so much on making the consumption of web content easy rather than producing/serving it is partly the reason why the web is so centralized today.
- dijit 5y agoThis is a weird take on history and divorced from the reality we live in even now. The first ever web browser written by Tim Berners Lee at CERN on a NeXt computer was a web editor as well. He envisioned that every web user would be a web creator. He is quoted many times as saying this. Today: you can still stand up a web server at your house and forward the ports on your router. Unless you’re behind a carrier grade NAT (as those are becoming much more common now that IPv4 is exhausted).
- pavlov 5y agoSeems like you agree that there isn’t a simple way to do it. The browser-as-editor didn’t even survive into the next generation of web software — Mosaic already was read-only. And that’s because Berners-Lee’s vision lacked any unified solution to hosting the web creations.
- LargoLasskhyfv 5y agoThere was https://en.wikipedia.org/wiki/Amaya_(web_editor) https://en.wikipedia.org/wiki/Amaya_(web_editor) I've used that until about 2010 for clicking together concepts of pages, to refine them manually, if at all.
- adventured 5y ago> Today: you can still stand up a web server at your house and forward the ports on your router And you just lost 97%+ of the Internet userbase. They have no idea what you just said.
- px1999 5y agoThis is unfortunate because a couple of attempts get _so close_. You've got public docker repositories, terraform, aws service catalog (or cloudformation), all of which could fill this gap directly or via their own services if they had a slightly more beginner-accessible workflow...
- hsn915 5y agoHow do any of these things help? "docker repositories, terraform, aws service catalog (or cloudformation)" These are all part of the problem, and can never be the solution.
- notreallyserio 5y agoWhat is the problem they are a part of, and what makes them part of that problem? They don't seem problematic to me.
- hsn915 5y agoYou can't solve problems of complexity by piling on more and more layers. Layers need to be collapsed
- rytill 5y agoCitation needed.
- notreallyserio 5y agoTerraform is roughly the equivalent to a Makefile. If anything it reduces complexity by encouraging operations to be run in a reproducible and testable fashion. Is it a layer? Sure, but little more than a shell script is a layer.
- civilized 5y agoWhat's wrong with subscription fees?
- cheriot 5y agoA theory: When declarative IaaS gets to a certain point, we can distribute the cloud hosting version of a one-click install. Then use federated auth so people can choose any instance of the app to host their identity.
- hsn915 5y agoYou can. If you write it in Go and package it as a single binary. You can't if you write it in a scripting language that requires tons of programs to already exist on the system (a specific version of the language interpreter + a database server + other servers like redis and memcache etc etc etc). This is a problem with programming languages, not with computer systems. Computer systems already allow you to package and ship programs as self-contained units. That's their default mode of operation. The prolifiration of scripting languages that require an entire environment to be configured before it can a program is something that programmers have done to themselves.
- simne 5y ago> If you write it in Go and package it as a single binary. ... > You can't if you write it in a scripting language that requires tons of programs to already exist on the system You are close, but you are not exactly right. If consider real case of application, which create some value (I don't mean just money, may be for example community value or scientific), you will need to depend on some libraries or tools. This is how our civilization works, we don't create all things from scratch every time, but instead, we take ready parts and construct something new from them, possibly adding our new parts. Some parts could been compiled/linked statically inside your big one file package, some only dynamically. Scripting languages difference is just that they usually shipped with rich development library, and in many cases it is possible to cut unused parts of these libraries. For example, Python now shipped even with sqlite database included, sure this is not tiny package, but it is used in many applications. To be more precise, python for android (p4a), when compiled as helloworld, results in approximately 6mbytes .apk. As I said before, there all python standard library compiled with cython. Sure, if you will compile helloworld native, will got something within 200k, but if add any library, it will grow, and for real application, 6mb is not to much currently. If add functionality to p4a helloworld, it grow very slowly, because compiled Python representation is relatively compact. BTW it could be interesting project, to add to Python/Cython possibility, to create single binary package, so it will not decompressed to fs hierarchy, but read all from those binary as need.
- hsn915 5y ago
- vermilingua 5y agoThere is probably room for a consumer appliance (like a souped-up NAS) that puts a facia and marketplace around Docker, letting end-users run self hosted apps. I know QNAP (at least) tried something similar to this, but it seemed to be fairly constricted. Or to take it further, the same thing running in the cloud, but costs could pretty easily blow out of proportion with end-users not being fully aware of the costs of their actions.
- XCSme 5y agoI think that running a marketplace application on DigitalOcean is pretty easy (done in a few clicks, but depends on the application). If the image contains common sense security measures, then for the average user this is safer than a 3rd party SaaS.