Analyzing Github Issue Reactions using Node.js, Pipedream, Google Sheets, and pandas

At Pipedream, we use Github Issues to track feature requests, bugs, and new app integrations.

Anytime a user has a new idea, we send them to the roadmap to make sure the idea gets captured.

Anytime someone suggests an idea that’s already been captured, we send them to the roadmap to add a reaction (a 👍, ❤️ or 🎉) to the issue.

We’re diligent about pushing people to the roadmap because we want to prioritize the most requested items. Reactions are the best way to collect that data.

Unfortunately, Github doesn’t provide high-level dashboards on issue reactions. …


Last year, I taught a Data Analytics bootcamp at UC Berkeley Extension. In 6 months, students who’d never programmed before learned Excel, Python, pandas, JavaScript, D3, basic machine learning, and more.

What would you guess was the toughest thing for most students to learn? Machine learning? JavaScript and D3?

Deploying a Flask app to Heroku.

That’s right Sean, it’s not simple at all.

I empathize. When I first learned to program, and got through the pain of setting up my environment, it was easy to iterate. I used a REPL to experiment:

>>> name = "World"
>>> print(f'Hello, {name}')
Hello, World

or wrote a script that I could…


Ingest, transform and route HTTP requests with no server, and no cloud resources. Just Node.

At Pipedream, we process webhooks from every service that provides them. We usually write (Node) code to transform and act on these webhooks, but don’t want to run an HTTP server or serverless stack for each one.

We developed Pipedream in part to solve this problem, so I’d like to show you what Pipedream is and how you can use it to run Node code on any webhook or HTTP request.

First — what are webhooks, and what can you use them for?

If you’ve ever tried to get data out some app into your system, you’ve probably heard of webhooks.

Stripe, like many services, supports both webhooks and an API

Webhooks enable services like Stripe, Github, or Google to push data…


Website scraping is a common problem with a common toolset. Two approaches dominate the web today:

  • Automate a browser to navigate a site programmatically, using tools like Puppeteer or Selenium.
  • Make an HTTP request to a website, retrieving data on the page using tools like Cheerio or BeautifulSoup.

The first approach — driving a real browser programmatically — is typical for projects where you’re running automated website tests, or capturing screenshots of your site.

The second approach has limitations. For example, Cheerio “is not a browser” and “does not produce a visual rendering, apply CSS, load external resources, or execute…


We love Airtable here at Pipedream. But Airtable lacks one killer feature — webhooks.

We took advantage of Airtable’s Slack notifications and built a way to send webhooks to an HTTP endpoint every time a record is created or updated in a base. It takes 10 minutes to setup and it’s free.

For example, if you create this record:

you’ll receive a webhook notification to your HTTP endpoint with a payload like this:


Building your own Python app and deploying it to PyPi can seem daunting. It’s not! If you know Python and have a a little familiarity with the command line, you can get an app out the door in a day.

I recently built a small tool to solve for a simple use case: I want an easy way to create new AWS Budgets from the command line. I’ve left some AWS services running that 1.) were more expensive than I thought or 2.) that I’d forgotten to turn off. Budgets make sure this never happens.

I’ll be using code from…


Have you ever been in a meeting that could have been an email? 🙋‍♀️🙋‍♂️

I’ve attended terrible meetings. I’ve even led some of them. In retrospect, there was probably a better way to arrive at the decision we were there to make. These meetings could have been shorter. Half the people didn’t need to be there.

But I’ve also been to meetings where we made decisions in 30 minutes that we’d discussed for weeks over email. There was no substitute for the meeting: we needed to be in the same room to talk about hard issues and make progress.

I’m…


First: if the letters “RSS” don’t mean anything to you, read this first.

I use AWS a lot and like to keep track of a few key updates from the platform:

  • New features
  • Security bulletins
  • Service health / incidents

I didn’t have a good way to keep track of new features in a timely manner and in a single place. AWS publishes a huge number of incremental updates to products daily and it’s easy to miss really cool ones. Separately, since service incidents and security bulletins might require immediate action, I wanted to get them in Slack with other alerts.


Have you ever been in an hour-long meeting that should have taken 15 minutes?

Google Calendar is partly to blame (those of you on Outlook aren’t safe quite yet — read on). Google sets your default event length to 60 minutes. By clicking on a start time, Google sets the end time an hour later:

When you keep this default, you’re starting from the position that you need an hour of your participants’ time for every meeting you hold.

You should change this default to 15 minutes, the shortest time Google allows. We believe that meetings should be as short…


This year, I’ve set a goal to write more, so a post about goals seemed like a good way to start.

It’s difficult to wish goals into happening. You’ve got to have a system for accomplishing them. I’ve refined a few strategies over the years that help me tackle goals, and I’m hoping these might help you achieve your goals in 2018, too.

1) Break it down and make it concrete

Yearly goals seem daunting. I’ve set a goal to run 1,000 miles in 2018. On its own, that number sounds large. But it’s only 19 miles a week. As much as I love running, that’s achievable.

For…

Dylan Sather

Building https://pipedream.com . I love making programming simple for beginners and experts alike!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store