MEMBRANE
BETA
What is Membrane?
Membrane is a hosted TypeScript runtime specifically designed to build personal automation tools and interact with APIs more easily.
FEATURES- Durable Programs ....................................................................................................0
- Cron Jobs and Timers ....................................................................................................1
- Built inside VS Code ....................................................................................................2
- The Graph ....................................................................................................3
- Graph-based Access Control ....................................................................................................4
- Observability ....................................................................................................5
- Instantanous Deploys ....................................................................................................6
- Step Debugger ....................................................................................................7
- Custom Exit Nodes ....................................................................................................8
- HTTP Endpoints ....................................................................................................9
- Open Source Drivers (APIs) ....................................................................................................10
- Code completion ....................................................................................................11
EXAMPLES
- SMS Reminders ....................................................................................................9
- Discord Weather Bot ....................................................................................................10
- Mailchimp Alerts ....................................................................................................11
- Follow Hacker News Users ....................................................................................................12
- Airtable changes to Email ....................................................................................................13
- Twitter Bot ....................................................................................................14
- HTMX Form ....................................................................................................15
- Github Weekly Report ....................................................................................................16
- Github Action Alert ....................................................................................................17
- Github Commits on Discord ....................................................................................................18
- Track HN Jobs in Google Sheets ....................................................................................................19
- Mailchimp to airtable ....................................................................................................20

example hn follow
Uses the hn Driver to "follow" users on Hacker News and get notifications (email or SMS) when they post something new.
Set up a "cron-job" timer that invokes
check
periodically.Store "last seen" in
state
for persistence.Send yourself an text message
import { nodes, root, state } from "membrane";
const { hn, sms } = nodes;
export function setup() {
root.check.$cron("30 35 * * * *");
}
export async function follow({ username }) {
const { id, submitted } = await hn.users
.one({ id: username })
.$query(`{ id submitted { items { id } } }`);
const lastSeen = submitted?.items?.[0]?.id ?? 0;
state[username] = { id, lastSeen };
}
export async function check() {
for (const [username, { lastSeen }] of Object.entries(state)) {
const items = await hn.users
.one({ id: username })
.submitted.items.$query(`{ id }`);
const latest = (items ?? [])[0];
if (latest?.id! > (lastSeen as number)) {
const url = `https://news.ycombinator.com/item?id=${latest.id}`;
await sms.send({ message: `New HN post from ${username}: ${url}` })
state[username] = latest.id!;
}
}
}
What is Membrane?
Membrane is a hosted TypeScript runtime specifically designed to build personal automation tools and interact with APIs more easily.
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