The really really sad thing is, Reddit could have done a half decent job and made a fair bit of money, but they decided on stupidity instead.
Sure, it would have upset some people a bit, but... Not by anywhere close to the same degree.
Alright, we're sorry, but use of the API is going to have to start costing money for some kinds of uses.
First off, people that just want to scrape everything get the following access, and a much higher rate limit, but it's going to cost $x.
Moderator tools will always be free, but the API will require that the tool be associated with a moderator, and it will only permit access to subs that the user is a moderator for.
Community bots will generally be free, subject to the following restrictions.
And 3rd party clients will be charged a minimal amount, calculated to be roughly equal to what we are making from similar users on the official clients, to make up for lost ad revenue. Alternate options involving profit sharing may be viable, contact X for details.
By accepting the API agreement, you agree that use of the wrong class of API usage (for example, using the community bot or 3rd party client classes for data scraping) will be billed, retroactively, at $X * 10.
There. That's really not that hard. And people would have been much less upset at that, at least as long as the fees were actually as described, and not based on, say, how much they would like to make per user.
You'd probably want a free tier for 3rd party clients for users of specific account types. If the user is paying for Reddit Premium, maybe 3rd party clients don't get charged for API usage for that user account. Or if the user is a moderator for a given subreddit, API usage for that user on that subreddit is also free. With an API that the client can use to check the status of such things. If they were smart, they would also have a process for users with disabilities to have their accounts exempted from fees. That last one is hard, because you need a verification process, but it would get them a lot of good will.
Again... This shouldn't be hard. And it would have turned into a viable revenue stream!
Hell, flatly disclose that the 3rd party cost is 30% more than the average cost of using the standard client, to support the effort required to maintain the API. (Largely bullshit, but it makes those users more valuable than those that use the official client, while not being expensive enough to make it impossible for anyone to offer a 3rd party client at an even remotely sane cost.)
Yes, this would have very sadly been the end of free 3rd party clients... But I for one would have been... Okay with paying a small amount per month/year through the app store for a client that didn't suck.
Instead, Reddit decided that committing suicide was the better path forward.
Based on the comment, I think that what is wanted is a little different than what people are assuming.
First, it sounds like there is a desire to implement enough of the Mastodon API that various mobile Mastodon clients can connect to kbin.social and interact with that side of things. I have no idea how difficult this would be, but I suspect that it would be an interesting undertaking.
And second, unrelated, but it came up in the comments, and I think it would be an excellent idea, there is definitely a desire to implement a Mastodon-like way to export and import enough of your account information to easily migrate to another instance.
In my opinion, there needs to be an option that can both import and export a fully Mastodon compatible format, so that people can migrate from Mastodon to kbin, and can migrate back from kbin to Mastodon, at least for stuff where that makes sense.
At the same time, I am unsure if that format would be sufficient for everything required to migrate from one instance of kbin to another, or between kbin and lemmy.
And given that last point, it should come as no surprise that I think that if another format is needed, or even an extension to the existing format, that should really be coordinated with Lemmy, so that it is easier to move around the entire ecosystem.