SaaS founder · @gabelg
Gabe LG
Founder background
Expertise
- Engineering
- Bootstrapping
Products
MailKite
Receive any message as a webhook, send with one API — across unlimited domains and mailboxes, free. No mail server, no MX/SPF/DKIM/DMARC to rebuild for every launch. The email platform for developers, teams, and the agents they build.
Recent posts
Your framework’s built-in mail hooks can now send through…
https://mailkite.dev Spring Boot’s JavaMailSender and ASP.NET Core Identity’s IEmailSender now have native integrations, so existing confirmation and password-reset flows can send without rewriting their call sites. In Next.js, a route handler verifies MailKite’s signature and passes the parsed message to your code—no hand-rolled webhook verification. Not every framework needs another package. NestJS can use the transport that already exists; Flask and FastAPI get runnable starters for the SMTP or SDK path their mail libraries support. The point is to fit the framework’s actual extension point and avoid a wrapper that adds no value. Start free with unlimited domains and 5,000 emails a month shared across inbound and outbound, with no credit card. See the integration details: https://mailkite.dev/docs/integrations Source: https://mailkite.dev/blog/mailkite-native-mailers-six-frameworks/
WordPress can receive email as well as send it.
https://mailkite.dev MailKite SMTP is now in the WordPress.org directory. It replaces PHP mail() with the provider you already use — MailKite, SendGrid, Brevo, Mailgun or any SMTP server — and keeps a free log so a failed send is visible instead of disappearing quietly. You can also route incoming mail into WordPress, where a hook lets your code turn a message into a support ticket or an order note. No separate mailbox to check, and no need to build the same plumbing for every site. The plugin is free, GPL-2.0, with no Pro tier. MailKite’s free plan includes unlimited domains and 5,000 emails a month, with inbound and outbound sharing the quota and no credit card. Start at https://mailkite.dev; the setup guide is at https://mailkite.dev/docs/integrations/wordpress. Source: https://mailkite.dev/blog/mailkite-smtp-wordpress-plugin/
Your welcome email can just be a React component now.
https://mailkite.dev mailkite 0.20.0 is out for Node, Python and PHP. In Node, MailKite renders your React component and derives the plaintext version from that same component, so there's no second copy of the email to keep in sync every time someone rewrites a sentence. That's the whole send: import { MailKite } from "mailkite"; import { Welcome } from "./emails/welcome"; const mk = new MailKite(apiKey); await mk.send({ from: "hello@yourapp.com", to: "ada@example.com", subject: "Welcome aboard", react: , }); Save it once and that design becomes a reusable template your sequences, your broadcasts and your Python and PHP services can send too. Prefer plain HTML in your repo? Point the library at the file and send it — drop a text version beside it and that becomes the plaintext part on its own. Merge tags still fill in per recipient, however the email was authored. No upload step, no build pipeline, no mail server to run. Free while you're building: unlimited domains, 5,000 emails a month, no credit card. Start at https://mailkite.dev — the how-to lives at https://mailkite.dev/docs/sending
Shipped a public email playground on mailkite.dev: build an…
https://mailkite.dev/playground The right pane is React Email JSX and it edits in both directions. Touch the canvas and the JSX regenerates; hand-edit the JSX and the canvas re-parses it. The parser is acorn + acorn-jsx rather than a hand-rolled tokenizer, so a style={{...}} object doesn't break it, and anything it can't map is kept as an opaque block and counted in a status line under the code instead of being silently dropped. The HTML tab is the exact output the send engine ships, not a preview approximation. The terminal action is a real send. Type your address, click the link in the confirmation email, and the draft you wrote lands in your inbox with full headers. That confirmation is the signup. The token behind it lasts 15 minutes, sends only to you, from playground@mailkite.dev, 5 sends an hour. Two things I only found by running it: the editor's button node renders data-href but parses href, so every canvas round trip silently reset each CTA to '#'; and without an image-upload handler the schema has no image node at all, so every starter's logo vanished on parse with no error. Both are handled and the first is pinned by a test. Save template and Start a sequence hand the draft to the dashboard already signed in.
Shipped a /security page for MailKite, and the section I…
https://mailkite.dev/security Most security pages are a badge wall. We don't hold SOC 2 or ISO 27001, so this one can't be. Instead it is built to be re-verified rather than believed: a per-surface TLS table (HTTPS-only API, STARTTLS on 587, implicit TLS on 465, STARTTLS at the MX, IMAPS on 993), the three at-rest modes side by side (default retention that expires, encryption to a public key only you hold via PGP/MIME or S/MIME, or zero-retention passthrough that stores nothing), how webhook signing works (HMAC-SHA256 over the raw body, per-route secret, five-minute replay window), and the MX, submission and IMAP edges open source at github.com/mailkite/server. Then "What we don't have yet", linked straight from the hero: no SOC 2 or ISO report, the v1 at-rest envelope has had no external crypto review, account API keys are not show-once yet, no orgs or per-user roles, inbound TLS is opportunistic. A reviewer finds all of that anyway. Better in five minutes than in week three. Also added an RFC 9116 security.txt pointing at the disclosure policy.
MailKite Server is now open source.
The mail-server half of MailKite — the Haraka MX edge, the SMTP submission edge, the IMAP server, a zero-dependency SQLite backend and a web console — is now on GitHub under AGPL-3.0: github.com/mailkite/server Every edge is a stateless protocol head sitting behind one small HTTP contract, so the bundled SQLite backend and MailKite Cloud are just two implementations of the same thing — the edges and the console run unchanged against either. Self-host the whole stack on a $5 VPS, or keep storage on your box and set SMARTHOST=cloud to send through our deliverability. Five releases in, it takes real internet mail on :25, serves IMAP to Thunderbird and Apple Mail, and dispatches signed inbound webhooks with a durable retry queue. Live demo box: server.mailkite.dev Full write-up on why we split it out and how the contract works: https://mailkite.dev/blog/mailkite-server-open-source
We added sequences to Mailkite.
Sequences allow you to send scheduled emails a few days after an initial email or event such as a user sign up or use it purchase of a plan or their signing up to your newsletter. Sequences are fully automated and can be triggered by any event as well as being conditional and can happen llm choose the next action. We use sequences internally in Mailkite to help customers after they have signed up full stop our first sequence triggers after a day and reminds the customer to set up their domain if they haven't and gives them instructions on how to do that. After 3 days if they have not managed to send an email we send them instructions on how to send email. This is a simple example of a sequence. You can use email sequences to set up complex scheduling and reactive emails to send to your customers. Sequences also work together with existing lists and audiences you have.