Contributing to n8n through the MLH Fellowship
Tags: opensource, career, mlhgrad
Published: 2020-08-20 20:34:42

This summer, I was lucky enough to be connected to the Major League Hacking fellowship and contribute to open-source software for 12 weeks this summer. I wanted to share a bit about what I have learned this summer, and I hope that sharing my experience will encourage you to [apply](https://fellowship.mlh.io/) for upcoming sessions!

This is the first part of a series about what I have learned this summer, and here I am focusing on my contributions to my open-source project, n8n.

# My Project
I was paired with [n8n](https://n8n.io), a fair-code licensed startup providing an easily extendable workflow automation tool. ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/s1st2luihkd2yn5m4tk3.png)

Initially, my team and I set out to create new integrations (nodes) for n8n in response to requests on their community forums. I created Spotify, Gmail, and ConvertKit integrations for n8n in Typescript, and gained valuable experience working with new API and webhooks services. ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/fnme9s706jlkj0504f89.png) In addition to creating Regular Nodes (simple API integrations) for all three projects, I also created Trigger Nodes (with webhooks or pooling scripts) for Spotify and ConvertKit.

I also dove into the n8n frontend and laid the groundwork for a feature to prompt users to save their changes before navigating away from their workflow.

### Capstone Project
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/jo3e6428nd29v9y5pb0s.png)
After creating new nodes for the first 8 weeks, my teammates and I realized n8n's standardized method of programming new nodes could be automated. We spent the last 4 weeks of our fellowship creating the [Nodemaker](https://github.com/MLH-Fellowship/nodemaker), a tool for n8n developers to quickly create new nodes without worrying about the details of node creation and focus on the tricky final steps for each integration. 

By automating this process, the Nodemaker frees developers from the work of writing structural code for nodes—especially for various endpoints and request methods—, writing docs for the nodes and generating images for the docs, updating the package.json listing, fixing node formatting issues and enforcing code style guidelines, finding a relevant and properly sized node icon, placing all output files in the official repos, and uploading a sample workflow to the n8n collection. In turn, Nodemaker also frees maintainers from the work of reviewing to ensure that pull requests made by the community conform to the official n8n standards.

I led the user research and frontend development for this project, learning Vue and refining my design skills in the process.

We have [launched](https://community.n8n.io/t/nodemaker-launch/2097) the Nodemaker and are looking forward to community use and feedback!

### Summary
In addition to learning about Typescript through creating nodes, I learned about design, UI/UX, and Vue through ideating, prototyping, coding, and launching the Nodemaker.

I am extremely grateful to MLH for the opportunity to work with n8n, and to the n8n maintainers for their code reviews and feedback on the Nodemaker.

I will be focusing on the incredible mentorship I received through MLH in my next post!