top | item 41879845

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

264 points| scastiel | 1 year ago |spliit.app

148 comments

order

LVB|1 year ago

I'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|1 year 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/

j45|1 year ago

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.

jwells89|1 year ago

Spinning up a VPS for things like this is tempting to me too, but not having done significant backend work in over a decade my worry would be with administering it — namely keeping it up to date, secure, and configured correctly (initial setup is easy). What's the popular way of handling that these days?

pentagrama|1 year ago

I 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|1 year ago

I'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/

itsthejb|1 year ago

kittysplit.com has had this feature set for a decade. I try to promote it whenever I can

mherrmann|1 year ago

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?

binwiederhier|1 year ago

I was thinking exactly this. I am the maintainer of ntfy.sh and my costs are $0 at the moment because DogotalOcean is paying for it 100% because it is open source. It would be around $100, though I must admit it's quite oversized. However, my volume is much much higher than what is described in the blog.

I suspect that the architecture can be improved to get the cost down.

mrngm|1 year ago

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".

mkrd|1 year ago

Same thought, I am absolutely blown away by how much vercel overcharges. I host a similar application on netcup (like hetzner) for 3$ per month, and when it was on HN, it easily handled over 10k requests per hour

JamesonNetworks|1 year ago

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

renewiltord|1 year ago

This 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.

weinzierl|1 year ago

The 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|1 year ago

The 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.

raybb|1 year ago

I 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.

Dachande663|1 year ago

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 affect them or they're happy for it to pay for the convenience (my assumption).

scastiel|1 year ago

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.

xyst|1 year ago

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

Onavo|1 year ago

What 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.

Reubend|1 year ago

There 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.

dabeeeenster|1 year ago

You just invented money laundering

jedberg|1 year ago

I'll email this to you, but you could save a ton of money using a serverless database solution like Supabase or NeonDB.

BigBalli|1 year ago

I would considering Firebase for database (best effort/cost ratio I found) or self-hosting the db.

diggan|1 year ago

Do 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?

Vegenoid|1 year ago

I 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.

roflmaostc|1 year ago

Yeah, I'm confused too. Running some sort of VPS would totally do the job, no?

trevor-e|1 year ago

I'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.

hahahacorn|1 year ago

The 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|1 year ago

Where would you host this for $60 a year?

tempfile|1 year ago

So that's how vercel makes their money.

skwee357|1 year ago

That’s, and a bunch of twitter “indie hackers” who get traffic spikes that result in hundreds of dollars bills. Seriously, just get a VPS

rozap|1 year ago

Their marketing team needs a raise.

rikafurude21|1 year ago

For 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|1 year ago

My 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)

carlosjobim|1 year ago

Yet 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.

aniviacat|1 year 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%.

lccerina|1 year ago

"Open source will finally die" said on a website likely running on some linux-based server, with some JS frontend, some open source/commercially licensed DB, and communicating with protocols regulated by a non-profit organization. Also in the future maybe reading this page from a device using a RISC-V processor. Sure.

jampekka|1 year ago

If anything is dying it's proprietary software. Which is great for all of us because open source is vastly more efficient system.

renewiltord|1 year ago

Are you the guy with the https://osspledge.com/ billboards around San Francisco? Haha. They’re funny. I enjoyed the art. If it’s actually you, I’d be curious who the illustrator is or if you used generative AI.

singpolyma3|1 year ago

To be fair they're not heavily soliciting donations, and even actively say that they don't need them. So it's not surprising people don't prioritise giving anything. Many users probably haven't even thought of it

anticorporate|1 year ago

Not 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.