Zrob

8.1K posts

Zrob banner
Zrob

Zrob

@Zrob0

ancient internet denizen • i make https://t.co/zfJSnkEC68

Katılım Mart 2017
223 Takip Edilen1.7K Takipçiler
Zrob
Zrob@Zrob0·
@frdaimn It’s my own custom tool to scout events
English
0
0
0
155
Farid
Farid@frdaimn·
@Zrob0 Can i know where to look this up?
English
0
0
0
527
Zrob
Zrob@Zrob0·
RQ Sydney Pre Challenge meta, missing images edition
Zrob tweet media
English
5
5
109
35.4K
Zrob
Zrob@Zrob0·
@CasanovaCasts Yeah definitely most people are, I still think it’s a cut above but maybe I’m overrating it. We’ll see how it all shakes out soon!
English
0
0
0
154
Casanova
Casanova@CasanovaCasts·
@Zrob0 That's a fair callout. I think I've been pretty low on Draven personally so it didn't strike me. But wouldn't be surprising to still see Draven perform.
English
1
0
6
662
Ryan
Ryan@Ryan_on_cEDH·
Yes / No?
Ryan tweet mediaRyan tweet mediaRyan tweet media
English
5
0
15
1.5K
Zrob
Zrob@Zrob0·
@e3tcg We all knew it was gonna happen lol
English
0
0
3
1.7K
E3 TCG
E3 TCG@e3tcg·
@Zrob0 new yi getting mogged is so funny to me lmao
English
1
0
3
1.8K
Zrob
Zrob@Zrob0·
khazix
Français
0
2
5
703
Riftbound
Riftbound@playriftbound·
Jumping into Unleashed? Here's some tips, tricks and card suggestions for our some of our newest Legends. #RBUnleashed
Riftbound tweet mediaRiftbound tweet mediaRiftbound tweet mediaRiftbound tweet media
English
22
34
346
45K
Zrob retweetledi
Merlion Games Bay Area
Merlion Games Bay Area@MerlionGames_ca·
Anyone interested in some nice pieces of cardboard?
Merlion Games Bay Area tweet media
English
13
13
267
69.7K
Zrob retweetledi
Grenton 🔜 RQ Hartford
T Minus 80 days until Reflection tokens become Tokens again.
Grenton 🔜 RQ Hartford tweet media
English
5
6
94
6.4K
Zrob
Zrob@Zrob0·
Crazy new TopDeck features coming next week. Been a bit slow to dev.
English
1
1
13
772
Zrob retweetledi
radicalized by shoegaze
radicalized by shoegaze@sweater_enjoyer·
discord leaving tech ranked S: getting up and leaving your house while unmuted A: 30 minute deafen into dc B: turning off pc
English
40
730
19.3K
521.3K
Mudkip
Mudkip@mudkip4me·
@Zrob0 @AliEldrazi Eh ended up 3-3. Didn’t end up playing vs any of the Aurora players at all and I was so ready for them. Here is the list. 100% Mindsplitter fake. If I were to make any changes, it’s drop Evelynn and Pyke for RTW and Tideturners. Games without Faefolk are vastly different game.
Mudkip tweet media
English
1
0
1
72
Zrob
Zrob@Zrob0·
I want to play a regular ol' Kha'zix deck, but every Purple Orange leader seems priced into just playing Aurora as it's just much better than a midrange or aggro plan you can put together. Starting to sound like the reasoning on why Called Shot/Scrapheap got banned...
Zrob tweet mediaZrob tweet mediaZrob tweet media
English
14
2
106
23.4K
@levelsio
@levelsio@levelsio·
If you wanna switch to @Cloudflare Email Sending today, here's my prompt for you, as always I'm unaffiliated, not paid, not sponsored, but I like it, make sure you remove the space before the .com in the API url I added to avoid it becoming a link in this tweet: # Prompt: Migrate transactional email to Cloudflare Email Service Paste this into Claude Code (or Cursor, or any agent) running inside your project. --- I want to migrate this codebase's outbound email from its current provider (Postmark / SES / Resend / SendGrid / Mailgun / etc.) to Cloudflare Email Service (public beta, launched April 2026). Help me do this carefully. ## Context: what Cloudflare Email Service is A new transactional email API from Cloudflare. Endpoint: ``` POST https://api.cloudflare .com/client/v4/accounts/{ACCOUNT_ID}/email/sending/send Authorization: Bearer {API_TOKEN} Content-Type: application/json ``` Request body: ```json { "to": "user@example.com", // string OR array of strings "from": "no-reply@yourdomain.com", // string OR {"address":"x@y","name":"Display"} "subject": "...", "html": "

...

