Urgent.News

What's breaking now, across thousands of outlets.

Tech

Our bulk email loop runs in the browser, 100 at a time, and there is no campaign log on purpose

Munchable sends service email: a terms change, a billing problem, something about how scans work. There is no marketing list and nothing promotional, which is written down on munchable.app/privacy under "Email we send you", so the audience is not a question the product has to answer. There is exactly one audience, account holders, and the composer has no audience picker at all. What it does have…

Munchable sends service emails such as terms change or billing problems, but there is no marketing list or promotional content. The audience is limited to account holders, with no audience picker for the composer. The email sending process is designed to avoid problems associated with serverless functions, which can be limited in duration.

Instead of a traditional loop that reads every recipient and sends to them, the loop is moved to the client. The client sends batches of up to 100 recipients at a time, returning a cursor for each batch. The client re-invokes the function with the cursor until all recipients have been sent to. This approach allows for progress to be monitored by an operator, and the cursor serves as the only state needed for resuming the process.

The cursor advances based on the keyset, ensuring that recipients are not skipped or sent twice. There is no campaign log, as the product prioritizes minimal data storage. Instead, the composer requires explicit confirmation before sending a bulk email, displaying the count of recipients to be sent. The preview of the email in the composer is a direct representation of the message that will be sent.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

9 Small Web Tools I Reach for Every Week as a Developer

Every developer has a folder of bookmarks for tiny tasks: format this JSON, encode that string, generate a QR code for a demo.

  • JSON formatter indents API responses for debugging and documentation
  • JSON validator checks syntax to fix parse errors in requests
  • QR code generator shares staging URLs with testers and devices

Test the data state before you style the market dashboard

A market dashboard can render perfectly while showing the wrong symbol, stale data or a live candle as if it were final. These are data-contract failures, and CSS cannot fix them.

  • Market dashboards can display incorrect data due to data contract failures.
  • JavaScript function 'classifySnapshot' determines data state for UI display.
  • Testing various inputs ensures proper handling of data contract failures.

SimpleMesh

WORK IN PROGRESS: MANY FEATURES MAY BE BROKEN · version 0.5.0-wip · pre-release Free software · GPL-3.0-only · Copyright (C) 2026 Matthew Armstrong · No warranty, no liability: use at your own risk.

  • SimpleMesh transforms Blender into a 3D printing workstation
  • Focuses on creating objects from basic shapes, drawings, text and clay
  • Simplifies 3D modeling for beginners and teaching concepts

Before You Paste That Wallet Address: Sanity-Checking Crypto Addresses in Python

Every crypto transfer ends with the same scary moment: you paste a long string into a "recipient" box and press send. There's no chargeback and no support line that can reverse it.

  • Wallet addresses are irreversible transfer destinations for cryptocurrency.
  • Addresses include checksums to detect errors before transaction broadcast.
  • Python can validate address format and encoding for specific blockchains.

More from Sunday 11 October →