What is Membrane?

Stateful serverless TypeScript for internal tools.

FEATURES
EXAMPLES
example mailchimp to airtable
Adds a new record to an Airtable Base when a new Mailchimp subscriber is added.
Subscribe to event.
GraphQL query
New Airtable record.
import { nodes, root, state } from "membrane";

export async function configure({ audienceId, tableId }) {
  const audience = await nodes.audiences.one({ id: audienceId });
  await audience.subscriptions.$subscribe(root.handleEvent);

  state.table = nodes.tables.one({ id: tableId });
}

export async function handleEvent(_, { event }) {
  const data = await event.member.$query(
    `{ email_address, status, timestamp_opt }`
  );

  const record = {
    email: data.email_address,
    status: data.status,
    timestamp: data.timestamp_opt,
  };
  await state.table.createRecord({ fields: record });
}

What is Membrane?

Stateful serverless TypeScript for internal tools.

FEATURES
EXAMPLES
Adds a new record to an Airtable Base when a new Mailchimp subscriber is added.
Subscribe to event.
GraphQL query
New Airtable record.
import { nodes, root, state } from "membrane";

export async function configure({ audienceId, tableId }) {
  const audience = await nodes.audiences.one({ id: audienceId });
  await audience.subscriptions.$subscribe(root.handleEvent);

  state.table = nodes.tables.one({ id: tableId });
}

export async function handleEvent(_, { event }) {
  const data = await event.member.$query(
    `{ email_address, status, timestamp_opt }`
  );

  const record = {
    email: data.email_address,
    status: data.status,
    timestamp: data.timestamp_opt,
  };
  await state.table.createRecord({ fields: record });
}
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