I’m really enjoying lemmy. I think we’ve got some growing pains in UI/UX and we’re missing some key features (like community migration and actual redundancy). But how are we going to collectively pay for this? I saw an (unverified) post that Reddit received 400M dollars from ads last year. Lemmy isn’t going to be free. Can someone with actual server experience chime in with some back of the napkin math on how expensive it would be if everyone migrated from Reddit?
By not all ending up on the same server.
Reddit has over 2,000 employees most of whom are doing bullshit nobody using the site actually needs or wants, it’s possible to run a lot leaner than that. Like Reddit itself used to, before they started burning hundreds of millions trying to compete with every other social media site at once instead of being Reddit
bullshit nobody using the site actually needs or wants
Like being CEO.
Basically, volunteer code commits, volunteer admins, and donations for hosting costs.
Fosstodon is a pretty great example. It’s a fairly large mastodon instance which makes enough in donation revenue to pass some on to other open source projects. It’s not heaps ($600 in 2021), but I think it demonstrates that donations are a viable funding model. If things got tight I expect the community would meet the challenge.
It’s not like you need to build a custom data centre - it’s just renting a server, maybe even a VPS.
That said, of course the admins and mods are volunteers. I’d like to imagine that one day a few lemmy instances could charge a subscription fee for a premium, well managed experience.
Yeah exactly. If my instance stickies a post asking for donations, I’d throw them a couple bucks. No doubt
As paradoxical as it is, I think that these open source non-profit projects are a lot more efficient than profit-driven, debt-fueled corporations.
First of all, the main contributors to a FOSS project do it for passion and do not take a salary.
Secondly, they don’t have the infinite growth mindset that pushes enterpreneurs to to spend as much as possible for maximum growth, all financed by a growing amount of investors (and debt, which costs interest fees).
If a FOSS project reaches maximum capacity, they will close subscriptions, they will throttle traffic, i.e. they will slow down growth, but they will not go into debt. Slowing down growth is something that a for-profit company would never do (at least until the interest rates were low and the investors were plenty, today idk). Eventually someone else in the community will decide to do a generous donation or open their own instance.
I don’t get it. Why would you call that more efficient? In your example a profit driven company will grow at a higher rate than a FOSS project right ? So in what way is it more efficient?
Yeah your issue is youre looking it from the perspective of a cancer cell. Growth isnt always good. Too much growth and you run out of resources. Keeping things sustainable and self sufficient and not reliant on loans and “infinite growth” ponzi economics tends to work better in the long run. (Example: libraries)
The distributed nature of Lemmy should make things more manageable. Personally, I’m running an instance on a dedicated machine I already pay for, so it’s not costing me anything unless storage skyrockets. Many other instance hosts are also hobbyists that don’t mind covering the costs, and may take some form of donations locally on their sidebars.
There probably should be a built-in feature for instance admins to enable a local donation button to contribute to their costs, though. While Lemmy is fairly resource-efficient, larger instances are eventually going to require pretty beefy VMs to keep up with the traffic, image uploads, etc. I could see some instances randomly vanishing when their owners can’t/don’t keep up with their bills (which would force users over to other instances), but ideally if any instance owners can’t afford to cover it, they hand control over to another community member to pick it up.
This is pretty much my exact same situation as well, plus I get so few opportunities to “pay it forward” so to speak, and now is finally my chance to do so.
In general, Fedi admins simply close registrations when they can’t keep up with an influx of new users, and point people to other, smaller instances
It’s certainly a challenge. I run three instances on the #fediverse. Two small ones and a larger one with 450 users. I have a donation page; initially people were enthusiastic and I covered costs. Now, I have regular monthly donators but not enough to cover costs so I am subsidising it. I took the decision when I launched that it could happen and it’s my problem.
I think there will be many instances will fall away in the coming months due to costs. Especially if you are thousands of users and associated costs.
We need to come up with a new funding model, where people appreciate you get nothing for nothing. All the large corporates sell your data as advertising for revenue. The greater public do not appreciate they are selling their soul.
Is there an approximate specs per number of users guide to size a lemmy instance?
I haven’t seen one yet. Disk usage this morning on lemmy.world was reported at about 4GB over 11 days (probably low usage). The 100GB drive would probably fill up in 275 days or so if usage did not increment. If it’s not redundant and dies, all that content is lost.
So storage will be a huge issue for lemmy unless I’m missing something.
Can content be stored somewhere like S3 instead of spinning disk? It would certainly be more robust and cheaper.
100GB is practically nothing nowadays.
There are people (myself included, not to brag) running home servers with literally hundreds of terabytes of data. At that ~0.3 GB/day number, I alone could host 3,500 years worth of data. Get some of those r/DataHoarders and r/HomeLab guys on here and Lemmy would never run out of space.
Yeah, I’d love to get an approximate sense of how much these instances cost
The thing is, Lemmy is decentralized. You don’t need to have an account on an instance (server) to use that instance’s “subreddits” (communities) - instances communicate their activity to each other automatically, so any instance will do (provided the instances haven’t banned each other). It’s just like email.
So it’s pretty simple to just stop accepting sign-ups once an instance starts to become impractically large. Anyone can start an instance for just the cost of a domain ($10ish/year, or free if it’s a subdomain of an existing website) and a server (that random computer you already have lying around will do just fine, for free). And a small instance can do fine on just donations and the good will of the operator.
Apropos of nothing, where are you finding domains for $10/year?
Check tld-list.com for price comparisons of different domain providers.
I was able to get a .win domain for $4.16 yearly on cloudflare. Cloudflare seems to have some pretty cheap domains.
Given that lemmy is an OSS project and decentralized, it draws a lot of people with knowledge and resources. You could easily host your own instance for your friends, to have them connect to other instances. And i think there are enough people in these communities that have some left over server resources to host their own instances.
I got an old server from work sitting around at home doing nothing. Seriously thinking about hosting my own instance on it
You bring up a very good point. Currently lemmy.ml has thousands of users. Lemmy.world has thousands of users. The hardware they have selected to run their instances is adequate for now, but, what is the plan for scaling out if the user base grows? Is there one? They have a donation page on each lemmy instance (click or tap the heart icon,) but that can’t be enough to pay for the cost of running something used by millions of people, even if only 100s of thousands are ever only online at any given time.
In terms of UI/UX, @[email protected] has mentioned in a post they are currently working on major performance improvements and enhancements.
Ideally, I think no one instance should have a million users to begin with.
Ideally, yes. If that can be the reality, and I suppose that is how it should would with federation, then server costs should never get out of hand.
For that to happen, I believe that interacting with people from other instances and moving your community and account from one instance to another have to become possible / easier.
At present, people flock to the instances with most users as those often have more local content (local content is generally easier to find than federated content) and they often have a smaller risk of shutting down. If I create a community on a smaller instance, the chance of it being found and interacted with are also much smaller than if it had been created on a bigger instance (because of, as I said, local content being user to find).
Sure, I can create an account on myfirstlemmyinstance.com (example URL, not an actual instance) with 10 users, but if my instance decides to shut down, my community of, say, 500 users will now have to move somewhere else and all old content will be deleted.
Idk for everyone else, but when I was on reddit once I had set up the subreddits I wanted to see, I really spent 99% on my time on just those. Every so often I would leave or join subreddits but it was rare. Like if people are not doing searches as often then the lag is more tolerable. Plus, won’t content from larger and older instances be indexed by search engines eventually? Right now because so many communities are being created on so many different instances, it’s more obvious that the searching is laggy but things will surely settle down as time passes.
A “transfer my community” feature that allowed an entire community to be moved between instances would certainly help. That’s a great idea.
From what I’ve seen so far looking through the Postgres db, every instance has data from most other instances. I see users in my local Postgres db from other instances. So, theoretically moving a community from one instance to another could be as simple as changing a few values in the database. Of course in practice it’s never that simple. 😀
Wouldn’t it require changing all those values in the database of all instances with subscribers to that community?
Good question. I don’t know. Hypothetically speaking, if the parent instance of the community changes the relevant data in the database to another instance, would federation take over and automatically propagate the change? 🤷🏻♂️
Sounds like an interesting experiment at least, or a possible major bug waiting to happen.
It is an old programming trope that premature optimization is a waste of time. As Lemmy scales, several bottlenecks will be hit. Some might be predictable, but many will only become evident after crossing a specific threshold. There are a lot of guides for scaling Mastodon servers after hitting certain bottlenecks, but this is all uncharted territory for Lemmy and we’re going to find out the fun way.
Real devs do it in prod!
I’m seriously tempted to write some performance tests in jmeter, locust, or k6, and fire up some live traffic simulations / simulated load against my lemmy instance to see what happens. But at the same time that would feel too much like work and I don’t want to work over the weekend.
IMO it sounds like that some AI corporation should host their own instance(s). They only pay for server and maintenance costs, while community does the rest and they have their data.
Would be best of both worlds, isn’t it? Once they become greedy, we are f*cked again, just like Reddit did…
Personally I plan on donating the price of Reddit Premium to my instance owner
Whenever he figures out donations that is :))
I don’t know what kinda person happens to have a massive server cluster sitting around waiting to go, but @TheDude is the dude, and the dude abides.
It’s literally all donated
By not asking the same question every single day.
Put up a yearly donation drive (like Wikipedia) but unlike Wikipedia do:
- a competition between the various instances, on which collects the most donations
- not shift the page content when displaying the donation banner!
Ideally the donations will be handled through a non-profit org dedicated to this particular purpose. If the donation level is high enough, developers can be hired to further improve the source code. Currently the funds are managed through OpenCollective, but with enough growth this may not be feasible any longer.
This will most likely lead to heated debates as this will build a somewhat centralized organization, which necessarily comes with power concentration.
a competition between the various instances, on which collects the most donations
Can you elaborate? I have the impression, that we need to think more deeply about how the donations should be distributed. E.g. a users fund are donated proportional to their subscribed Communities? I think it’s difficult, as people’s time spent on a community doesn’t necessarily mean it’s proportionally valuable. I’ve had a few subreddits which I used rarely but we’re quite important to me.
Each instance is free to field their own donation drives for their running cost. They even can display advertisements if they feel like it. There is no “one size fits all” here, and there shouldn’t.
Each instance is potentially in a different jurisdiction, making it hard to transfer money, etc.
Not only that, but I think having funds centrally collected and then distributed is a particularly bad idea. It comes with too much opportunities for bad blood. Money and friendship don’t mix.
The only unifying constant of the network is the software that runs it. This though needs to be improved in various areas, for which centrally collected funds would be ideal, as every instance will benefit from it. No operator of any instance would have a disadvantage from advertising the central donation drive. They would benefit from it by having better software in the end.
sell checkmarks like Tumbler.
for x$ a month get a checkmark next to your name on posts. in whatever colours you pay for. buy checkmarks for others.
What would the checkmark mean?