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.
Membrane programs communicate with each other, you, and the outside world via a unified interface called The Graph. The Graph is a simple, yet powerful abstraction that enables quick and easy composition of functionality.
Simplicity comes from the fact that everything is a node and every node is typed (e.g. String, Int, Email, Repository, etc).
Every node in the your graph is one of these:
  • A field which can be read/queried
  • An action which can be invoked
  • An event which can be emitted

API drivers (connectors) expose their functionality as a combination of the above three primitives.
Intuitively, GET requests are mapped to fields, POST/PUT/DELETE (anything effectful) are mapped to actions, and webhooks are mapped to events.
The beauty of this approach is that you can build on top of these nodes and create your own customized abstractions which are also just more nodes in the graph. Ever wanted to combine Jira and Github to build a workflow that matches your mental model? Membrane is where you do that.
Every node in your graph is referenceable by a URL-like string called a Handle. Field handles can be queried directly or in bulk using GraphQL. Action handles can be invoked. Event handles can be subscribed/unsubscribed to and emitted.

Try APIs from the Graph Explorer.
Drag from The Graph to use programmatically.
Make your own abstractions.
Double space, oops.

Dev Blog