Live data from Hacker News

Running an open source app: Usage, costs and community donations

spliit.app

141–150 of 167 posts

Re: Running an open source app: Usage, costs and community donations

#141

Earlier quoted context omitted.

If you don't want to give away software, and it sounds like you don't, then. Don't. Perhaps you're under the impression that I blindly click the button for a permissive license? No. I read it first. I know what it allows. That's why I choose it. I think it's nice when companies make money, for the record. Pays for houses, puts food on the table, sends kids to summer camp and college. Some of them even make a lot of m…

Did you know that every dollar a company makes gets taken away from someone? It's zero-sum if you aren't close to Jerome Powell. Why assume the dollar is better in the hands of the company owner than whoever had it before?

Every dollar a company makes is given to them by someone, in exchange for something else.

I go to the supermarket, they don't take my money. I pull it out of my pocket and swipe it into their coffers. They have food, you see. Which I can eat. Unlike money.

Strange how a game you describe as zero sum has built the prosperity of the modern world. I wonder if something is missing from your understanding of how that game is actually played.

Re: Running an open source app: Usage, costs and community donations

#142
post #21

Earlier quoted context omitted.

6k visits per week * 5 page views per visit is one view per 20 seconds on average. Even very modest hardware with naively written application code should have no problem handling thousands of CRUD database queries per second (assuming every query doesn't need a table scan or something). Modern computers are mind-bogglingly powerful. An old laptop off eBay can probably handle the load for business needs for all but th…

You're right but I'll play devil's advocate for teaching purposes: * Usage won't be uniformly distributed and you may need to deal with burst traffic for example when a new version is released and all your users are pulling new config data. * Your application data may be very important to your users and keeping it on a single server is a significant risk. * You're users may be geographically distributed such that a u…

> may be geographically distributed such that a user on the other side of the world may have a severely degraded experience.

Okay, am I crazy or can you not really solve this without going full on multi-region setup of everything? Maybe your web server is closer to them but database requests are still going back to the "main" region which will have latency.

Re: Running an open source app: Usage, costs and community donations

#143
post #83

Earlier quoted context omitted.

If you become a sysadmin, not only do you save $100 per month but you can also add it to your CV. DHH (Rails founder) thinks you should dare to connect a server to the internet: https://world.hey.com/dhh/dare-to-connect-a-server-to-the-in... (I already submitted this once, but given the discussion here, I think it's worth posting again, if my rate limit allows it)

> The merchants of complexity thrive when they can scare you into believing that even the simplest things are too dangerous to even attempt by yourself these days. Awesome first sentence! I know I'm going to agree with the article just by that. This applies to so many things in life, too. We're been taught that so many things people routinely did in the past are now scary and impossible.

[flagged]

Re: Running an open source app: Usage, costs and community donations

#144

Earlier quoted context omitted.

> You're on record as being vehemently anti-OSS. That's true, I'm the chief anti-OSS crusader on HN and online. I'll give it a rest after this thread, to breathe and give all a chance to recover strength. > Some of us like making things, and are happy to share our excess production with the world. Selling those things is still sharing with the world. Most paid software is cheap to purchase. If FOSS was an eco system…

Selling a thing comes with greater obligations than giving it away. I am unwilling to accept those obligations, in most cases. I am, however, perfectly happy to share some of the work that I do back into an ecosystem which I have benefited from. I also volunteer for organizations I care about, and I pick up litter in public parks. :) I do not believe that I am being exploited. The Internet is and always has been buil…

> I am unwilling to accept those obligations, in most cases.

This is the argument I keep hearing every time a discussion about open source boils down, and I think it is wrong. Because in truth there is no big commitment if you sell some software for $10 or $20. In worst case if it doesn't work for the customer, you give a refund. When you go out to buy a sandwich or a couple of beers for $10, do you think they are worried about any commitment? No, it's "Here you go, enjoy!". You won't have any more obligations than you are willing to take on, just like open source.