", // optional "text": "...", // optional (one of html/text required) "cc": ["..."], // optional, array "bcc": ["..."], // optional, array "reply_to": "...", // optional, single string "headers": {"List-Unsubscribe": "<...>"} // optional, e.g. for newsletters } ``` Success response: HTTP 200 + `{"success":true,"result":{"delivered":[],"queued":[],"permanent_bounces":[]}}`. Failure: non-200 OR `success:false` OR non-empty `permanent_bounces`. Always check all three. Pricing: $5/mo Workers Paid plan + 3,000 emails free + $0.35 per 1k after. Roughly 5× cheaper than Postmark. No batch send endpoint — loop single sends. ## Steps you should follow ### 1. Verify prerequisites with me Before writing any code, ask me to confirm: - I have a Cloudflare Workers Paid plan ($5/mo) - I've onboarded my sender domain(s) in Cloudflare dashboard → Email → Email Sending → Onboard Domain (this auto-adds SPF/DKIM/DMARC + cf-bounce MX records) - I have an API token with `email_sending:write` scope (created at dash.cloudflare.com/profile/api-to… → Custom Token) - I have my Cloudflare account ID Don't proceed until you have these. ### 2. Recommend a domain reputation strategy Most apps should split senders across 2-3 subdomains so spam complaints on one don't drag down deliverability on others: - `mail.` or `members.` → transactional (login, receipts, password reset, in-app notifications) - `e.` → cold/recovery (abandoned cart, win-back campaigns) - `newsletter.` → opt-in newsletters with List-Unsubscribe headers Each subdomain needs to be onboarded separately in Cloudflare. Ask me which I want. ### 3. Audit existing email sends Use grep/search to find every place in this codebase that sends email. Look for: - The current provider's SDK class names, API URLs, env/config vars - Generic patterns like `mail()`, SMTP usage, `nodemailer`, etc. Group findings by email type/purpose (e.g. "magic-link login", "payment receipt", "weekly newsletter") rather than by file. Tell me what you found before changing anything. ### 4. Add a single helper function Don't sprinkle Cloudflare API calls across the codebase. Add one helper (provider-specific name like `sendEmailViaCloudflare()`) that: - Defaults `from` from a config var (don't hardcode) - Parses `"Name @domain>"` strings into the API's `{address, name}` object form - Accepts `cc`/`bcc` as either string or array - Accepts a `headers` dict (newsletters need `List-Unsubscribe` + `List-Unsubscribe-Post`) - Returns `bool` (true on success, false on any failure) - On failure, logs/alerts somewhere I can see (Telegram, Sentry, log file — match what the codebase already does) - Sets curl/fetch timeouts (5s connect, 15s total) so a stuck CF API can't hang the request - Treats `permanent_bounces: [...]` non-empty as a soft failure ### 5. Migrate one low-stakes email type first Don't migrate everything at once. Pick the lowest-stakes email type in the audit (something where landing in spam wouldn't lose me money or users — e.g. "internal admin alert", "profile photo rejection") and migrate just that one. Test it end-to-end. Confirm the email actually arrives. Only then propose the next migration. ### 6. Stop me from migrating login email yet If my codebase sends magic-link login or password-reset emails, do not migrate those to Cloudflare yet. Cloudflare Email Service is brand new (~1 month old at writing). Its IP/domain reputation is unproven. Login emails landing in spam = users locked out. Keep those on the current provider until at least 3 months of clean deliverability data on the lower-stakes types. Tell me this explicitly. ### 7. Suggest commit boundaries After each successful migration, suggest a focused git commit with a clear message. Don't bundle unrelated changes. ## Important caveats to surface to me - Beta product. Pricing isn't fully finalized. SLA undefined. Could change. - No batch endpoint. Mass sends (newsletters to 1000+ recipients) need a loop — at ~150ms/send that's ~2.5min per 1000. Fine for crons, bad for sync user-facing flows. - No bounce webhooks yet. Surface failures via the response body's `permanent_bounces` array. - Suppression list auto-managed. Hard bounces, repeated soft bounces, and spam complaints get blocked. Spam-complaint suppressions are hard to remove (anti-abuse). - No per-message logs/dashboard yet. Use the response's `messageId` for tracking if I need it. - List-Unsubscribe headers are passed through verbatim — Gmail's bulk-sender requirement still met, but only if I include them in `headers`. ## Your first action Before writing any code: do step 1 (ask for prerequisites) and step 3 (audit existing sends), then propose the migration order with a brief explanation of the reasoning. Wait for my confirmation before making changes.
@levelsio@levelsio

✉️ Trying @Cloudflare's new Email Sending feature today If you send 1,000,000 emails per month: - Postmark: $1,206/mo - Resend: $650/mo - SendGrid: $600/mo - Cloudflare: $354/mo - Amazon SES: $100/mo So Postmark is now by far the most expensive email provider And SES and Cloudflare are now the cheapest email providers I know my friend @marckohlbrugge is trying out SES now so I'll try Cloudflare and see how it is, SES is cheaper but Marc said it takes a bit more managing, and since I already use so much Cloudflare stuff it's nice to use them for email too With AI especially all of these are just as easy to use and setup in your app/site so economically it makes sense to go for the cheapest, because email is just email, it's all the same and deliverability is good with all of these I think TL;DR email sending has become a commodity!

English
56
71
1.7K
295K
Zrob
Zrob@Zrob0·
348 player YuGiOh Edison event, only on TopDeck.
English
4
4
17
1.9K