I wrote a kill number before I wrote the landing page copy
Published September 12, 2026
Hey all. I'm preselling a Mac app and the preorder mechanics took more reading than the landing page did, so here's what I found. Most of it applies to anyone taking money for something that doesn't exist yet.
Deskthaw is a menu bar app for guided desk stretches. Other Mac break apps can already pause for a meeting. The $29 tests whether a short stretch for the part that hurts is worth more than a better timer. Five preorders by 27 September or the build doesn't start, and delivery is expected by 31 March 2027. The page with the free waitlist, the $29 preorder and the terms is the front page, if you want to see how it's set up.
1. Decide what the test has to answer.
A free waitlist tells you people liked the idea. It can't tell you whether one of them would have paid. Both are on the page because they answer different questions. The free signup asks which parts hurt, and those answers set build order. The $29 answers whether any of it is worth money.
2. Write the gate down before launching, with a number.
Mine is five charged preorders by 27 September, plus at least 3 percent of visitors joining the waitlist across at least 200 targeted visits. A range would have been useless here, because 3.5 percent would then be whatever I needed it to be. Miss it and the build doesn't start. I get one two-week extension if I have a reason worth logging, and after that it's a kill memo and refunds. Afterwards you can always argue that whatever you got was encouraging.
3. Don't be the one filing sales tax in 80 countries.
Stripe Managed Payments makes Stripe the merchant of record. Stripe is the seller for the transaction, charges the card, registers and remits sales tax in 80+ countries, sends the receipt and handles disputes, for 3.5 percent on top of processing. You're still a taxpayer on the income, but you're not the one filing VAT in twelve jurisdictions. You could administer that yourself or pick a different merchant of record, but this is what made selling internationally practical for me. The catch is that the receipt comes from Link and the statement usually reads LINK.COM* DESKTHAW, or another Stripe descriptor depending on how they paid. That looks like a mystery charge unless your page says so first, so mine does.
4. Write terms that survive the date slipping.
This took the longest of anything here. In the US, 16 CFR 435 governs dated preorders, and software gets no exemption. If you can't ship by the date you promised, you have to offer the buyer a cancel-or-consent choice yourself, before they chase you. Past thirty days with no answer, the order cancels and you refund. My terms say that in plain words. It's also why the date went from "early 2027" to 31 March 2027. The rule wants a date you have a reasonable basis for.
5. Check your own state before writing warranty and liability terms.
I assumed the usual "as is, liability limited to what you paid" boilerplate was safe to copy. Then I read my state's version. Massachusetts won't enforce a warranty disclaimer in a consumer sale, and it presumes a cap on damages for physical injury is unconscionable. I couldn't show a downloadable app sits outside either rule, and a term that might not survive is worse than no term. So the implied warranties stay in, and the cap only covers what the law clearly lets me cap. Personal injury and fraud sit outside it. Your state will differ. Spend the hour on yours.
6. Prove the hard technical claim before charging for it.
Deskthaw's pitch is that it stays quiet when you're busy, which on macOS means detecting that with no permission prompt at install. I built a throwaway poller first. Frontmost app, mic and camera in use, and idle all work prompt-free. Fullscreen reads the same window data but that path isn't exercised end to end yet. Screen sharing needs Screen Recording permission, so I don't detect it and the page doesn't claim it. In practice a call still gets caught by the meeting app being in front or the mic being live. The case that slips through is sharing with the mic muted and the shared app in front, and for that there's a manual pause. Focus mode needs an entitlement a Developer ID build may not get, so it's out. It took two days and it changed what the landing page is allowed to say.
7. Have your privacy policy read against your actual backend, and not by you.
The two drift apart, and you stop being able to see it on your own page. Rate limiting is one that catches people, because it means you're processing IP addresses, which are personal data and usually missing from the policy. The purchase receipt is another. It's transactional, so it deliberately has no unsubscribe link, and that breaks any sentence promising one on every email. If your policy was drafted before the code settled, it's worth an hour with someone else's eyes.
8. Price against what actually ships, then say what the comparison decided.
LookAway is $19 for one Mac and DeskRest is $24.99 lifetime, both available today, and I'm above both at $29 for something unreleased. The comparison is what told me the premium can't rest on the pausing, because those two already pause. So $29 tests whether guided stretches for the part that hurts are worth more than a better timer. If nobody bites I'll know the premium or the offer didn't land, though not which of the two. I'd rather learn that before writing the app than after. It's a single licence for now. If you'd want it for a team, the waitlist form asks how many people, and that tells me whether team pricing is worth doing.
The 27th tells me whether this is worth carrying on with. Either way I'll post the number. The terms and the refund promise are on the front page.
Happy to go deeper on the Stripe merchant-of-record setup or the preorder terms. Those two took the most reading. Email [email protected].