> I also volunteer for organizations I care about, and I pick up litter in public parks.

Would you pick up litter that a mega-corp is dumping in the woods, while they keep dumping more and laughing at you?

Re: Running an open source app: Usage, costs and community donations

#145
post #96
post #87

Earlier quoted context omitted.

It's trivial to run mysql (or Perforce variant) or Postgres, with some minor caching for simple apps. I'm not sure what you are hitting that would go past the capacity of a small vps. Independent VPs for DB make sense, but if the requests are reasonably cached, you can get away with it (and beef up the backups) especially if it's something non-critical.

Definitely considering a dedicated Postgres VPS. I've not looked yet, but I'd like to locate a decent cookbook around this. I've installed Postgres on a server before for playing around, and it was easy enough. But there are a lot of settings, considerations around access and backups and updates, etc. I suspect these things aren't overly thorny, but some of the guides/docs can make it feel that way. We'll see, as it'…

I went through this around a year ago. I wanted to postgres for django apps, and I didn't want to pay the insane prices required by cloud providers for a replicated setup. I wanted a replicated setup on hetzner VMs and I wanted full control over the backup process. I wanted the deployment to be done using ansible, and I wanted my database servers to be stateless. If you vaporize both my heztner postgres VMs simultaneously, I lose one minute of data. (If I just lose the primary I probably lose less than a second of data due to realtime replication).

I'll be honest it's not documented as well as it could, some concepts like the archive process and the replication setup took me a while to understand. I also had trouble understanding what roles the various tools played. Initially I thought I could roll my own backup but then later deployed pgBackrest. I deployed and destroyed VMs countless times (my ansible playbook does everything from VM creation on proxmox / hetzner API to installing postgres, setting up replication).

What is critical is testing your backup and recovery. Start writing some data. Blow up your database infra. See if you can recover. You need a high degree of automation in your deployment in order to gain confidence that you won't lose data.

My deployment looks like this: * two Postgres 16 instances, one primary, one replica (realtime replication) * both on Debian 12 (most stable platform for Postgres according to my research) * ansible playbooks for initial deployment as well as failover * archive file backups to rsync.net storage space (with zfs snapshots) every minute * full backups using pgBackrest every 24hrs, stored to rsync.net, wasabi, and hetzner storage box.

As you can guess, it was kind of a massive investment and forced me to become a sysadmin / DBA for a while (though I went the devops route with full ansible automation and automated testing). I gained quite a bit of knowledge which is great. But I'll probably have to re-design and seriously test at the next postgres major release. Sometimes I wonder whether I should have just accepted the cost of cloud postgres deployments.

Re: Running an open source app: Usage, costs and community donations

#146

Re your question on saving costs: If you run it on a single Linux VPS, then I suspect you can get the costs down to 5-10$ per month. One thing I find interesting is the growth chart: It's linear. But given that the app clearly has some traction, and is viral in nature, how come it isn't exponential?

It usually never is exponential, see e.g. https://longform.asmartbear.com/exponential-growth/ that shows examples from "hypergrowth" companies where it's perceived these companies grew exponentially, but the growth actually followed a more quadratic form. About halfway through the article, the author shows another model that's more likely to fit these growth patterns: logistic growth. After initial rapid growth, followed by a period of linear growth, it eventually flattens out, indicating it's at "carrying capacity", or "market saturation".

Re: Running an open source app: Usage, costs and community donations

#147

Re your question on saving costs: If you run it on a single Linux VPS, then I suspect you can get the costs down to 5-10$ per month. One thing I find interesting is the growth chart: It's linear. But given that the app clearly has some traction, and is viral in nature, how come it isn't exponential?

Best I’ve been able to do is around $22 a month on DO, would love to hear alternatives that are cheaper

DO is quite expensive, Vultr is solid, Hetzner is too and is even cheaper.

