<?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: Deb Singha</title>
    <description>The latest articles on DEV Community by Deb Singha (@debojyoti452).</description>
    <link>https://dev.to/debojyoti452</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%2F415372%2Fee0e3b20-b0a2-4771-86a1-0711e4618ff3.png</url>
      <title>DEV Community: Deb Singha</title>
      <link>https://dev.to/debojyoti452</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/debojyoti452"/>
    <language>en</language>
    <item>
      <title>Why I Built Pluto: The Internal Email Validation Engine Behind Keplars</title>
      <dc:creator>Deb Singha</dc:creator>
      <pubDate>Sat, 30 May 2026 11:51:13 +0000</pubDate>
      <link>https://dev.to/debojyoti452/why-i-built-pluto-the-internal-email-validation-engine-behind-keplars-5h6k</link>
      <guid>https://dev.to/debojyoti452/why-i-built-pluto-the-internal-email-validation-engine-behind-keplars-5h6k</guid>
      <description>&lt;p&gt;When most people think about email infrastructure, they usually think about sending emails.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SMTP servers.&lt;/li&gt;
&lt;li&gt;Email APIs.&lt;/li&gt;
&lt;li&gt;Deliverability.&lt;/li&gt;
&lt;li&gt;Tracking.&lt;/li&gt;
&lt;li&gt;Automations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At &lt;a href="https://keplars.com" rel="noopener noreferrer"&gt;Keplars&lt;/a&gt;, we spend a lot of time thinking about those problems too. But while building an email infrastructure platform, I realized that one of the biggest challenges actually happens before an email is ever sent.&lt;/p&gt;

&lt;p&gt;The challenge is simple:&lt;/p&gt;

&lt;p&gt;How do you know whether an email address is truly valid?&lt;/p&gt;

&lt;p&gt;It sounds like a solved problem. In reality, it is much more complicated than most people realize.&lt;/p&gt;

&lt;p&gt;The Problem We Kept Running Into&lt;/p&gt;

&lt;p&gt;While building Keplars, we tested and integrated multiple email validation providers.&lt;/p&gt;

&lt;p&gt;Most of them offered similar capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Syntax validation&lt;/li&gt;
&lt;li&gt;Domain validation&lt;/li&gt;
&lt;li&gt;MX record checks&lt;/li&gt;
&lt;li&gt;Disposable email detection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the surface, the results looked reasonable.&lt;/p&gt;

&lt;p&gt;However, when we compared validation results against actual email deliverability and mailbox behavior, we kept seeing inconsistencies.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some addresses marked as valid would later bounce.&lt;/li&gt;
&lt;li&gt;Some belonged to temporary providers.&lt;/li&gt;
&lt;li&gt;Some were aliases that represented the same mailbox.&lt;/li&gt;
&lt;li&gt;Others had DNS records configured correctly but still could not reliably receive mail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a company building communication infrastructure, this creates a serious problem.&lt;/p&gt;

&lt;p&gt;Every invalid email address affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deliverability rates&lt;/li&gt;
&lt;li&gt;Sender reputation&lt;/li&gt;
&lt;li&gt;Bounce rates&lt;/li&gt;
&lt;li&gt;Campaign performance&lt;/li&gt;
&lt;li&gt;Infrastructure costs&lt;/li&gt;
&lt;li&gt;Customer trust&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The more we relied on external validation tools, the more we felt there was still a gap between "technically valid" and "actually deliverable."&lt;/p&gt;

&lt;p&gt;Eventually, I decided to stop stacking validation providers on top of each other and build our own system from scratch.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;Pluto&lt;/strong&gt; was born.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introducing Pluto&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pluto is an internal email validation engine developed for Keplars.&lt;/p&gt;

&lt;p&gt;Built entirely in Go, Pluto was designed with a different goal than most validators.&lt;/p&gt;

&lt;p&gt;Instead of answering:&lt;/p&gt;

&lt;p&gt;"Does this email look valid?"&lt;/p&gt;

&lt;p&gt;We wanted to answer:&lt;/p&gt;

&lt;p&gt;"How confident are we that this mailbox can actually receive email?"&lt;/p&gt;

&lt;p&gt;That small difference completely changed how we approached validation.&lt;/p&gt;

&lt;p&gt;Going Beyond Simple Validation&lt;/p&gt;

