Blog

Cloudflare weekly: two email tools, Deno joins, and a local testing tip

Box Ox and EmailFlare for self-hosted email, EmDash 1.0 news, Deno joining Cloudflare, and how to test Cron Triggers locally.

Every week I will post a short roundup for people who build on Cloudflare: new tools, EmDash news, one story and a tip or two. This is the first one.

Two email tools came up this week, so I read the docs of both. I did not deploy either one. Here is how I would choose.

Box Ox: a full email setup in your own account

Box Ox gives you a browser inbox, a sending API, signed webhooks, templates and a typed JavaScript SDK. It all runs in your own Cloudflare account on Workers, R2, D1 and Queues.

Box Ox homepage with the headline “Email infrastructure for Cloudflare developers” and a preview of the inbox The Box Ox homepage. Screenshot: boxox.dev.

The part I like most is agent access. An app or an AI agent connects through MCP or an agent API, and you set which mailboxes it can use and how much it can send. Cloudflare Access protects the admin side.

Things to know before you try it:

  • It is not one-click. You download a zip (v2.4.4 came out on 19 October), check the checksum, and run pnpm run deploy. Or you hand the install link to your coding agent.
  • It needs Cloudflare Access and R2. Sending needs the $5/month Workers Paid plan. There is no Box Ox subscription. The free profile is an inbox preview only.
  • The license is not plain open source. The app uses the Functional Source License, which stops you from building a competing product with it. Each version turns MIT after two years. The SDK and CLI are MIT.
  • I could not find a public repository. You get the code as a zip from the site.

It is made by Ian Muench and contributors.

EmailFlare: just the sending part

EmailFlare does less, and that is the point. It is a REST API, an admin dashboard, templates, domain management and scoped API keys for sending through Cloudflare Email Sending. There is also a small team inbox called emailflare-inbox for receiving and replying.

EmailFlare repository on GitHub, a self-hosted email sending platform built on Cloudflare Email Sending The EmailFlare repository. Screenshot: github.com/0xdps/emailflare.

It runs as Workers or as one Docker container, it is MIT licensed, and it has about 255 stars on GitHub. It is built by 0xdps.

Which one should you pick?

  • You want a full inbox, agent access and a polished admin: Box Ox. Accept the scripted install and the license.
  • You only need to send app email, and you want plain MIT code you can read and fork: EmailFlare.

If you are unsure, start with EmailFlare. It is the lower commitment. Switch to Box Ox when you need the inbox and the agent permissions.

EmDash news

  • EmDash 1.0 shipped on 28 September. The MIT-licensed CMS is out of beta. From now on, breaking changes come only in new major versions.
  • A plugin registry launched with it. It is decentralized and runs on the AT Protocol, so authors can publish plugins without a central store. Read Cloudflare’s announcement and CMSWire’s report.
  • 1.0.1 is a small patch. It fixes a collection being recreated because of media usage tracking. See the release notes.
  • Coming from 0.42? Read the upgrade guide first. APIs deprecated in 0.x are gone, and the registry setting is now a top-level registry option.

For a plain intro to the CMS, see EmDash: Cloudflare’s open-source CMS built on Astro.

The story: Deno is joining Cloudflare

On 9 October, Ryan Dahl and Kenton Varda announced that Deno is joining Cloudflare. News outlets call it an acquisition, and the terms were not shared. Reports say Dahl and Deno co-founder Bert Belder will lead the work of merging Deno’s self-hosted Workers project, celld, into workerd, Cloudflare’s open-source Workers runtime.

For Deno users it means change. Deno Deploy shuts down within six months, and paying users move to Workers. The Deno runtime gets a year of bug-fix and security releases, then development stops. JSR keeps running. There is no timeline yet for the merge.

For Cloudflare developers, the interesting part is self-hosting. workerd is open, but the bindings (KV, D1, R2) are not, which has made self-hosting Workers hard. This is a sign Cloudflare wants to fix that.

Read more: The New Stack and DevOps.com.

Also new from Cloudflare

From Birthday Week and the changelog, the ones I would look at first:

  • cf CLI. A new command line tool that mirrors the Cloudflare API. The 16 October beta added cf docs search and renamed generated commands to kebab-case, which breaks old scripts. (changelog)
  • Workers Issues. Groups Workers errors and sends the stack trace to a coding agent or a webhook. (post)
  • Protected Quick Tunnels. Share a local app and ask visitors to sign in with email. No Cloudflare account needed. (post)
  • Streamline. An open-source example of a video pipeline on Workers, Durable Objects and containers. (post)

The full list is in Cloudflare’s Birthday Week wrap-up.

Tips

Test a Cron Trigger without waiting for it

Local development never runs Cron Triggers on its own. Local Explorer now lets you fire one by hand.

Cloudflare docs page for Local Explorer, a browser interface for local bindings, traces and logs The Local Explorer docs. Screenshot: developers.cloudflare.com.

  1. Start your dev server with npx wrangler dev (or npx vite, or cf dev).
  2. Open /cdn-cgi/local/explorer on the address it prints, for example http://localhost:8787/cdn-cgi/local/explorer.
  3. Pick your Worker, go to Cron Triggers, and press Trigger. You can also build an ad hoc expression with no config.

Your Worker must export a scheduled() handler. You need Wrangler 4.139.0 or later, or the Cloudflare Vite plugin 1.60.0 or later. Turn on Observability to see full logs. Source: Cloudflare docs.

Let Wrangler write your Env types

Do not type the Env interface by hand. Run wrangler types and it generates it from your config, so a missing binding becomes a compile error instead of a runtime surprise. This is one of the habits in Cloudflare’s Workers best practices.

Try them all, then see them in one place

If you try several of these, your account fills up with Workers, D1 databases and R2 buckets. WorkerDock is the free Mac app I built to see them in one window: status, ports, logs and bindings.

Built something on Cloudflare? Tell me on X, @harishchouhan. I may feature it next week.

Directory

Apps and projects built on Cloudflare

Hand-picked open-source projects you can run in your own Cloudflare account.

Browse the directory
  • Email

    Box Ox

    Browser inbox, sending API, webhooks and agent access, all in your own Cloudflare account.

    • Functional Source License
    • Workers
    • R2
    • D1
  • Email

    EmailFlare

    A REST API, dashboard and scoped API keys for sending app email through Cloudflare.

    • MIT
    • Workers
    • Email Sending
  • Developer tools

    Appflare

    App manager for your Cloudflare account. Install open-source Workers apps from your browser.

    • Apache-2.0
    • Workers

Running more than one Worker?

WorkerDock finds your local Workers, Pages and Astro projects and shows each one's port, logs and bindings in one window.

v0.1.2 · macOS 14+ · Free