I am thinking about donating to this project, and I would like to know where the money put into this project goes. For instance, how much is the monthly cost to purchase and operate the servers? Are developers being paid to work on Pretendo? It seems like a lot of the revenue and developer-hours are going towards the physical infrastructure. I’m fine with that, but unlike the stuff on GitHub, I can’t actually see it, so it’s hard for me to guess how much that costs. I would like an explanation of Pretendo Network’s expenses so I know where my money would be going. Thank you!
I don’t have any exact percentages for you, but I can provide you some information on where this goes.
- Pays a salary for one full time developer (Jon)
- Funds the running costs of servers and the various infrastructure it uses
There’s more than just this, but I don’t know how best to phrase this. I’ll see whether someone else can help out here!
So this is Jon’s only job? Then are most of his hours put toward operating the servers? I am not an expert on how this works but I feel like I rarely see him on GitHub.
I can also add that the funds pay for the running costs of Yesterware LLC, the company that operates Pretendo Network.
This includes various taxes, fees, paying an accountant etc.
Does Yesterware LLC operate anything other than Pretendo Network or is Pretendo the sole purpose of the company?
Our operating costs fluctuate from time to time as our needs change (dropping tools we no longer need, increasing servers/capacity, switching hosts, etc.), especially as of recent since we’ve been in the middle of a huge infrastructure migration. But yes, operating costs are high. And a lot of the costs are “behind the scenes”, people (not necessarily you, just “people” in general) tend to think that projects like this are as simple as “get a VPS from DigitalOcean” but there’s a lot more to it that that, and it costs a lot more to actually operate than you might expect. A few notes:
-
The amount shown on the website is an estimate and largely inaccurate. It does not actually count the amount of payments, it goes based on the number of subscriptions listed as “active” which is not the same thing as “having paid”. A Stripe subscription can be “active” even with many failed payments (which happens kind of a lot, tbh)
-
The amount shown on the website also does not take into account the fees Stripe takes. Stripe takes a portion off the top of all payments as part of their service fees, and we opted to not pass that fee onto supporters. So it just comes out of pocket. Also a small portion of donations is donated to climate change automatically, before there’s any payouts. It also does not take into account people who file disputes/chargebacks, refunds that get issued due to Stripe errors, etc. Because of these inaccuracies, it’s been suggested a few times to just remove the bar entirely
-
“Operating costs” extend to more than just running the servers. It also includes data storage (and we store more than just UGC, we also store archives of NN data, we acquired Archiverse and are looking to move all 17TB onto our infra, etc.), domains, tools for the infrastructure (such as Cloudflare), tools for general developer use (such as Azure, GSuite, the games we need to support, etc.). All of that adds up fairly quickly
-
As stated we also operate a legal entity. In order to do so we have to register the entity, hire an RA, create a business address/phone line, etc. Also in the future if we ever need to file for anything like trademarks, those are also things we need to file through the LLC
-
It is very expensive to run any sort of business in the United States (even one like this, which is a tiny LLC working off of donations, the IRS still treats us all the same). US tax laws are very strict and costly. As a self employed individual, the IRS taxes me twice (once as the employer, once as the employee), and since there’s an LLC involved we also use a hired accountant. Just as a frame of reference, in 2023 (the first year I filed as self-employed), the total taxes before some write offs was over $10,000 (and that year we barely brought in $2/3k per month). This is the main reason why currently only I’m self employed, since the US has extremely strict and expensive tax laws. Getting more people working on the project full time is part of the long term goals, but it’s much more expensive than people realize if you’ve never tried to do it before. In order to comply with US tax laws, if any of the devs who don’t live in the United States wanted to be full time I would need to file for a legal entity in that person’s country of origin (which is even more $$$ and paperwork which I’m not even sure I could do on my own). Then I would have to pay the employer part of their taxes as well. The US makes it very hard to operate a small business without committing fraud tbh. Especially since most people on the dev team already have full time jobs that our donations just can’t compete with (and Jemma has even told me directly “you can’t afford my salary”), and despite how much it looks like we’re making it’s all extremely volatile (donations could drop to $0 at the drop of a hat for all we know). We’re working on more stable funding sources than donations however, which should help in that regard, but it takes a LOT of work/responsibility to operate this even outside of actual development work
Currently yes. But it will also cover future projects we produce, such as Phony (a WIP PSN recreation for the PS3 and Vita). One of the main purposes of the LLC is to also act as a legal shield. Since Pretendo is covered under the LLC, and I am the only full time employee at the moment, it means that any legal issues fall entirely on me. I would rather take the fall myself if Nintendo ever got trigger happy, rather than risk Nintendo going after individuals on the team
I’m not sure how long you’ve been a community member, but I am the founder of the project. I started Pretendo Network back in 2017/2018, and have been the lead (and at times, only) developer ever since. I have authored over a million additions across all 160+ repositories in our organization (not all repositories are public). I am very much around, and very much active
It’s true that somewhat recently I’ve been less visible if all you look at is the github
channel on Discord, but I’m far from absent. Ever since the NN shutdown announcement last year, I began to switch gears a bit into research/archival mode more than anything. I spent the majority of last year working on archival and the processing of the archived data, and lately I’ve been focussed on research to improve our underlying systems (I’ve been essentially doing small-scale decompilations of both Xenoblade and WATCH_DOGS on the Wii U). Also last year I spent a LOT of time fuzzing Nintendo’s game servers to gather as much information as possible, and use that to create notes/improve documentation of our current implementations. I’m also the one who designs essentially all of our custom tooling/libraries, such as our network traffic viewer (needed for analysing game traffic), our library for managing Nintendo’s custom file formats, etc. Also some parts of the project are getting more attention lately which I don’t necessarily work on (most of the github
channel on Discord recently has been for the website upgrades, but I am not a web developer personally, so those things are in the spotlight right now more than the other stuff I work on)
I’ve also lately been doing some of the boring/managerial tasks, which most people don’t see. For instance I’ve been going through some of our backlog of issues/PRs to check those out (I closed like half of our pending feature requests earlier this month). I’ve recently started (like as of today) helping the mods with the backlog of network reports. I’ve been talking with people on the team internally about some roadmaps for how to improve things like mod interactions, which is going to involve revamping/finalizing several procedure documents. I’ve been working the past few days on entirely reworking our implementation of one of our core protocols used by many games. April is tax season as well, so I spent most of the past ~2-ish months getting everything ready (I do NOT play with the IRS). Most of our core game server libraries are maintained by myself and Dani, and oftentimes he and I go back and forth internally on Discord about new research notes and design discussions, and then one of us picks up on the implementation (for example just today I pinged him about some possible updates to some of our core types in our NEX library to make them play better with our databases, and somewhat recently we had discussed how to revamp game server authentication. Dani made the PR for that, but we still continued the discussion of its design/implementation in the review of said PR), etc.
I also had some personal issues last year which took me away from things a little bit towards the end of the year, but I was never truly 100% gone (I was still around internally)
I ain’t reading all that, please and thank you!
Like dude chill, its just Pretendo it’s not like you own it
(guys it was a joke.)
Wrong. I read all that.
For a fact, Jon does own Pretendo Network, he began the service?
Hello.
I apologise if this may be slightly off topic, but are Pretendo’s servers operated within the United States or in one of the larger server locations within Europe. (Germany, The Netherlands, etc.) I was unsure who to ask.
Thank You.
I looked up Yesterware LLC, and it said the company’s location is in an office building in St. Petersburg, Florida. I assume the servers are located there.
Thank you for this reply! Very good explanation. This should be on the main website.
I may be wrong, but the office location may be used for operation and for other purposes, the servers may be overseas, but that is a possibility.
Our LLC operates out of Florida, however we have servers in various countries. Our main infrastructure lives in Germany (Hetzner), but we use Cloudflare for all HTTP-based communications. Cloudflare has servers across the globe. We also have several S3 storage servers (DigitalOcean, R2, on-site MinIO, etc.) which also may be in different countries. We used to use DigitalOcean as our main UGC storage server, but we have begun migrating that data to on-site MinIO instances hosted alongside our existing infrastructure. We mainly use R2 for archival storage (such as our AC:NL archive), as it’s cheaper for bulk storage that doesn’t get touched often and we can use Cloudflares caching rules to offload most of the work to Cloudflare. S3 servers tend to charge for storage, uploads, and downloads, but with R2 we only upload once, general storage is cheaper, and with Cloudflare caching the data it only needs to download from storage once. Once Cloudflare caches the data, the global CDN handles delivery of future requests
Understood, thank you very much for the extensive response. Have a nice day.
Jon leaves me on read twice smh
Well im at a loss for words my guy looks skibidigma tho i’ll give him that
What do you mean? Are you trying to ask him a question?
Im not reading allat
Oh no a reply longer than 19 characters buddy you can read
I read it all. Every single word.
i just arrived and this was exactly what i needed to read. thanks for going into detail. i can relate to the struggles of being self employed.