12 ms·
Running an open source app: Usage, costs and community donations
- valevk 2y agoWould be interesting to see how this compares to https://splid.app/ https://splid.app/
- nacs 2y agoWell this is opensource for one.
- deleted 2y ago[deleted]
- averrous 2y agoCan anyone tell me what tool can i use to track website visit statistics?
- remram 2y agoThey use Plausible. There are a few alternatives: https://alternativeto.net/software/plausible-insights/ https://alternativeto.net/software/plausible-insights/
- tempfile 2y agoSo that's how vercel makes their money.
- Dachande663 2y agoI 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 affect them or they're happy for it to pay for the convenience (my assumption).
- scastiel 2y agoRunning 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.
- tosh 2y ago[flagged]
- deleted 2y ago[deleted]
- diggan 2y ago> Running a database accessed that many times on a $4 Digital Ocean droplet? How many times per second is the DB actually accessed? As far as I can tell my the metrics, they're doing ~1.7 requests/minute, you'll have a hard time finding a DB that couldn't handle that. In fact, I'd bet you'd be able to host that website (the database) in a text file on disk without any performance issues whatsoever.
- ndriscoll 2y ago6k 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 the very largest corporations.
- diggan 2y agoDo I read something wrong, or does the stats amount to ~400 daily visitors with ~2500 page views per day? That's about ~1.7 requests per minute... And they pay $115/month for this? I'm 99% sure I'm reading something wrong, as that's incredible expensive unless this is hosting LLM models or something similar, but it seems like it's a website for sharing expenses?
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- roflmaostc 2y agoYeah, I'm confused too. Running some sort of VPS would totally do the job, no?
- diggan 2y agoI'm fairly sure you could host this on a last-gen Raspberry PI at home, if you live close to where your users are :)
- Aachen 2y agoDefinitely don't need a last gen. Someone else did the math upthread and came to one request every 20 seconds, which if you factor in burstiness and that if you have a particularly bad burst that slows down the system a little, the next request will take even longer etc. (ask me how I learned that lesson), it's probably good to budget for it handling multiple requests per second. For this application, my understanding is you've got a handful of people in your group that you're splitting a couple of expenses with, so data processing is small beans and that'll definitely run on a first gen Pi if you optimise it properly, or perhaps a 2nd-3rd gen if you don't want to spend the time
- Vegenoid 2y agoI think this is just the natural conclusion of the new generation of devs being raised in the cloud and picking a scalable serverless PaaS like Vercel as the default option for any web app. A more charitable reading is that they pick the technologies that the jobs they want are hiring for, even if they don’t make sense for this simple application.
- rikafurude21 2y agoFor reference, 100 dollars a month gets you this bare metal server on hetzner: Intel® Core™ i9-13900, 64 GB DDR5 ECC, 2 x 1.92 TB ... Should be more than enough to handle 2 requests per minute, could probably handle 100x of that.
- ndriscoll 2y agoMy i5-6600k at home can handle ~15k requests per second for a toy social media app with postgresql assembling the xml to send to the client (though I've done some batching optimization and used rust for my application server to hit that). Passmark cpubenchmark suggests a 13900 should be 6-8x more capable than that. So it should be able to handle somewhere in the ballpark of 2,000,000x the required load, or maybe 100,000x without the application level optimization. (TLS reduces this by a factor of ~10 if you're doing handshakes each time. Despite what blogs claim, as far as I can tell, if your CPU doesn't have QAT, TLS is very expensive)
- wongarsu 2y agoIf you're on Hetzner you can get a load balancer with TLS termination for $5/month. It's hidden in the cloud category but fully supports dedicated servers. Of course doing SSL on the server itself is more secure, but if that's a performance bottleneck the load balancer can be a cost effective compromise
- kkielhofner 2y agoYes Cloudflare and all of that but they’ll do it for free. Then you get to determine gains you may get from caching and other potential optimizations from one of the best eyeball connected providers in the world. Oh plus the ability to fend off the largest DDoS attacks ever seen. Cloudflare tunnels enable you to do all of this through an encrypted tunnel without exposing the machine/services to the internet at all. Cloudflare will still MITM all traffic but so does Hetzner (obviously). At least with the tunnel the connection is persistent so you don’t incur TLS handshaking, etc CPU overhead with each client connection. Bonus points - you can move hosting providers without any hassle, configure hosting provider redundancy (Hetzner + whoever), all of that stuff.
- carlosjobim 2y agoYet another testimony to how utterly few people are willing to pay for what they use in the abuse system called "open source". People, start charging for your work, and leave the freeloaders behind! > A short disclaimer: I don’t need donations to make Spliit work. I am lucky enough to have a full-time job that pays me enough to live comfortably and I am happy to give some of the money I earn to the community. And this is why open source will finally die, because being comfortably employed while still having surplus time and energy to work for free is an increasingly rare thing among the younger generations. A better way to "give back to the community", instead of making open source software, would be to purchase software from other indie developers.
- jampekka 2y agoIf anything is dying it's proprietary software. Which is great for all of us because open source is vastly more efficient system.
- aniviacat 2y ago> People, start charging for your work, and leave the freeloaders behind! We already have a profit-oriented market. And we have empirical evidence that profit-oriented markets do not like open source (for their primary products). > being comfortably employed while still having surplus time and energy to work for free is an increasingly rare thing among the younger generations. edit: remved anecdote The cost of living will never rise so much that the upper 50% can't easily make enough money. (Otherwise what? The other 150 million people go homeless?) And unless our industry sees a major shift, which I don't see happening, software engineers will continue being comfortably in the upper 50%.
- carlosjobim 2y ago> We already have a profit-oriented market. And we have empirical evidence that profit-oriented markets do not like open source (for their primary products). That's a given. If you open source your code, other developers will steal it and sell your software. Just like billion dollar tech companies are the main benefiters of open source today, that some guy made for free. Excuse me, I meant for $42 in donations.
- trevor-e 2y agoI've been going down the VPS rabbit hole lately since I have some toy projects I want to host and really don't like the unpredictable pricing model of these "pay as you go" providers like Vercel. E.g. I really love Supabase but it's hard to justify jumping straight to the $25/month plan in combination with Vercel costs. I was surprised how extremely easy it is to get set up with Coolify on a Hetzner VPS, which has preset install options for NextJS + Supabase + Posthog + many others. And I get the standard autodeploy on commit functionality. The open-source versions are missing some features, and I don't get the slick Vercel admin interface, but for a pet project it works great. I'm also by no means a sysadmin expert, but with ChatGPT it's pretty easy to figure things out now.
- deleted 2y ago[deleted]
- pentagrama 2y agoI tested the app and found it awesome that it doesn't require account creation! You just get a private link, share it with the group, and when they open the link, it asks who they are to 'log in' as themselves. Of course, users could game the system by logging in as other members, but I think it's a compromise the developer made, knowing the user base and how frictionless it makes the user experience. Neat.
- culi 2y agoI've used this really neat website called when2meet[0] for community organizing heavily. You make an event, get a url and share it. Users choose their name and they can even add a completely optional password to prevent impersonation I'm heavily inspired by it and working on an app for book clubs to host "elections" to choose their next book to read using a variety of voting systems (ranked choice, approval, scored, first past the post, etc). [0] https://www.when2meet.com/ https://www.when2meet.com/
- sdenton4 2y ago+1 for when2meet. It is gloriously cruft-free.
- itsthejb 2y agokittysplit.com has had this feature set for a decade. I try to promote it whenever I can
- renewiltord 2y agoThis is cool, dude. Thank you for sharing. Irrespective of the actual numbers I’m always curious how people fund projects like this. One thing I’ve been interested in is the idea of decentralized handling for this. That is, the project is funded in and every month if its bills don’t get paid it dies. If it receives enough to go over it buys T-bonds for the appropriate duration and then burns them down over time. Perhaps in the past it would have to be automated but I wonder if in the near future a limited AI agent could be the server and you leave him alone to do his thing.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- anticorporate 2y agoNot to be "that guy" but... To clarify some confusion in this thread, it might be helpful to distinguish "open source" (the application) from "free" (this hosted instance of the application). Munging the two together might lead to some incorrect conclusions. Running a "free" application for others is going to have certain costs. The cost of running an "open source" application is going to depend entirely on the resources that application consumes, which, if run privately, might be a lot less.
- weinzierl 2y agoThe pay only what you use model is nice when your revenue also scales with use. For my projects I wish there were plans with higher fixed cost and risk only in availability and not in cost.
- sam0x17 2y agoThe only downside with that I've found is people and orgs tend to overestimate their future usage of X across the board, so profits rarely match expectations with pay-as-you-go, and tier-based pricing will easily overcome you by capturing more $$ from the market. Some notable exceptions are things like file storage where people tend to underestimate what they will need I find.
- RadiozRadioz 2y ago[flagged]
- deleted 2y ago[deleted]
- mherrmann 2y agoRe 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?
- JamesonNetworks 2y agoBest I’ve been able to do is around $22 a month on DO, would love to hear alternatives that are cheaper
- misiek08 2y agoHetzner my lord :)
- moffkalast 2y agoPi 5 + Cloudflare
- eklavya 2y agoAny guides or blogs on how to do that?
- moffkalast 2y agoLoads, but it'll depend on what you want to do exactly. I think this should be the approximate list of things: - domain at Cloudflare set up to cache requests (this will take the brunt of the site traffic) - static IP at home (call your ISP) - port forwarding on your router to the Pi for 80 and any other ports you need, maybe a vlan if you're feeling like isolating it - a note on the Pi that says "don't unplug, critical infra" - the same setup on the Pi as you'd do on a cloud server, ssh with key pairs, fail2ban, etc.
- abound 2y agoI run a homelab that isn't too far from this, but I wouldn't recommend it without a few caveats/warnings: - Don't host anything media-heavy (e.g. video streaming) - Make sure you have reasonable upload speeds (probably 10+ Mbps min) - Even behind Cloudflare, make sure you're comfortable with the security profile of what you're putting on the public internet The min upload speed is mostly about making sure random internet users (or bots) don't saturate your home internet link.
- LVB 2y agoI'm always curious what folks use for their database for things like this. Even though I like SQLite--a lot--my preference has become that the app is generally separate and mostly stateless. Almost always the data is the most important thing, so I like being able to expand/replace/trash the app infra at will with no worries. Thought about maybe running a Postgres VPS, but I've enjoyed using neon.tech more than I expected (esp. the GUI and branching). I guess the thing that has crept in: speed/ease is really beating out my ingrained cheapness as I've gotten older and have less time. A SaaS DB has sped things up. Still don't like the monthly bills & variability though.
- mtlynch 2y ago>Almost always the data is the most important thing, so I like being able to expand/replace/trash the app infra at will with no worries. Have you used SQLite with Litestream? That's the beauty of it. You can blow away the app and deploy it somewhere else, and Litestream will just pull down your data and continue along as if nothing happened. At the top of this post, I show a demo of attaching Litestream to my app, and then blowing away my Heroku instance and redeploying a clean instance on Fly.io, and Litestream ports all the data along with the new deployment: https://mtlynch.io/litestream/ https://mtlynch.io/litestream/
- LVB 2y agoI'm currently using SQLite + Litestream with one app, though it's strictly Litestream as a backup/safety net and I'd be manually standing the thing back up if it came to building the server anew, as that's not automated. If anything, I'd probably end up looking at a dedicated PG VPS. I've started to get used to a few Postgres conveniences over SQLite, especially around datetimes, various extensions, and more sophisticated table alterations (without that infamous SQLite 12-step process), etc. So that's been an evolution, too, compared to my always-SQLite days.
- Cheer2171 2y ago> No, my app never talks to a remote database server. > It’s a simple, open-source tool that replicates a SQLite database to Amazon’s S3 cloud storage. That was a very long walk to get to that second quote. And it makes the first quote feel deceptive.
- Onavo 2y agoWhat they need is a payment provider integration so you can ACH or credit card pay immediately. That can also be a monetisation option for them.
- dabeeeenster 2y agoYou just invented money laundering
- Onavo 2y agoNot really, the KYC is usually done on the payment layer depending on which payment platform you use. If you are doing your own ACH, yes, you will need KYC. But if you are using something like stripe connect or dots.dev then KYC is their problem.
- Reubend 2y agoThere are dozens of other apps that do that already, and I don't think this one needs to follow. Staying open source, free, and convenient for cash transactions is better in my opinion.
- dangsux 2y ago[dead]
- jedberg 2y agoI'll email this to you, but you could save a ton of money using a serverless database solution like Supabase or NeonDB.
- hahahacorn 2y agoThe inefficiency is bonkers but understandable. I could host this app for like ~$60/year, generously, with little to no devops work. It's painful to see the creator paying out of pocket for such a great project because the Vercel marketing introduced such massive inefficiencies to the ecosystem. Even less when I pay for a dedicated machine running all of my hobby projects. Gratuitous Kamal 2 plug. Run your personal projects all on one machine.
- JamesonNetworks 2y agoWhere would you host this for $60 a year?
- misiek08 2y agoI would use hosting with SSH access. I am based in Poland so we have MyDevil.net But also you can just rent VPS for 5$, but you have to care about setting everything up. First thing I thought while reading was Firebase - it's interesting how much it would cost there.
- hahahacorn 2y agohetzner cpx11 in Ashburn - 150 ms latencies to Europe are totally fine for this use case. with 15k groups and 162k expenses (guesstimating 30k users, email logs per-expense, etc.) , you're not even pushing 2 gigabytes of disk space (conservatively), nor are you doing anything computationally expensive or stressful for the DB under normal load. With decent app & db design, like proper indexing, 2 vCPUs and 2gb RAM is more than enough.
- deleted 2y ago[deleted]
- xyst 2y agoThis 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
- BigBalli 2y agoI would considering Firebase for database (best effort/cost ratio I found) or self-hosting the db.
- raybb 2y agoI love spliit and use it regularly. Like many times per week. One thing that drives me crazy is it works really poorly on slow mobile connections. I'd really love to try to add local first or offline first support but I know it would be a significant change. However, even just caching pages like the add expense page would be a nice improvement.