What is Membrane?
FEATURES
- Built inside VS Code ............. 0
- Cron Jobs and Timers ........... 1
- Durable Programs ................. 2
- The Graph ...................... 3
- Graph-based Access Control ....... 4
- Observability .................. 5
- Instantanous Deploys ............. 6
- Step Debugger .................. 7
- Custom Exit Nodes ................ 8
- Open Source Drivers (APIs) ....... 9
- Code completion ............... 10
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-google-sheets-hn-jobs
Set up a cron-job that invokes
watchJobs
every hourUse the Hacker News Driver to fetch the top jobs.
You can easily append new data using the Google Sheets Driver.
import { nodes, root, state } from "membrane";
export async function configure({ keywords }) {
state.keywords = keywords;
root.watchJobs.$cron(`0 0 * * * *`)
}
export async function watchJobs() {
const topStories = await nodes.stories.items.$query(`{ title url time }`);
const keywordArray = state.keywords
.split(",")
.map((keyword) => keyword.toLowerCase());
const matchedStories = topStories.filter((story) => {
if (!story.url) return false;
const title = story.title?.toLowerCase();
return keywordArray.some((keyword) => title?.includes(keyword));
});
const data = matchedStories.map((story) => {
const date = new Date(story.time! * 1000).toLocaleDateString("en-US");
return [story.title, date, story.url];
});
await nodes.sheet.append({ values: data });
}
Dev Blog
- 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.