Vaultmail — Disposable Mail + Admin Panel
Disposable email service untuk haluboy.org dengan webhook ingestion via Cloudflare Worker, MongoDB-backed storage, dan admin panel monitoring.
- Tahun
- 2025
- Klien
- haluboy.org
- Durasi
- 10 hari
- Next.js
- Cloudflare Workers
- Email Routing
- MongoDB
- Tailwind
TL;DR
Disposable email service untuk haluboy.org dengan webhook ingestion via Cloudflare Worker, MongoDB-backed storage, dan admin panel monitoring.
Brief & problem
haluboy.org butuh layanan disposable email internal — bukan buat dijual ke publik, tapi buat operasional tim sendiri: testing flow signup, monitoring email transaksional, dan kadang dipake user komunitas yang butuh inbox sementara buat verifikasi akun.
Layanan publik kayak temp-mail.io oke, tapi bermasalah di tiga hal: gak bisa pake domain sendiri, gak ada visibility ke siapa pakai apa, dan gak ada cara cepet buat blokir abuse. Pernah ada kasus satu user generate ratusan inbox dalam semalem buat farming akun, dan tim baru sadar pas keesokan paginya — itu jenis masalah yang sebenernya simple kalo ada admin panel yang bener.
Brief-nya jelas dari Boss: bikin disposable mail yang jalan di domain haluboy.org, simpan email di database yang bisa di-query, dan kasih admin panel yang ngasih liat semua aktivitas real-time. Plus, gak boleh mahal di hosting karena ini infrastruktur internal, bukan profit center.
Pendekatan
Yang paling cepet sampai di goal: Cloudflare Email Routing → Worker → MongoDB → Next.js. Empat layer, tiap layer punya satu tugas, dan semuanya komunikasi via JSON.
Flow-nya begini:
- Email masuk ke
*@mail.haluboy.orgdi-route ke Cloudflare Worker. - Worker parsing email (subject, from, to, body HTML+text, attachment metadata) jadi dokumen JSON.
- Worker push dokumen itu ke MongoDB Atlas via webhook endpoint Next.js — bukan langsung ke Mongo dari Worker, biar logic validation tetap di satu tempat.
- Frontend Next.js polling (atau SSE, tergantung route) inbox per-mailbox dan render real-time.
Admin panel-nya jadi tempat semua kerumitan disimpen rapi. Ada tiga tab utama:
- Inbox monitor — list semua mailbox aktif, jumlah email per-jam, sender top-10, dan tombol "kunci mailbox" buat freezing inbox tertentu tanpa hapus datanya.
- Abuse panel — daftar pattern mencurigakan (mailbox bikin > 50 email dalam 1 menit, sender domain blacklist, attachment besar). Tiap row ada tombol blokir yang langsung sync ke Worker config.
- Domain rotator — kalau satu subdomain udah ke-flag spam sama provider major, swap ke subdomain cadangan tinggal satu klik.
Frontend pake desain yang lebih utility-first dari SookeyMail — Vaultmail bukan produk konsumen jadi gak perlu cantik banget, tapi tetep enak dilihat. Tabel padat, filter cepat, keyboard shortcut buat power user.
Galeri
Tangkapan layar dari project Vaultmail — Disposable Mail + Admin Panel.
Disposable inbox Admin dashboard Abuse panel API view
Tech stack
Tools yang dipakai bikin project ini.
- Next.js
- Cloudflare Workers
- Email Routing
- MongoDB
- Tailwind
Cerita lengkap
Tantangan
haluboy.org butuh layanan disposable email internal — bukan buat dijual ke publik, tapi buat operasional tim sendiri: testing flow signup, monitoring email transaksional, dan kadang dipake user komunitas yang butuh inbox sementara buat verifikasi akun.
Layanan publik kayak temp-mail.io oke, tapi bermasalah di tiga hal: gak bisa pake domain sendiri, gak ada visibility ke siapa pakai apa, dan gak ada cara cepet buat blokir abuse. Pernah ada kasus satu user generate ratusan inbox dalam semalem buat farming akun, dan tim baru sadar pas keesokan paginya — itu jenis masalah yang sebenernya simple kalo ada admin panel yang bener.
Brief-nya jelas dari Boss: bikin disposable mail yang jalan di domain haluboy.org, simpan email di database yang bisa di-query, dan kasih admin panel yang ngasih liat semua aktivitas real-time. Plus, gak boleh mahal di hosting karena ini infrastruktur internal, bukan profit center.
Solusi
Yang paling cepet sampai di goal: Cloudflare Email Routing → Worker → MongoDB → Next.js. Empat layer, tiap layer punya satu tugas, dan semuanya komunikasi via JSON.
Flow-nya begini:
- Email masuk ke
*@mail.haluboy.orgdi-route ke Cloudflare Worker. - Worker parsing email (subject, from, to, body HTML+text, attachment metadata) jadi dokumen JSON.
- Worker push dokumen itu ke MongoDB Atlas via webhook endpoint Next.js — bukan langsung ke Mongo dari Worker, biar logic validation tetap di satu tempat.
- Frontend Next.js polling (atau SSE, tergantung route) inbox per-mailbox dan render real-time.
Admin panel-nya jadi tempat semua kerumitan disimpen rapi. Ada tiga tab utama:
- Inbox monitor — list semua mailbox aktif, jumlah email per-jam, sender top-10, dan tombol "kunci mailbox" buat freezing inbox tertentu tanpa hapus datanya.
- Abuse panel — daftar pattern mencurigakan (mailbox bikin > 50 email dalam 1 menit, sender domain blacklist, attachment besar). Tiap row ada tombol blokir yang langsung sync ke Worker config.
- Domain rotator — kalau satu subdomain udah ke-flag spam sama provider major, swap ke subdomain cadangan tinggal satu klik.
Frontend pake desain yang lebih utility-first dari SookeyMail — Vaultmail bukan produk konsumen jadi gak perlu cantik banget, tapi tetep enak dilihat. Tabel padat, filter cepat, keyboard shortcut buat power user.
Tech
- Cloudflare Email Routing sebagai gateway gratis dengan custom domain native.
- Cloudflare Workers sebagai parser + webhook caller. Logic-nya tipis sengaja, biar bisa di-edit tanpa takut break.
- MongoDB Atlas (free tier) sebagai storage. Schema-nya simple:
mailboxes,messages,audit_logs. Index dimailboxes.addressdanmessages.receivedAtbiar query inbox tetap cepet meski data udah ratusan ribu. - Next.js dengan App Router buat frontend + admin. Auth di admin pake middleware + cookie-based session (cukup buat scope internal).
- Tailwind buat styling. Tanpa shadcn karena admin panel ini fungsional, gak butuh banyak komponen fancy.
Yang menarik: webhook ingestion endpoint di Next.js sengaja dibikin idempotent. Kalau Worker retry karena network glitch, dokumen email yang sama gak akan ke-insert dua kali — pakai messageId dari header sebagai unique key di Mongo.
Outcome
Sepuluh hari dari kickoff sampai Boss bilang "udah cukup, gas live". Vaultmail sekarang jalan di mail.haluboy.org dan jadi tools harian tim internal:
- ~30 detik rata-rata dari email diterima Cloudflare sampai muncul di admin panel — cukup cepet buat debugging signup flow live.
- 0 insiden abuse yang lolos lebih dari 5 menit sejak abuse panel aktif (sebelumnya kasus farming bisa lolos semaleman).
- Tim hemat berjam-jam per minggu karena gak perlu lagi SSH masuk ke log server cuma buat liat "tadi email verifikasi udah masuk apa belum".
- Hosting cost: masih di free tier Cloudflare + MongoDB Atlas. Untuk skala internal, ini sweet spot yang susah dikalahin.
Catatan kecil yang jadi cerita: di hari ke-7 ada bug kecil di parser attachment yang nge-skip email dengan multipart kompleks dari Gmail. Fix-nya 20 menit, deploy 30 detik. Itu salah satu momen yang bikin Boss yakin pilihan stack-nya bener — iterasi cepet > infrastruktur mewah.
"Vaultmail jadi mata kedua tim. Kalau ada yang aneh, kita liat di panel — bukan nebak-nebak dari log raw lagi." — Boss haluboy.org
Screenshot di galeri masih placeholder; versi final menyusul setelah blur sensitive data dari production.
Karya lain
Project lain dari Abihuy yang mungkin relevan.
SookeyMail — Premium Temporary Email
Layanan email sementara premium dengan UI dark-violet ala Apple, custom domain, dan notifikasi Telegram real-time.
- Next.js 16
- Cloudflare Workers
- Email Routing
Sunset — eSIM Admin Webapp Redesign
Redesign admin webapp eSIM dengan estetika cyberpunk ala SookeyMail, polished dual theme, dan optimasi performa untuk dashboard berat data.
- Next.js 14
- Tailwind
- shadcn
Mau bikin yang serupa?
Kalau project Vaultmail — Disposable Mail + Admin Panel bikin kamu mikir “ini cocok buat bisnis gue”, ngobrol dulu yuk. Konsultasi gratis lewat WA, biasanya bales < 2 jam di jam kerja.