Building Doota mostly alone, but not entirely.
I wanted a mascot for Doota, and Rajesh (my college senior) gave it a face.
Still exploring, but here's a sneak peek.
Doota Mail now scans attachments before you open them.
Click a file, YARA runs heuristic checks in WASM right in your browser, then it opens. Zero uploads to a scanner - it all happens locally.
Also, we support file view for PPTX, DOCX, XLX, CSV, MD and ZIP.
Self-hosting Doota Mail used to mean wrangler commands in a specific order — the web Worker binds a Durable Object that lives in another Worker, so the order isn't optional.
Now it's a fork, add secrets and a re-run the CI.
@alchemy_run is best for Cloudflare.
Steps below 👇
As mentioned yesterday, Contacts & Calendar in Doota Mail require WebDAV, CalDAV, and CardDAV.
That means handling HTTP methods like PROPFIND, REPORT, and MKCALENDAR via Cloudflare Workers.
Tested it today—Cloudflare supports everything we need except one (MKCALENDAR) method.
It's an open source and still pre-release — I'm fixing things and @sobi1328 finding bugs daily and would rather have people poke at it than wait for perfect.
And @sobi1328 - Thank you, without you this project might had lots of bugs.
https://t.co/Hy7cgDDjUx - Waiting for your ⭐️
What's next:
1. Calendar and contacts over CalDAV/CardDAV, so your phone syncs natively
2. Outbound webhooks - For integrations.
3. Web Push - Partially shipped
4. An MCP server and WebMCP so agents can work a mailbox.
If you have something in mind and want to suggest? Reply/DM
What we choose for our tech stack?
Cloudflare:
Workers for compute
D1 for relational state
R2 for raw messages + attachments
KV + Queues
Email Routing for inbound, Email Service for outbound
Frontend: SvelteKit and shadcn-svelte on the front.
Why? That's for another day.
The UI/UX - Svelte/kit & ShadCN
What's new about mail?
- We do chat like interface instead of default long threads.
- We do provide a list view for the mails (You choose.)
- Good to have features like quick access to attachments, internal notes in shared mailbox.
I'm building an open-source email platform that runs entirely on Cloudflare.
What it provides to you: a webmail client, and an API for sending transactional mail — like Resend or Postmark, with Cloudflare's Developer Platform.
It's called Doota Mail.
@ethercorps Same pipeline as the mail client, not a bolted-on API. Retries, bounce handling, suppression list, rate limits — all of it applies.
Self-hosted, open source, Apache-2.0.
https://t.co/Hy7cgDDjUx
Spent the day polishing the UI for Doota.
Instant attachment previews = email that actually feels good to use. Still tweaking a few details, but feeling really good about this direction!
What’s your #1 pet peeve with modern email apps?
🔥 Massive update for SvelteKit OG!
sveltekit-og v4 is HERE! We've completely overhauled the library to deliver ultimate stability and a frictionless developer experience for generating dynamic OG images.
Docs: https://t.co/jHJeir55Ra
@sveltejs@SvelteSociety#SvelteKit#Svelte
Spent the morning on invite rendering on https://t.co/FgaFq7kVTw
Instead of displaying default invite mail, We parses the text/calendar invite and draws its own card — local timezone, RSVP that sticks, and all Meet boilerplate collapsed without losing important information.
I'm building a mail client where emails read like a chat, because I can't stand quoted replies.
Building the UI was easy. Stripping four levels of "On Tue, someone wrote:" across every mail client on earth, not so much.
SvelteKit on Cloudflare — Email, Workers, D1, R2, Queues.