After a long hiatus, the LoopBack Blog has gotten a new home! Learn how it came to be and how we managed to modernise blogging stack along the way.
As part of the planning for LoopBack moving to OpenJS Foundation, there have been discussions around finding a new home for the blog, parting from the strongloop.com web site. A few alternatives had brought up, such as having the blog posts as part of the loopback.io repo, using a third party blog site and creating a blog site in a separate repo.
Coming Up With a Plan
Putting the blog posts in the loopback.io repo is a natural progression, since all the documentation and text-based content will be in the same repo. The concern is that is Jekyll-based. Although it worked fine and integrated well with GitHub Pages, many of the maintainers were not well-versed in the world of Ruby. This was compounded by shell scripts that pulled data from other Git Repositories and modified the site as part of the build process. Hence, a lot of time was spent trying to understand how the website was put together and figuring out the best way to tweak it to integrate the new blog.
The "Strong Blog" was also written with Jekyll and hosted on GitHub Pages. Hence lifting and shifting was a real possibility that we contemplated. However, the slow build times and the maintainers' unfamiliarity with Ruby and Jekyll meant that we realised that the website's current stack wasn't worth keeping around in the long run. At the same time, performing a full migration of the website, documentation, and blog in one go was too daunting of a task for the maintainers who were already working on the project on their own time.
The idea of using a third-party service such as Medium was also considered. However utlimately, the lack of control over the interface, the inability to place it in the same domain name as the main website and documentation, and the frustration that stem from a reader being forced to use a third-party service meant that it was quickly off the table.
As a result, we decided to come to a compromise.
Picking A Blogging Stack
Thanks to the amazing work done by Diana, all of the LoopBack 4 blog posts from 2019 and 2020 were migrated to Docusaurus. With her work, we were able to quickly build and see the new blog coming together with all of the past blog posts populating the blog.
Merging Jekyll and Docusaurus
When we started building the blog, we hosted it on GitHub Pages in its own Git Repository and served it in its own sub-domain. This allowed us to quickly build and patch any bugs that may have cropped up. However the end-goal was to host it under the same domain as the main website and documentation: https://loopback.io/blog. Hence, we had to create a solution which merged the new blog with the exsitng website codebase.
This solution? A shell script!
Since we already had a precedence for using shell scripts to pull in data from
other Git Repositories, I've decided to write one to do the same thing, but this
time, specifically for the blog. This script clones the
loopbackio/loopback-blog Git Repository,
generates the blog's build artifacts, and copies it over to the
of the Jekyll website. There's additional logic in there to make it more
fool-proof and less verbose but in essence, that was what it did - Clone, build,
and copy. You can also view the
yourself if you'd like to see how it was done. Over time, we hope to refine this
further and make it more reliable, such as using Git Submodules instead of a
clean clone on every build.
As it stands, we now have a blog that all of the maintainers can now contribute to. With this change, we now have revived a new way for us, the maintianers, to engage with our community and we hope that the blog posts can complement the existing documentation and community channels such as Slack, GitHub Discussions, and the mailing list.
Upcoming Blog Series: Maintainers' Testimonial
With the launch of our new blog, we're excited to announce an upcoming blog series where the maintainers can share their expriences and journey in adopting LoopBack 4. Through this series, we hope to share with the community the unique perspectives of those who work closely on LoopBack 4, not only as users but as maintainers as well.