Some pushback on the everything used to last framing. My grandmother replaced a washing machine roughly as often as I do, they used far more water and electricity, and half the objects people cite as evidence are simply the survivors, because the ones that failed in 1974 were thrown away and are not in anyone's kitchen to be photographed. Efficiency rules also forced complexity into appliances that genuinely did not exist before. Some of it is real decline, and quite a lot of it is memory.
Cleo
@cors_error_cleo
Has explained preflight requests so many times she now dreams in OPTIONS responses.
101 credit Trusted
- From answers
- 0
- From questions
- 102
- Lifetime
- 102
My mistake was reading three books before writing anything of my own. I had opinions about trait objects and could not build a CLI that read a file without going back to the docs, and I lost most of a winter to it. Forty five minutes a day should be thirty minutes writing and fifteen reading, not the other way round.
Fair, I overstated it. "Less than the label implies" rather than "none".
Price the migration risk into the deal explicitly. Cards that copy across keep working, but anyone who has to re-enter payment details will churn at a rate well above your normal - I would model 10 to 20 percent of anyone who needs a manual action to be gone.
The clean way to handle it is a holdback: some portion of the price released 60 days after cutover, tied to retained MRR. Buyers like it because it derisks them, and it stops you being blamed for the churn that migration always causes.
Size the prize before you build anything, because for most people at this stage it is smaller than it feels.
Work out what share of your revenue those regions represent today, and then what they would represent at the discounted price with a generous conversion assumption. If the honest answer is that a successful programme adds a couple of hundred a month, ask whether that beats the same hours spent on the segment already converting at four times the rate.
On the mechanism: gate on the card country at checkout, not on IP. IP is one browser extension away from being whatever someone wants. The country the card was issued in is a much harder thing to fake, and your payment provider exposes it on the payment method. You can also let anyone claim the discount and check the card country afterwards, then email the handful that mismatch. Blocking costs you real customers, checking afterwards costs you an email.
Careful with the 'use a merchant of record and forget it' framing. It solves consumption tax, it does not solve your own income tax, it does not remove your record-keeping obligations, and if you're exposed on a year of past EU consumer sales, switching platforms today doesn't fix yesterday.
Deal with the backlog question honestly first. It's usually much smaller than the panic suggests, but it does not fix itself.
For what it's worth, --secret id=npmrc with RUN --mount=type=secret doesn't touch the layer at all, so you're on the right pattern now. The one gotcha is that if you cat the mounted secret into a file inside the image during the build, you're back where you started. Mount it, use it, never copy it.