Linje

Resend inbound email alternative

Keep Resend for sending. Give every reply application context.

Resend already offers a strong general inbound email product. Linje is an alternative for a narrower problem: generating one managed reply address per order, claim, case, or workflow and returning its immutable metadata with every response.

A real comparison

Resend Inbound is not missing the basics.

Resend accepts email on a provided or custom domain, emits structured JSON, stores received messages and attachments, signs webhook requests, retries failed delivery, exposes delivery attempts, and supports replay. If your job is to receive mail at a stable address and trigger an automation, Resend may already be the right fit.

Read the official Resend Inbound overview. Read the official Resend webhook overview.

The narrower Linje primitive

Model the reply address as part of your application.

Concern Resend Inbound Linje reply route
Address model Receive at aliases on a provided or custom inbound domain Create an opaque address as a project-scoped API resource
Object correlation Your application chooses an alias and maintains its mapping Immutable caller metadata is returned inside the event
Lifecycle Your application controls whether an alias remains meaningful Expire, disable, enable, and list individual reply routes
Webhook operations Signed JSON, automatic retries, attempts, and replay Signed JSON, automatic retries, attempts, and replay
Best fit General inbound processing and email-triggered workflows Replies that must resolve directly to one application object

Application context

Create a reply route with the object metadata.

curl -fsS \
  -H "Authorization: Bearer $LINJE_PROJECT_TOKEN" \
  -H "Idempotency-Key: 018f47d2-89ab-4cde-8123-456789abcdef" \
  -H "content-type: application/json" \
  -d '{
    "inbox-id":"orders",
    "metadata":{
      "order_id":"order_82921",
      "customer_id":"cus_17"
    }
  }' \
  https://api.linje.systems/v1/reply-routes
{
  "reply-route":{
    "id":"route_...",
    "address":"r+012345...@in.linje.systems",
    "metadata":{
      "order_id":"order_82921",
      "customer_id":"cus_17"
    },
    "active":true
  }
}

No outbound migration

Use the route as Reply-To in the Resend message.

From: orders@example.com
To: customer@example.com
Reply-To: r+012345...@in.linje.systems
Subject: Order order_82921

Keep Resend templates, domains, sending code, and deliverability operations. When the customer responds, Linje returns the reply with order_id and customer_id already attached.

Decision guide

Do not add another service without a concrete reason.

Stay with Resend Inbound

You need a mailbox-style alias or general inbound automation and can own correlation.

Add Linje as a sidecar

You want managed, expiring per-object reply addresses while keeping Resend outbound.

Use Linje both ways

You want transactional sending and correlated replies behind one application boundary.

Read the complete reply-by-email guide.

Pricing

Free during preview. Paid plans start at $5/month.

Create an account and test the complete reply flow without entering payment details. Creating and keeping reply routes does not consume message usage. Each customer reply counts once when Linje accepts it; webhook retries and replay are included. After preview, choose 500 messages free, 5,000 for $5/month, or 50,000 for $25/month.

See pricing and usage details.

Self-service quickstart

Test one object-aware reply alongside Resend.

Create one route, put it in Reply-To, and verify that the response reaches the right object without a separate alias lookup.

Add replies to a Resend flow Read the API docs