A canvas for your team.
Build responsive emails with visual blocks. Bring your layout, copy, and template variables together in one place.
Drag. Drop. Make it yours.The shared workspace for your product’s messages. Design beautiful templates, connect your data, and make every customer touchpoint feel like you.
Your team gets room to create.
Your developers get a clean integration.
Your customers get a better email.
Build responsive emails with visual blocks. Bring your layout, copy, and template variables together in one place.
Drag. Drop. Make it yours.Define a schema, add preview data, and sync your templates. Your code knows exactly what each message needs.
A personal touch. With type safety.Publish a version and choose it for your environment. Render the content from your app, with your delivery setup.
Less handoff. More hello.A visual canvas for your team. A clear schema for your code. Try changing the example data or previewing another language.
Find your flowHey Alex, welcome to the club.
Your next great idea deserves a place to grow.
Let’s make something good together.
Change the example data, then return to Design.
await papier.emails.welcomeEmail.renderHTML({
data: { firstName: 'Alex', companyName: 'Acme' }
});All the care you put into your product, carried through to your messages.
Draft, publish, and restore with a clear version history. Choose the right release for each environment.
Manage locales side by side. Use AI-assisted translation with your configured provider, then review every word.
Check test messages in a virtual inbox and inspect developer logs. Give every change a closer look before it reaches your customers.
Explore the developer workflowKeep email markup out of your application logic. Sync your schemas, get a typed client, and build personalized content from your code.
npx @usepapier/cli initimport { createPapier } from '@usepapier/client';
const papier = createPapier({
project: 'my-product',
apiKey: process.env.PAPIER_API_KEY,
environment: 'production',
});
const html = await papier.emails.welcomeEmail.renderHTML({
data: {
firstName: 'Alex',
companyName: 'Acme',
},
});
// Your content, ready for your delivery provider.
console.log(html);Get to know your next
template workspace.
Start with the emails your product sends every day: welcome messages, password resets, receipts, and product updates. Papier combines visual design, template variables, translations, and versioned publishing. The platform also includes SMS templates and PDF generation from existing document templates.
Product, design, and marketing teams can work on email content in the visual editor. Developers connect that content to the application through a schema-driven SDK, CLI, and rendering API. Everyone works from the same templates.
You can build the rendered email content and pass it to your delivery provider. The SDK also supports sending through configured adapters, including SendGrid or your own custom adapter. Delivery credentials and provider setup are required for sending.
Define the data your template expects in its schema, then sync it with the Papier CLI. The generated TypeScript client knows the template names and data fields, so your editor can catch missing or incorrect values before you run the code.
Yes. Templates support multiple locales and AI-assisted translation when an AI provider is configured. You can also manage environments and choose which published template versions they use.
Give your templates a home.
And your team a little more room to create.