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…
To give you a little bit of background story, I have been traveling around the world for more than half a year now. And let me tell you, the old saying is true…
Too much of anything can be bad for you
Realizing that, I found myself looking for something to keep me busy before going fully insane and that something became Release Butler😬😂
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…
- Reduce repetitive workflow when you manually check GitHub repositories for the new versions of used libraries
- 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
- 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
- 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.
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…
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…
- 🏛️ STABLE RELEASE 🎉🎉🎉
- 🏗️ RELEASE CANDIDATE
- 🚧 BETA PRE-RELEASE
- 🚧 ALPHA PRE-RELEASE
- 🤷 OTHER RELEASE
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
Besides being a Twitter bot, Release Butler also comes with a website that enables you to get a changelog of any version of any open source library hosted on GitHub.
All you have to do is to select a changelog type, provide repository name and version you’re looking for...
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!
The inspiration for this functionality came from carbon.now.sh. 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!
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…
I use Typescript in the most of my projects by default. This small journey to the barbaric past proved that the Typescript is in fact THE WAY to go. I guess I will be migrating to Typescript as soon as I am done with all the marketing stuff 😅
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 Changelog.md 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 Changelog.md 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
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.
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😉
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.
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
If you made it that far and feel like you want to learn something more about interesting frontend topic, feel free to try some of the following articles 😉