What is Membrane?

Stateful serverless TypeScript for internal tools.

FEATURES
EXAMPLES
example airtable to email
Example of a Program for sending an email when a table in an Airtable is modified.
Subscribe to table changes
Get modified fields
Send email with record details.
import { nodes, root, state } from "membrane";

export async function configure() {
  await nodes.table.changed.$subscribe(root.tableChanged);
}

export async function tableChanged(_, { event }) {
  const { fields } = await event.record.$query(`{ fields }`);
  const formattedFields = JSON.parse(fields);

  let emailBody = ["Table has been changed. Details:\n"];

  for (const fieldName in formattedFields) {
    emailBody.push(`${fieldName}: ${formattedFields[fieldName]}`);
  }

  const subject = "Important: Airtable table has been changed";
  const body = emailBody.join("\n");
  
  await nodes.email.send({ subject, body });
}

What is Membrane?

Stateful serverless TypeScript for internal tools.

FEATURES
EXAMPLES
Example of a Program for sending an email when a table in an Airtable is modified.
Subscribe to table changes
Get modified fields
Send email with record details.
import { nodes, root, state } from "membrane";

export async function configure() {
  await nodes.table.changed.$subscribe(root.tableChanged);
}

export async function tableChanged(_, { event }) {
  const { fields } = await event.record.$query(`{ fields }`);
  const formattedFields = JSON.parse(fields);

  let emailBody = ["Table has been changed. Details:\n"];

  for (const fieldName in formattedFields) {
    emailBody.push(`${fieldName}: ${formattedFields[fieldName]}`);
  }

  const subject = "Important: Airtable table has been changed";
  const body = emailBody.join("\n");
  
  await nodes.email.send({ subject, body });
}
Features Walkthrough
In this video we discuss 3 of the most important features of Membrane: Durability, The Graph, and Observability.
Clickable poster of the Features Walkthrough video

If you're curious about Membrane's architecture, Juan joined the devtools.fm podcast to talk through the nuts and bolts.

Communication


Enter your email for occasional updates