MEMBRANE
BETA
What is Membrane?
Stateful serverless TypeScript for internal tools.
FEATURESEXAMPLES
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.
FEATURESEXAMPLES
Features Walkthrough
Communication
- 2023.08.20 Progress Update #3 Simpler function signatures, built-in Google auth.
- 2023.08.13 Progress Update #2 Windows support and OOM handling.
- 2023.07.30 Progress Update #1 Internal logging architecture, improved HTTP UI.
- 2023.07.14 Progress Update #0 Exit nodes and Program Replays.
Enter your email for occasional updates