Join Discord

Enter your email to get updates
What is Membrane?
Membrane is a hosted TypeScript runtime specifically designed to build personal automation tools and interact with APIs more easily.
FEATURES
EXAMPLES
example-github-discord-tracker
Send a Discord message when a commit is pushed to Github.
Save repository and channel information in state
Subscribe to event
Send message to Discord
import { nodes, root, state } from "membrane";

export async function configure({ discordUrl, repo }) {
  const [user, repository] = repo.split("/");

  state.discordUrl = discordUrl;
  state.repository = repository;
  state.user = user;

  await nodes.github.users
    .one({ name: user })
    .repos.one({ name: repository })
    .pushes.$subscribe(root.handlePushEvent);
}

export async function handlePushEvent(_, { event }) {
  const res = await event.commit.$query(
    `{ message, html_url, author { login } }`
  );

  const body = {
    username: "Github alert",
    content: `${res.author.login} pushed to 
      ${state.user}/${state.repository}: - 
      ${res.message} (${res.html_url})`,
  };

  await fetch(state.discordUrl, {
    method: "POST",
    body: JSON.stringify(body),
    headers: {
      "Content-Type": "application/json",
    },
  });
}
Install From VS Code
Dev Blog