MEMBRANE
alpha
What is Membrane?
Stateful serverless TypeScript for internal tools.
FEATURESEXAMPLES
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?
Stateful serverless TypeScript for internal tools.
FEATURESEXAMPLES
Features Walkthrough
In this video we discuss 3 of the most important features of Membrane: Durability, The Graph, and Observability.
If you're curious about Membrane's architecture, Juan joined the devtools.fm podcast to talk through the nuts and bolts.
Communication
- 2024-10-04 Changelog 0.6 IDE text selection; GitHub, Anthropic driver upgrades
- 2024-09-27 Changelog 0.5 Better npm support; package sharing upgrades
- 2024-09-13 Changelog 0.4 Navigator file explorer; share page improvements
- 2024-09-06 Changelog 0.3 Support npm package types; Logs back navigation
- 2024-08-30 Changelog 0.2 Logs UI upgrades and better onboarding UX (examples)
- 2024-08-23 Changelog 0.1 Improved Navigator context menu and driver install UX
- 2024-06-19 Public Roadmap A Membrane program to share what we're working on
- 2023-09-20 Progress Update #3 Simpler function signatures; built-in Google auth
- 2023-09-13 Progress Update #2 Windows support and OOM handling
- 2023-08-30 Progress Update #1 Internal logging architecture; improved HTTP UI
- 2023-08-14 Progress Update #0 Exit nodes and Program Replays
Enter your email for occasional updates