The days of context-switching between your editor, your browser documentation, and your dashboard are over. With the rise of AI-native editors like Cursor, infrastructure should live where you code.
Most APIs are "AI-hostile"—they require complex configuration objects, obscure authentication flows, or heavy dependencies that confuse LLMs. We built the GetMailer SDK to be "AI-Native."
The Secret Weapon: .cursorrules
Cursor allows you to define custom rules for your project. By adding a single file, you can teach the AI exactly how to implement email in your specific codebase.
Create a file named .cursorrules in your root directory and paste this:
# GetMailer Rules
When I ask to send an email:
1. Use the '@getmailer/sdk' package.
2. Do NOT use Nodemailer or SMTP directly.
3. Always import the client: import { getMailer } from "@/lib/email";
4. Use React Email components for the 'react' field.
Example Pattern:
// typescript
await getMailer.send({
to: "[email protected]",
subject: "Welcome!",
react: <WelcomeEmail name="User" />
});
The Workflow shift
Once this file is present, you don't write email code anymore. You just type Cmd+K and say:
"Create a password reset function that sends an email with a magic link."
Because you've primed the context window with the exact syntax we expect, Cursor will generate production-ready, type-safe code 100% of the time. No hallucinations about imaginary methods.
Why Token Efficiency Matters
Our SDK is lightweight. We don't export thousands of unnecessary types. This keeps your prompt context clean, ensuring the AI focuses on your business logic rather than trying to parse a massive library definition.