Building sevk: From Frustration to Solution
How a 2 AM debugging session with broken password reset emails turned into a markup language, nine SDKs, and a prepaid balance instead of a subscription.
sevk started as a frustration that would not go away. A password reset email that never arrived. A template that rendered fine in Gmail and fell apart in Outlook. An invoice for sending volume I was not actually using. The fix each time was small. The pattern is what I could not stop thinking about.
The Problem That Wouldn't Go Away
It was 2 AM, and I was debugging why password reset emails weren't reaching users. Again. This wasn't the first time, and it wouldn't be the last. The email service we were using had failed silently, leaving our users locked out of their accounts.
But the problem wasn't just delivery. It was the entire experience. Writing HTML emails felt like time travel to 1999. Testing across email clients was a nightmare. And don't even get me started on responsive design in Outlook.
Introducing sevk Markup Language
The first piece I built was sevk Markup. It is an XML-like format that each SDK renders to email HTML locally. A template is just a string you can use from any supported language.
<section padding="40px 20px" background-color="#f8f9fa">
<container max-width="600px">
<heading level="1" color="#1a1a1a">Welcome!</heading>
<paragraph color="#666666">
Thanks for signing up. We're excited to have you.
</paragraph>
<button href="https://app.sevk.io" background-color="#000000" color="#ffffff" padding="12px 24px">
Get Started
</button>
</container>
</section>The compiler handles the parts that make email HTML painful: nested tables, inline styles, and MSO (Microsoft Office) conditional comments for Outlook.
Note
sevk Markup generates VML fallbacks for Outlook buttons and keeps critical styles inline so Gmail does not strip them. Each SDK includes a local renderer for this markup format.
AI-Powered Email Generation
Once sevk Markup existed as a string format, getting an LLM to write it became obvious. The syntax is small, the attributes are predictable, and the output is always valid because the compiler normalizes it.
So you can describe an email in plain text, get sevk Markup back, and either use it as-is or edit it by hand. That is the entire feature. No magic.
Visual Email Editor
Not everyone wants to edit markup by hand. The Visual Editor is a drag-and-drop interface that reads and writes the same sevk Markup strings.
You can switch between the visual view and the code view at any time. They are two ways of editing the same document, not two different formats.
SDKs for Every Language
Every official SDK bundles a local sevk Markup renderer, so you can generate email HTML directly in Python, Go, Node, or any other supported language.
- Bun - Native Bun runtime support with TypeScript
- Node.js - First-class TypeScript support
- Python - Pythonic API design
- Go - Idiomatic Go with full type safety
- PHP - Composer package ready
- Ruby - Gem with Rails integration
- C# / .NET - NuGet package with async support
- Java - Maven/Gradle compatible
- Rust - Async-first with Tokio
Because the renderer is embedded in each SDK, you can also generate the HTML locally and send it through any other provider. sevk Markup is not locked to sevk the service.
Scheduling and Broadcasts
sevk handles broadcasts alongside transactional sends: one-off campaigns, newsletters, and scheduled sends to audiences or segments. Scheduling is timezone-aware so a send at 9 AM means 9 AM local to each recipient when you want it to.
Analytics
The dashboard shows the metrics you actually need to reason about a send:
- Real-time delivery tracking - Know exactly when emails are delivered
- Open and click rates - Track engagement across campaigns
- Bounce and complaint handling - Automatic list hygiene
- Device and client breakdown - Optimize for your audience
Authentication and Delivery
The deliverability basics are handled for you when you add a domain:
- DKIM signing - Cryptographic email authentication
- SPF records - Prevent email spoofing
- DMARC compliance - Full email authentication
- TLS encryption - Secure transmission
- Dedicated IPs - Protect your sender reputation
Prepaid Balance Instead of a Subscription
Most providers charge a monthly fee for a volume tier you may not hit. sevk does not. You top up a balance and sends are deducted as they happen:
- $0.001 per outbound email - After the monthly allowance
- 1,000 free outbound emails - Every month, forever
- No monthly minimums - Pay only for what you use
Infrastructure
sevk runs across multiple regions so sends go out close to recipients. Status and incidents are published openly.
The short version: sevk is the email platform I wanted when I was debugging password resets at 2 AM. Small enough to drop into a side project, structured enough to run a real product on.
Get Started
Sign up and send your first email in minutes. Top up your balance, only pay for what you send.
Questions or feedback? Reach out at kubilay@sevk.io
