Financially it's not close. $45 a month is $540 a year. A decent set of rings, a bar and parallettes is maybe $150 once. Even if you buy a bag and a pull-up frame later you're ahead in year one.
The cost is entirely in adherence, training at home means nothing external tells you to go, and that's the thing that gets people, not the equipment.
The thing I would add is the impact side, cleared with a physio first because it depends entirely on your scan. For me that meant a small number of hops and step-downs at the start of a session, thirty seconds of work total, alongside the lifting. It felt trivially easy compared to the lifting and it was the part my physio was most specific about.
The one real test, if you have thirty seconds and a phone, is dates. Find the earliest recorded use, then compare it to the date the story requires. A startling number of these collapse instantly because the word turns out to be attested a century before the event that supposedly created it, or the word appears in print decades after the practice it supposedly describes had ended. You do not need to be right about the true origin to know a story is wrong, you only need one date that does not fit.
--pool=forks with isolation on is slower but the leak dies with the fork, so at least the one-in-ten total hang stops while you hunt. Treat it as a tourniquet, not a fix.
Whatever you choose: one runner, one command. Two test commands is fine. Three configs is where a two person team quietly starts skipping the one that is red.
Practical middle step if you don't want a worker yet: return the response first and do the email after, in whatever your framework calls an after-response hook. It's worse than a queue in every way, but it takes fifteen minutes and it gets the user out of the spinner today.
Counted mine and it's four direct sets a week. That's embarrassing given how much I've been complaining. Adding ring curls twice a week and eating slightly more.
0.25kg a month is far slower than anything I'd read, and that's probably why I've been treating maintenance as the safe option. Two years for two centimetres of arm is a very different plan to the one I had.
Fourteen months of home training with a similar setup, so here is what actually happened rather than the theory.
Upper body: never a problem. Pressing and rowing progressed the whole time and I was nowhere near topping out the dumbbells.
Lower body: progressed for about seven months on unilateral work and tempo, then genuinely stalled. Split squats at 24s for sets of twelve is a conditioning session, not a strength session.
What I added at that point: a weighted vest for step-ups and split squats, and heavy carries. That bought me another six months.
So not three months. But there is a wall out there and it is a lower body wall, and you will meet it.
The replay button always arrives later and always as an emergency. Design the table now so that replay is one insert back into the main queue, not a script you write at midnight.
In that case add a set of heavy resistance bands before anything else. Band tension over the top of a split squat or a hip thrust makes a modest dumbbell load meaningfully harder at the position where you are strongest.
Name the tenant after the parallel index plus a timestamp and put it in a header. When something fails at 2am you can grep the server logs for exactly that test's requests.
My first spring I undercharged, said yes to thirty machines in three weeks and lost the whole summer to it. What fixed it was raising the tune up price by a third and losing exactly two customers. Price for the season you want, not for the one you are afraid of.
Stopping the billing on day one is the bit that changes the tone of every reply you get. People argue about dates when they are still paying. Once they are not, the whole thing reads as you doing them a favour, and you get "thanks, sorry to see it go" instead of a dispute.
Whatever you choose, don't resign the salaried one on a Friday feeling. I did that and the contract went quiet six weeks later. Wait until the renewal is signed, not promised.
Also, a review that's too long to face is worse than a shorter, sloppier one you keep doing. If it comes to it, do twenty minutes of the most valuable parts, which for me is clearing the inbox and looking at next week's calendar, and let the rest go. Consistency is doing more work here than thoroughness.