Building Orisift, an API that checks phone numbers, email domains and IPs against reference data. Shows its evidence, and says unknown when it can't tell.
+44 20 7946 0958 passes a UK format check.
It's also inside a range Ofcom sets aside for TV and radio drama. Those numbers can't be allocated to providers for their customers.
That's not a pattern problem. It's a reference-data problem.
US equivalent: 555-0100 to 555-0199.
@dadumeta Agree, and phone is the easiest to fix at the source: parse it with the form's country as default and store E.164, so the data team gets one format, not every local style people type. Anything that doesn't parse goes back to the person while they're still on the page.
@saurra3h@tracwellapp Before dropping the trial, check what the spam signups share: often a few throwaway email domains or domains with no MX records, and a server-side DNS check at signup removes those without adding friction. A per-IP rate limit on the endpoint handles much of the rest.
@inceptmail Permanent test inboxes fix the expiring temp-mail problem nicely. If the same signup tests take a phone number, pairing each inbox with a number from 555-0100 to 555-0199 keeps the SMS side just as contained.
@italikdev Moving the schemas to Zod is the right call once they stop being a learning exercise. I'd keep the quiz answers going through the same parse on the server, not only in the agent tool, so a crafted reply can't skip the shape check.
@AllShadCN@abd_mukadam Looks handy. One option I'd love in the generated code is the same Zod schema running inside a server action, with an async refine that checks the email domain has MX records, since browser-side checks are skipped by anyone posting to the endpoint directly.
@JaneChinyere13 Nice build. For client work I'd run the cheap checks first (phone parses for the client's country, email domain has MX records) and only pass what survives to the AI qualifier, so the client isn't paying for tokens on junk entries.
@JongArvid Two edge cases worth covering in the MX lookup: a Null MX record means the domain has said it takes no mail, while a timeout or SERVFAIL tells you nothing, so I'd let that recipient through and log it rather than refuse the send.
@JamesCarpe47780 Thirty-two minutes to a phone is wild. For the medicine and nap reminders, give staging a phone book from 555-0100 to 555-0199 so a test alert can't wake a real parent, and keep that list out of the production path that pushes the live SMS.
@MaziarGanjehei That unanswered-phone problem is real. Treat the callback number as code-checked input: parse it for the restaurant's country and reject anything that doesn't parse before the AI promises a table.
@Sebas_TZ_@Lovable Nice flow. People type their number the way they'd dial it locally, so I'd normalise to E.164 at booking with Peru as the default country and ask them to fix it there if it doesn't parse, otherwise a WhatsApp reminder fails quietly the night before.
@SumanRaaj1 Good list. Add one more case next to invalid: a well-formed email on a Null MX domain, or one whose MX lookup times out. Format passes, those two mean different things, and a generic 422 hides which.
@SKBrand7@Lovable Nice build for the challenge. Parse booking phones for Pakistan before they hit the owner command center, and keep staging on fiction ranges only so a test booking can't ring a real Karachi line.
@syed_afnan_59@Lovable Waitlist recovery depends on a contact detail captured days earlier, when nobody is around to fix a typo. A DNS check on the email domain as people join lets you ask for a correction on the spot, so the freed Saturday slot goes to someone who actually sees the offer.
@julleybuilds The SDK channel only works if every surface routes to a first call: the npm README, the docs and the CLI should each say where to get a key and what the first request looks like.
@adelelecroix Agreed. Once email is the only field left, it's worth catching a mistyped domain on the spot, because the welcome email is your only way back to anyone who drops off before that first win.
@tiya_decodes For 17, I'd have Claude run the checks on the server as well as in the browser, and look up the email domain's MX records, because a typo like gmial for gmail looks perfectly well formed and only shows itself when the welcome email goes nowhere.
@TatsuEcosystem Nice work on the escalation tiers. When you test them, give the dummy contacts numbers from 555-0100 to 555-0199 (any North American area code) or the UK drama range 07700 900xxx, so a staging dead-man's switch can't wake a stranger at 3am.
@malaikaafridi9@Attwts For the results dashboard, I'd only count waitlist emails whose domain has mail records and isn't on a throwaway list, because typo and throwaway signups inflate exactly the signal you're trying to read.
@PandeyKart27234@dapsdevdotdev@audizionunes@arpit_bhayani I'd keep both: a small deterministic seed for every spin, and a scrubbed snapshot when you need realistic joins. When scrubbing, swap phones for 555-0100 to 555-0199 and emails for https://t.co/JVJKHL78rw addresses, so a worktree that fires a notification can't message anyone.
@compound1studio@Lovable If the chat assistant is the one collecting the email, have the booking step check the domain has MX records before saving, and let the assistant ask again while the client is still in the chat. Otherwise a typo only shows up when the deposit receipt and reminders go nowhere.