<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: HAMZA MAAROUF</title>
    <description>The latest articles on DEV Community by HAMZA MAAROUF (@hamza_maarouf_0081562b2e9).</description>
    <link>https://dev.to/hamza_maarouf_0081562b2e9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3724191%2F4f7072a9-c63f-4348-ac26-48fac4c59ded.png</url>
      <title>DEV Community: HAMZA MAAROUF</title>
      <link>https://dev.to/hamza_maarouf_0081562b2e9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hamza_maarouf_0081562b2e9"/>
    <language>en</language>
    <item>
      <title>I Built a Disposable Email Tool with Next.js and Go. Try It Right Here</title>
      <dc:creator>HAMZA MAAROUF</dc:creator>
      <pubDate>Sun, 22 Mar 2026 05:09:32 +0000</pubDate>
      <link>https://dev.to/hamza_maarouf_0081562b2e9/i-got-tired-of-spam-emails-heres-the-simple-fix-i-use-now-42k8</link>
      <guid>https://dev.to/hamza_maarouf_0081562b2e9/i-got-tired-of-spam-emails-heres-the-simple-fix-i-use-now-42k8</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3vislb1buy8253k071n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft3vislb1buy8253k071n.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I finally shipped something I actually use every day.&lt;/p&gt;

&lt;p&gt;It started as a personal annoyance. Every time I was testing a signup flow on a side project, I'd burn through fake email addresses, clutter my real inbox, or spend time creating throwaway Gmail accounts. After doing that maybe fifty times I thought, why not just build the thing I actually want.&lt;/p&gt;

&lt;p&gt;The result is &lt;a href="https://instanttempemail.com" rel="noopener noreferrer"&gt;instanttempemail.com&lt;/a&gt;. A disposable email tool. No signup, no configuration. You open it and you already have an inbox waiting for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I used to build it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The frontend is Next.js. I wanted fast page loads and a clean experience without unnecessary complexity. Next.js gave me what I needed there without fighting me.&lt;/p&gt;

&lt;p&gt;The backend is Go. This was the part I was most deliberate about. Disposable email involves real-time inbox updates, handling SMTP, and serving a lot of short-lived sessions. Go handles concurrency cleanly and the performance is genuinely good. I'm not fighting the runtime to do what I need.&lt;/p&gt;

&lt;p&gt;The two talk to each other over a simple API. Nothing exotic. The interesting engineering is mostly on the mail handling side, making sure messages arrive fast and the inbox feels alive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I want you to actually test it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's the thing. I've been using it myself for months but there's a limit to how much one person can stress test their own tool. So I'm putting it in front of developers who will actually poke at it.&lt;/p&gt;

&lt;p&gt;Go to &lt;a href="https://instanttempemail.com" rel="noopener noreferrer"&gt;instanttempemail.com&lt;/a&gt; right now. You'll get a temporary email address instantly. Then do something with it:&lt;br&gt;
Send an email to it from your real account and see how fast it arrives. Use it to sign up for some service you've been curious about but didn't want in your inbox. If you're a developer, test your own signup flow with it. Drop the address into a newsletter you've been on the fence about.&lt;br&gt;
Then come back here and tell me what happened. Did it work? Did it feel slow? Did something break? I genuinely want to know.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Go for the backend specifically&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A few people have asked why not just use Node for the whole thing since I'm already in the JavaScript world with Next.js.&lt;/p&gt;

&lt;p&gt;Honest answer: I wanted to write the backend in something that made me think differently about the problem. Go's approach to goroutines made the concurrent inbox handling feel natural in a way that async JavaScript sometimes doesn't. When you're dealing with incoming mail events and multiple users polling for new messages at the same time, having lightweight threads that don't require a lot of ceremony is genuinely useful.&lt;/p&gt;

&lt;p&gt;Also I just like writing Go. It's fast to compile, easy to deploy, and the standard library covers a lot without pulling in a pile of dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I'm still working on&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Custom address prefixes are something I want to add. Right now addresses are randomly generated. Some people want to pick something memorable.&lt;br&gt;
Longer inbox lifetimes for certain use cases. Right now sessions are short by design, but there's a reasonable case for optionally extending them.&lt;br&gt;
Attachment previews. Currently you can see email content but attachments are limited. That's next on the list.&lt;/p&gt;

&lt;p&gt;If any of those sound like things you'd use, let me know in the comments. It shapes what I prioritize.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The actual ask&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open &lt;a href="https://instanttempemail.com" rel="noopener noreferrer"&gt;instanttempemail.com&lt;/a&gt;, do something real with it, and leave a comment below. Doesn't have to be long. Even just "worked fine" or "this broke" is useful data.&lt;/p&gt;

&lt;p&gt;I built this to scratch my own itch but I'd rather it be useful to more people than just me. The only way to know if it actually is, is to have real people try it.&lt;/p&gt;

</description>
      <category>go</category>
      <category>nextjs</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Go is the Perfect Language for Building a Temporary Email Service</title>
      <dc:creator>HAMZA MAAROUF</dc:creator>
      <pubDate>Wed, 21 Jan 2026 15:56:22 +0000</pubDate>
      <link>https://dev.to/hamza_maarouf_0081562b2e9/why-go-is-the-perfect-language-for-building-a-temporary-email-service-24po</link>
      <guid>https://dev.to/hamza_maarouf_0081562b2e9/why-go-is-the-perfect-language-for-building-a-temporary-email-service-24po</guid>
      <description>&lt;p&gt;Most people understand what temporary email services are used for—avoiding spam and protecting privacy. But when I built &lt;a href="https://www.box-mail.org" rel="noopener noreferrer"&gt;Box-Mail&lt;/a&gt;, the "why" behind the product was less interesting than the "how."&lt;/p&gt;

&lt;p&gt;The Real Problem: Concurrency over CRUD&lt;br&gt;
A temp mail service isn't a simple database wrapper. It’s a high-concurrency challenge. You have:&lt;/p&gt;

&lt;p&gt;Thousands of open SMTP connections.&lt;/p&gt;

&lt;p&gt;Real-time mailbox watchers.&lt;/p&gt;

&lt;p&gt;Sudden spikes from bots or viral launches.&lt;/p&gt;

&lt;p&gt;Why Go? Goroutines. I didn’t want to tune thread pools or fight async/await syntax. In Go, one goroutine per connection is the default, making it incredibly easy to handle thousands of simultaneous emails without breaking a sweat.&lt;/p&gt;

&lt;p&gt;Memory Predictability&lt;br&gt;
Temp mail services deal with untrusted input (large attachments, malformed MIME). Go’s predictable memory management and pprof profiling allowed me to keep Box-Mail.org stable even when receiving massive, "garbage" emails designed to crash a server.&lt;/p&gt;

&lt;p&gt;The "Boring" Infrastructure Advantage&lt;br&gt;
Go binaries start instantly. This matters for:&lt;/p&gt;

&lt;p&gt;Autoscaling: Handling traffic spikes immediately.&lt;/p&gt;

&lt;p&gt;Crash Recovery: No warm-up time like the JVM.&lt;/p&gt;

&lt;p&gt;Security: Minimal dependencies mean a smaller attack surface.&lt;/p&gt;

&lt;p&gt;Conclusion: I chose Go because it turned an infrastructure nightmare into a predictable, stable system.&lt;/p&gt;

&lt;p&gt;Check out the live project here: &lt;a href="https://www.box-mail.org" rel="noopener noreferrer"&gt;Box-Mail.org&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>backend</category>
      <category>systemdesign</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
