zupost
v0.2.0
Published
Node.js SDK for Zupost
Downloads
733
Readme
Introduction
Zupost is a mail provider that allows you to send emails easily and efficiently. This SDK allows you to integrate Zupost easily into your Node.js applications.
Installation
npm install zupostUsage Examples
Initialize the Client
import { Zupost } from 'zupost';
const zupost = new Zupost('your-api-key');Send an Email
Zupost is template first: design your emails in the Zupost dashboard and send them by templateId, passing in dynamic variables. This is the recommended approach for almost all use cases — content stays out of your codebase, can be edited without a deploy, and benefits from Zupost's rendering pipeline.
For ad-hoc or dynamically generated content, you can alternatively pass raw html, markdown, or a react component as a fallback.
// Recommended: send with a template
const { id } = await zupost.emails.send({
from: '[email protected]',
to: '[email protected]',
templateId: 'welcome-template',
variables: { name: 'John' },
});
// Send to multiple recipients with a template
await zupost.emails.send({
from: '[email protected]',
to: ['[email protected]', '[email protected]'],
templateId: 'team-update',
variables: { teamName: 'Engineering' },
});Fallback: inline content
When a template is not a good fit, you can pass raw content instead. Exactly one of html, markdown, or react is required in that case.
// Inline HTML
await zupost.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Hello World',
html: '<h1>Hello!</h1>',
});
// Inline markdown
await zupost.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Team Update',
markdown: '# Hello Team\n\nThis is a **markdown** email.',
});Send with React Email (fallback)
As an alternative to templates, Zupost supports React Email components out of the box.
npm install @react-email/componentsimport { Zupost } from 'zupost';
import { Html, Head, Body, Container, Text } from '@react-email/components';
const WelcomeEmail = ({ name }: { name: string }) => (
<Html>
<Head />
<Body>
<Container>
<Text>Hello {name}!</Text>
<Text>Welcome to our platform.</Text>
</Container>
</Body>
</Html>
);
const zupost = new Zupost('your-api-key');
await zupost.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Welcome!',
react: <WelcomeEmail name="John" />,
});Send a Campaign
const { success, message } = await zupost.campaigns.send({
campaignId: 'campaign_123',
});
if (success) {
console.log('Campaign sent:', message);
}Configuration Options
const zupost = new Zupost('your-api-key', {
baseUrl: 'https://custom-api.zupost.com', // Optional: custom API URL
});Contributing
We welcome contributions! Please open an issue or submit a pull request.
License
This SDK is licensed under the MIT License - see the LICENSE file for details.
