Lewati ke konten
Abihuy
Vaultmail — Disposable Mail + Admin Panel — cover image

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
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:

  1. Email masuk ke *@mail.haluboy.org di-route ke Cloudflare Worker.
  2. Worker parsing email (subject, from, to, body HTML+text, attachment metadata) jadi dokumen JSON.
  3. 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.
  4. 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.

  • Vaultmail — Disposable Mail + Admin Panel — Disposable inbox
    Disposable inbox
  • Vaultmail — Disposable Mail + Admin Panel — Admin dashboard
    Admin dashboard
  • Vaultmail — Disposable Mail + Admin Panel — Abuse panel
    Abuse panel
  • Vaultmail — Disposable Mail + Admin Panel — API view
    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:

  1. Email masuk ke *@mail.haluboy.org di-route ke Cloudflare Worker.
  2. Worker parsing email (subject, from, to, body HTML+text, attachment metadata) jadi dokumen JSON.
  3. 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.
  4. 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 di mailboxes.address dan messages.receivedAt biar 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.

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.