Skip to content
facteur.
Your app’s delivery service

One notification.
Every destination.

Notifications, without the tangled code. Define once, deliver across channels. A TypeScript-first library for Node.js, built to fit your stack.

npm install @facteurjs/core

Open source. MIT licensed.

One API. Multiple channels.DELIVERED WITH CARE ↗
Less plumbing. More shipping.

Good things come
in small APIs.

Configure your channels. Give your notification a message for each one. Then let Facteur handle the delivery.

Meet the notification API
TypeScript all the way down.
send_notification.tsTS
import { facteur } from './facteur.js'
import InvoicePaidNotification from './invoice_paid_notification.js'
// One notification. All your configured channels.
await facteur
.notification(InvoicePaidNotification)
.to(user)
.params({ amount: 100 })
.send()
01

Their notifications. Their rules.

Channel preferences and tenant context, so each message belongs in the right place.

User preferences
02

Make yourself at home.

Database history, read status, a server API and React hooks for your in-app notification center.

Build an inbox
03

Fits your code. Not the reverse.

Framework-agnostic at the core. Custom channels, lifecycle hooks and a built-in fake for tests.

Make it your own
Same message. Different addresses.

Pick your destinations.

Install only the providers you need.
Bring your own when you need more.

At home in your stack. AdonisJS Hono React Or just plain Node.js. You choose.
Ready for your first delivery?

Let’s send something good.

Open the quick start