Develop in prod
A new and powerful way to quickly build internal tools, automations, admin panels, and much more.
Durable JavaScript
Dramatically simplify development of stateful applications.
Membrane programs run in a durable runtime, tightly integrated with the OS to safely and transparently persist memory changes.
There's no need to store data in a database (although you can!). Any JavaScript object can persist indefinitely because Membrane's execution timeout is effectively ♾️.
state
.import { state } from "membrane";
state.notes = state.notes ?? []
export async function saveNote({ args }) {
state.notes.push(args.note);
}
Observability
The most time-consuming part of bugfixing can often be reproducing the issue in the first place. We didn't like that, so we fixed it!
In Membrane, every side-effect is first written to the program's write-ahead log and then processed. HTTP requests and responses, source code changes, queries, etc are all program side-effects.
This log gives you clear understanding plus the ability to replay history so that reproducing bugs is a walk in the park.
Membrane logs are not just text output; they are the source of truth!
The Graph
In Membrane, each program defines a graph API to expose its data and functionality to other programs. You can think of the graph as objects that can be referenced by other programs, allowing you to easily compose functionality.
In this video we showcase the graph in a quick tour of the Membrane IDE.
EXAMPLES
String
, Int
, Email
, Repository
, etc.- Fields: Nodes which can be read/queried.
- Actions: Nodes which can be invoked.
- Events: Node which can be emitted.
GET
requests are mapped to fields, POST/PUT/DELETE/etc
requests (anything effectful) are mapped to actions, and webhooks are mapped to events.EXAMPLES
If you're curious about Membrane's architecture, Juan joined the devtools.fm podcast to talk through the nuts and bolts.
- 2025-01-31 Changelog 0.17 In development: dashboard, sys-db, LLM copilot
- 2025-01-24 10 unhappy users Scaling Membrane, or anything
- 2025-01-18 Membrane + Hono API router Pete's onsite hackathon project
- 2025-01-17 Exploring Browser Automation Thomas's onsite hackathon project
- 2025-01-10 Changelog 0.16 Type inference & more schema editor features
- 2025-01-09 Typewriter effect with pure CSS Smooth loadin'
- 2025-01-03 Changelog 0.15 Revamped docs, IDE polish
- 2024-12-20 Automating changelogs Automating Membrane changelogs with Membrane
- 2024-12-13 Changelog 0.14 Custom IDE theme; collapse all types
- 2024-12-11 Stripe subscription webhooks A program to handle Stripe webhooks
- 2024-12-10 Slack signup alerts A program to send signup alerts on Slack
- 2024-12-06 Changelog 0.13 Program REPL, simplified IDE
- 2024-11-22 Changelog 0.12 Renaming & deleting programs; faster TS diagnostics
- 2024-11-15 Changelog 0.11 IDE layout updates; search & explore packages by user
- 2024-11-08 Changelog 0.10 Saving editor settings; HTTP endpoint previews
- 2024-11-01 Changelog 0.9 Program cloning; embedded docs in IDE
- 2024-10-25 Changelog 0.8 Package publishing; Navigator action logs
- 2024-10-18 Changelog 0.7 Simpler onboarding, new templates; better types
- 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