How To Stay Up To Date With Releases Of Popular Frameworks

Tomas Trajan
Apr 3, 2018 · 7 min read
Image for post
Image for post
Original 📸 by frank mckenna

Introducing Release Butler — A Twitter Bot That Helps You To Stay Up To Date With Releases Of Popular Frontend Frameworks & Libraries!

Keeping up to date with the latest versions of your favorite frameworks is hard…

Too much of anything can be bad for you

Image for post
Image for post

The goals

Besides selfish things like providing a high quality distraction and fleeting sense of purpose, Release Butler strives to support all of you in the following cases…

  1. Reduce repetitive workflow when you manually check GitHub repositories for the new versions of used libraries
  2. Decrease nagging FOMO when you didn’t check Twitter for a whole day and fear that you may have missed a release announcement by the author of the library you’re interested in
  3. Empower developers by providing them with a tool that enables them to generate beautifully looking changelogs which can be used in their blog posts, presentations or just shared with others
  4. Ability to fill the role of the person who breaks the news to the rest of the team is optional 😉

How does it work?

Release Butler has a list of GitHub open source projects he is interested in.

Image for post
Image for post
Some of the projects currently supported by Release Butler

He checks their repositories every ten minutes to figure out if somebody created a new release. If yes, Release Butler grabs corresponding changelog, makes it beautiful and posts it on Twitter…

Example of a tweet made by Release Butler, this time for Webpack v4.4.0

Follow Release Butler on Twitter to stay up to date with releases of popular frontend frameworks & libraries !

Anatomy of a tweet

Every tweet made by Release Butler is kept simple to focus only on what really matters… Besides obvious things like project name, version and changelog image, it also contains visual emoji-powered indicator for the release type…


Additional functionality

Get a changelog of any version of your favorite open source project as a beautiful image and use it in your blog post, slides or tweet

All you have to do is to select a changelog type, provide repository name and version you’re looking for...

Image for post
Image for post
Get a beautiful changelog of any version of any GitHub OSS project directly on website

Form above will yield following changelog with transparent background. That way it is possible to use it in various situations with wide range of fitting backgrounds!

Image for post
Image for post
Changelog image created by Release Butler

The inspiration for this functionality came from The app that enables creation and sharing of amazingly looking code snippets. It is super useful and it definitely changed the way people share code snippets on Twitter.

Release Butler aims to help people share beautiful changelogs with ease!

The stack

The project started as a quick Node hack and simple static website with just the right amount of vanilla JavaScript sprinkled on the top…

I guess some of you are curious about how does it work under the hood.On the Node side, the heavy lifting is done by puppeteer which is best described as…

Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome or Chromium — Puppeteer GitHub repository

In contrast to originally chosen webshot (backed by dead PhantomJS💀) Puppeteer proved to be much more up to the tasks at hand. Stuff like injecting custom styles and executing arbitrary scripts on the desired page to make it look perfect before taking a screenshot proved to be very valuable!

A dedicated post about biggest takeaways and lessons learned is coming soon

The biggest pain point

The “quick Node hack” approach to the building of the prototype proved to be quite painful earlier than expected. One week in, the need for refactoring of the most of the services became very obvious. And as many of you have guessed already…

Refactoring of plain old JavaScript without the help of Typescript compiler is just painful

Image for post
Image for post
Oh no, repo is undefined after renaming some of the arguments 3 folders away… Wouldn’t happen with Typescript!

Note to self ✍️ — Open source releases and changelogs can be a huge mess

Soon after the start of development of Release Butler it became clear that changelogs come in many, sometimes wildly different formats.

Let’s start with the best case scenario. The projects which use built-in GitHub release functionality. Every release is accessible on the dedicated url which maps to the corresponding git tag. Amazing!

Other projects maintain their own files. The variability here is potentially limitless. Content of the file can be generated by a 3rd party library, by hand or a combination of both. Markup and styles can also vary considerably even in the single file over time. The file also contains whole version history which has to be removed because we’re only interested in the one particular release and the list of potential issues and edge cases goes on and on…

Even though it seems to work for all currently supported projects it is not hard to imagine that some releases may lead to undefined behavior and would need additional tweaking. To summarize…

World would be a much better place if everybody just used built-in GitHub releases functionality

The roadmap

I am happy to say that Release Butler is currently in stage when it can definitely provide value to its users. That being said there is always lots of space for improvement.

More libraries

I am definitely interested in adding more popular open source frameworks and libraries. It may be a bit tricky to strike a good balance between covering all the interesting libraries and not ending up spamming people so feedback is more than welcome!

Themes and formatting improvement

Release Butler currently supports only one theme for generating changelogs. It looks pretty sweet but different people may have different tastes so why not indulge them in the way that suits them the best😉

Promoted libraries

A large number of developers are interested in the most popular frontend frameworks like Angular, React or Vue so it is only natural to include them by default.

On the other hand there are also companies like Atlassian or Salesforce with their own open source initiatives ( think UI frameworks and component libraries ) which are mostly targeted to their specific ecosystems. Promoting releases of similar libraries could be viable under the right conditions.

Please feel free to shoot me a message to Tomas Trajan or @tomastrajan in case you are missing a features or have ideas about how to enhance Release Butler.

That’s it for today!

I hope Release Butler can help you to stay up to date and that you will give it a try by following it on Twitter! Please support this article with your 👏👏👏 to help it spread to a wider audience 🙏.

And never forget, future is bright

Image for post
Image for post
Obviously the bright future!

Tomas Trajan

Written by

🅰️ Google Developer Expert for Angular #GDE ❤️ ️Typescript 🛠️ Maker of the @releasebutler and Medium Enhanced Stats 🌞 Obviously the bright Future

Tomas Trajan

Written by

🅰️ Google Developer Expert for Angular #GDE ❤️ ️Typescript 🛠️ Maker of the @releasebutler and Medium Enhanced Stats 🌞 Obviously the bright Future

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight.

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox.

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month.

Get the Medium app