Your content. Connected to your code.

Great products.
Even better connections.

smsPDF

The shared workspace for your product’s messages. Design beautiful templates, connect your data, and make every customer touchpoint feel like you.

Visual for your team. Typed for your developers.
An animated globe illustrating connections between your templates and customers. The template events shown are examples.
Every touchpoint.
A little more you.
Welcome emails Order confirmations Product updates Password resets
From idea to inbox

One workflow.
Every connection.

Your team gets room to create.
Your developers get a clean integration.
Your customers get a better email.

01 / CREATE

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.
02 / CONNECT

Give your content context.

Define a schema, add preview data, and sync your templates. Your code knows exactly what each message needs.

A personal touch. With type safety.
03 / PUBLISH

Ready when your product is.

Publish a version and choose it for your environment. Render the content from your app, with your delivery setup.

Less handoff. More hello.
A workspace that speaks your language

Design meets data.
Everyone wins.

A visual canvas for your team. A clear schema for your code. Try changing the example data or previewing another language.

Find your flow
Visual editor Typed variables Multiple locales
++
Design meets your data
PGetting started / welcome-email Published
All changes savedv1.2.0 | Preview
welcome.tsFully typed
await papier.emails.welcomeEmail.renderHTML({
data: { firstName: 'Alex', companyName: 'Acme' }
});
Interactive example · Try the Schema tab
Built for the whole lifecycle

More than a template.
Your message infrastructure.

All the care you put into your product, carried through to your messages.

Keep the good.
Revisit the previous.

Draft, publish, and restore with a clear version history. Choose the right release for each environment.

Welcome, with a little more warmthv1.2.0 · Updated email copy
Production
A fresh startv1.1.0 · New header layout
The very first hellov1.0.0 · Initial version

Say it well.
In their language.

Manage locales side by side. Use AI-assisted translation with your configured provider, then review every word.

Before their inbox,
make it yours.

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 workflow
Virtual inboxDevelopment
a
Good things start with a hello.alex@example.com · welcome-email
Just now
a
Your order is in good hands.sam@example.com · order-confirmation
2 min ago
An example of your next quality check.
A love letter to developers

Nice templates.
Even nicer DX.

Keep email markup out of your application logic. Sync your schemas, get a typed client, and build personalized content from your code.

  • Generated types from your template schemas
  • A CLI that fits your development workflow
  • Versioned templates and schema validation
  • Render first. Send through your provider.
Read the quickstart
npx @usepapier/cli init
your-app / welcome.tsTypeScript
import { 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);
A few good questions

Glad you
asked.

Get to know your next
template workspace.

What can I build with Papier?

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.

Who is Papier for?

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.

Do I need to change my email provider?

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.

How does the type-safe workflow work?

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.

Can I manage different languages and environments?

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.

Less friction. Better connections.

Your next great email
starts right here.

Give your templates a home.
And your team a little more room to create.

Make something good