Re: Running an open source app: Usage, costs and community donations

#148
post #3

I love the idea of this but, given the traffic numbers, this could run on a $4 Digital Ocean droplet and have the same result. They've burnt over a grand just to use vercel. Maybe I'm just older but I don't understand the logic here. A basic VPS, setup once, would have the same result and would be neutral in cost (it's how I run my own little free apps). Maybe the author is lucky enough that $100/mo doesn't really af…

Running a database accessed that many times on a $4 Digital Ocean droplet? I'd be very curious to see that ;) The web hosting costs basically nothing. Most of the cost comes from the database.

They have under 1k visits per day, unless it's a really heavy app for some reason just about any basic VPS should handle a Webserver + DB for that just fine.

It does feel like the tech community as a whole has forgotten how simple and low resource usage hosting most things is, maybe due to the proliferation of stuff like AWS trying to convince us that we need all this crazy stuff to do it?

Re: Running an open source app: Usage, costs and community donations

#149

Earlier quoted context omitted.

Yes, I believe a Droplet or VPS (virtual private server) from some other provider would be sufficient. Digital Ocean isn't the cheapest, but it's pretty frictionless, slick, and has a lot of good tutorial articles about setting up servers. You'd have a Linux machine (the VPS) that would have at least 3 programs running (or it is running Docker, with these programs running inside containers): - Node.js - the database…

Could you continue on about security and availability? This is exactly the gentle intro I've been looking for. I'm guessing rate limiting, backups, and monitoring are important, but I'm not sure how to go about it.

I'm not entirely on the same page as the parent comment regarding "[t]hat's what you're paying a good PaaS for" in terms of security and availability. If the platform is down, having a service level agreement (SLA) is nice, but worthless because your application is also unavailable. Depending on how integrated your application is with said platform, migrating to another platform is difficult. If the platform cut corners regarding customer data separation (you know, because you can be cheaper than the competition), your users' passwords may be next on HIBP (haveibeenpwned.com).

This is of course a rather pessimistic view on platforms. Perhaps the sweet spot, where the parent commenter is probably referring to, is something where you have more control over the actual applications running, exposed network services, etc., such as a virtual machine or even dedicated hardware. This does require more in-depth knowledge of the systems involved (a good guideline, but I'm unsure where I picked this up, is to have knowledge of 1 abstraction layer above and below the system where you're involved in). This also means you'll need to invest a lot of time in your own platform.

If you're looking for a gentle intro into security and availability, have a look at the OWASP Top Ten[0] that shows ten subjects on web application security with prevention measures and example attacks. A more deep dive in security concepts can be found on the Arch Linux wiki[1]; it also focuses on hardening computer systems, but for a start look at 1. Concepts, 2. Passwords, 5. Storage, 6. User setup, 11. Networks and Firewall. From 14. See Also, perhaps look into [2], not necessarily for the exact steps involved (it's from 2012), but for the overall thought process.

As for availability in an internet-accessible service, look into offering your services from multiple, distinct providers that are geographically separate. Automate the setup of your systems and data distribution, such that you can easily add or switch providers should you need to scale up. Have at least one external service regularly monitor your publicly-accessible infrastructure. Look into fail-over setups using round robin DNS, or multiple CDNs.

But I suppose that's just the tip of the iceberg.

[0] https://owasp.org/Top10/ [1] https://wiki.archlinux.org/title/Security [2] https://www.debian.org/doc/manuals/securing-debian-manual/in...

Re: Running an open source app: Usage, costs and community donations

#150
This is a fantastic app. Thanks for sharing the breakdown.

If banks would get their head out of their ass, this would be a native feature with ach/zelle/fednow as the backbone. Organizer creates group in bank app and can invite other users which may have different bank accounts. Payment requests satisfied through 1-click. No more manually checking if Cashapp/bank accounts/venmo have received payment then checking off the expense in third party app

Post reply on HN