&lt;p&gt;Most email validators stop after a handful of checks.&lt;/p&gt;

&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%2F09bki8ddqthxj8lrdbbh.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%2F09bki8ddqthxj8lrdbbh.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Pluto combines multiple layers of validation into a single pipeline.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;RFC Compliance Validation&lt;/p&gt;

&lt;p&gt;Every email address is first validated against RFC standards.&lt;/p&gt;

&lt;p&gt;This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local-part validation&lt;/li&gt;
&lt;li&gt;Domain validation&lt;/li&gt;
&lt;li&gt;Character restrictions&lt;/li&gt;
&lt;li&gt;Formatting requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many invalid addresses never make it beyond this stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Length Limit Validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Email standards include strict limits around:&lt;/p&gt;

&lt;p&gt;Local-part length&lt;br&gt;
Domain length&lt;br&gt;
Total address length&lt;/p&gt;

&lt;p&gt;These checks help eliminate malformed addresses that technically appear valid but violate email specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Internationalized Domain Support (IDN)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Email is global.&lt;/p&gt;

&lt;p&gt;Many validation systems struggle with internationalized domains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pluto supports:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unicode domains&lt;/li&gt;
&lt;li&gt;Internationalized Domain Names (IDN)&lt;/li&gt;
&lt;li&gt;Punycode conversion and validation&lt;/li&gt;
&lt;li&gt;This ensures proper validation across multiple languages and regions.&lt;/li&gt;
&lt;li&gt;DNS and MX Verification&lt;/li&gt;
&lt;li&gt;One of the most important steps is verifying that a domain can actually receive mail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pluto performs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DNS lookups&lt;/li&gt;
&lt;li&gt;MX record validation&lt;/li&gt;
&lt;li&gt;Domain routing verification&lt;/li&gt;
&lt;li&gt;Without valid MX records, email delivery simply isn't possible.&lt;/li&gt;
&lt;li&gt;Disposable Email Detection&lt;/li&gt;
&lt;li&gt;Temporary email services continue to grow rapidly.&lt;/li&gt;
&lt;li&gt;These addresses often introduce low-quality users, spam registrations, and unreliable communication.&lt;/li&gt;
&lt;li&gt;Pluto maintains an internal database of more than 5,000 known disposable email providers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As part of the Keplars infrastructure (&lt;a href="https://keplars.com" rel="noopener noreferrer"&gt;https://keplars.com&lt;/a&gt;), these lists are continuously updated and monitored.&lt;/p&gt;

&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%2Fwieriwy5na6gfxyp82s6.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%2Fwieriwy5na6gfxyp82s6.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Role-Based Email Detection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Certain email addresses are technically valid but may not represent individual users.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;p&gt;admin@&lt;br&gt;
support@&lt;br&gt;
info@&lt;br&gt;
sales@&lt;br&gt;
contact@&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pluto identifies role-based accounts and flags them appropriately.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This becomes especially useful when building B2B communication workflows.&lt;/p&gt;

&lt;p&gt;Free Email Provider Classification&lt;/p&gt;

&lt;p&gt;Not all email addresses are equal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pluto identifies major consumer email providers including:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gmail&lt;br&gt;
Outlook&lt;br&gt;
Yahoo&lt;br&gt;
iCloud&lt;br&gt;
Proton Mail&lt;/p&gt;

&lt;p&gt;And many others.&lt;/p&gt;

&lt;p&gt;This allows systems built on Keplars (&lt;a href="https://keplars.com" rel="noopener noreferrer"&gt;https://keplars.com&lt;/a&gt;) to better understand the composition of their email lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alias Normalization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the more interesting challenges was alias handling.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take Gmail for example:&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:johnsmith@gmail.com"&gt;johnsmith@gmail.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:john.smith@gmail.com"&gt;john.smith@gmail.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:john.s.m.i.t.h@gmail.com"&gt;john.s.m.i.t.h@gmail.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of these can point to the same mailbox.&lt;/p&gt;

&lt;p&gt;Most validators treat them as completely different addresses.&lt;/p&gt;

&lt;p&gt;Pluto performs provider-specific normalization for:&lt;/p&gt;

&lt;p&gt;Gmail dot aliases&lt;br&gt;
Gmail plus tags&lt;br&gt;
Yahoo aliases&lt;br&gt;
iCloud aliases&lt;/p&gt;

&lt;p&gt;This helps eliminate duplicate records and improves data quality significantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Detecting Common Typos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A surprisingly large percentage of invalid email addresses are simply typing mistakes.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;gmial.com&lt;br&gt;
gmai.com&lt;br&gt;
outlok.com&lt;br&gt;
yahho.com&lt;/p&gt;

&lt;p&gt;Pluto automatically detects common mistakes and suggests corrections.&lt;/p&gt;

&lt;p&gt;This simple feature alone helps improve signup quality and reduces unnecessary bounce rates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reputation Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Validation isn't only about the recipient.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Domain reputation matters too.&lt;/li&gt;
&lt;li&gt;Pluto evaluates:&lt;/li&gt;
&lt;li&gt;SPF records&lt;/li&gt;
&lt;li&gt;DMARC records&lt;/li&gt;
&lt;li&gt;DNS reputation&lt;/li&gt;
&lt;li&gt;DNSBL checks&lt;/li&gt;
&lt;li&gt;DBL checks&lt;/li&gt;
&lt;li&gt;These signals provide additional insight into the trustworthiness of email domains.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SMTP Mailbox Verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where things become much more interesting.&lt;/p&gt;

&lt;p&gt;A domain may exist.&lt;/p&gt;

&lt;p&gt;MX records may exist.&lt;/p&gt;

&lt;p&gt;DNS may be configured correctly.&lt;/p&gt;

&lt;p&gt;But none of those guarantee that a mailbox actually exists.&lt;/p&gt;

&lt;p&gt;Whenever supported, Pluto performs SMTP-level mailbox verification.&lt;/p&gt;

&lt;p&gt;While no system can achieve 100% certainty due to anti-abuse protections used by major providers, SMTP verification provides a significantly stronger signal than syntax checks alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building Pluto in Go&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Performance was a major priority from day one.&lt;/p&gt;

&lt;p&gt;Email validation can quickly become expensive when processing large datasets.&lt;/p&gt;

&lt;p&gt;Go was chosen because it offered:&lt;/p&gt;

&lt;p&gt;Excellent concurrency&lt;br&gt;
Fast network operations&lt;br&gt;
Efficient memory usage&lt;br&gt;
Scalability&lt;/p&gt;

&lt;p&gt;This allowed Pluto to process validations quickly while performing multiple checks simultaneously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After integrating Pluto into our internal workflows at Keplars (&lt;a href="https://keplars.com" rel="noopener noreferrer"&gt;https://keplars.com&lt;/a&gt;), we saw substantial improvements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most importantly:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;We became significantly more confident in the quality of data entering our communication infrastructure.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today Pluto helps us achieve over 90% validation accuracy internally.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lower bounce rates&lt;/li&gt;
&lt;li&gt;Better deliverability&lt;/li&gt;
&lt;li&gt;Cleaner datasets&lt;/li&gt;
&lt;li&gt;Improved sender reputation&lt;/li&gt;
&lt;li&gt;More reliable automation workflows&lt;/li&gt;
&lt;li&gt;Better overall communication performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For an email infrastructure platform, those improvements compound quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why the Name Pluto?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At Keplars, many of our systems follow a space-themed naming convention.&lt;/p&gt;

&lt;p&gt;Since Pluto operates quietly behind the scenes, validating and filtering communication data before it enters the ecosystem, the name felt appropriate.&lt;/p&gt;

&lt;p&gt;It isn't the largest component in our infrastructure.&lt;/p&gt;

&lt;p&gt;But it's one of the most important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today, Pluto remains an internal tool used throughout the Keplars ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We continue improving:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validation accuracy&lt;/li&gt;
&lt;li&gt;Disposable provider detection&lt;/li&gt;
&lt;li&gt;Alias normalization&lt;/li&gt;
&lt;li&gt;Reputation analysis&lt;/li&gt;
&lt;li&gt;SMTP verification techniques&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And while Pluto was originally built to solve our own challenges, we've received growing interest from developers who face similar problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If enough people find Pluto valuable and would genuinely use it, I'd be happy to explore making it open source for the broader community.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because one thing became very clear while building Keplars:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The quality of your email infrastructure isn't determined when an email is sent.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It's determined long before you ever press Send.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://keplars.com" rel="noopener noreferrer"&gt;Keplars&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>go</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
