OctoLinker v5.0.0 Release Notes

Release Date: 2019-06-06 // over 2 years ago
  • 👍 Real HTML links for better accessibility and speed!

    🚀 I'm super thrilled about this release, which kept me busy for months. I learned an awful lot about how to refactor a code base while keeping it fully operational. Over the course of 18 months, 75 Pull Requests (mostly small) landed in the master branch.

    💻 Browser extension

    🚀 This major release comes with one notable change: In the previous version, all links were lazy loaded, which means OctoLinker started processing and resolving links after you clicked a link. This made it really tricky to apply the typical options you'd expect on a link like right-click and open in a new tab/window, middle-click or hover over those links to see the target url.

    👀 Wouldn’t it be nice if OctoLinker links would behave like regular links? Well, guess what? OctoLinker now processes all links in the background and inseerts “real” hyperlinks which results in immediately redirects. We’re also leveraging GitHub’s Tree API to fetch a tree of repository file structure to resolve internal links at blazing speed. That sad, in order to use OctoLinker for private repositories you need to add a GitHub token. OctoLinker will prompt a notification in such a case.

    As I mentioned, we’ve completely reworked the way we resolve links. This will enable all kind of interesting features in the future, so stay tuned!

    🆕 New permissons

    🚀 Since a few years, all external dependencies are resolved through our [OctoLinker API](https://github.com/OctoLinker/api. It’s basically a reverse proxy with caching. Until now this API was deployed on Heroku https://githublinker.herokuapp.com/ (GitHubLinker was the previous name). With v5 we use ZEIT now and therfore the URL changed to https://octolinker-api.now.sh. If you have any questions or concerns please leave a comment here.

    OctoLinker API

    The OctoLinker API also got some enhancements of its own. Since a few years, all external dependencies are resolved through our OctoLinker API. It’s basically a reverse proxy with caching. Until now this API was deployed in a single region. Because of the lazy loading approach, the API was never invoked until the user clicked on a link. However, now that we prefetch all links in the background, traffic will increase massively. Just the Google Chrome extension counts over 20k active installations. Through shadowing production traffic we figured out that the new OctoLinker API will r esolve approximately 245k dependencies per day.

    I'm extremely excited to announce two new sponsors!

    ZEIT now enables on demand horizontal scaling across many regions in a serverless environment. I worked with other cloud vendors before, but none of them was nearly as easy to use as ZEIT now. It’s a really impressive developer experience. Porting our existing Hapi API to a serverless architecture went pretty well and quickly.

    To reduce network calls to third-party providers, such as npmjs.com, getcomposer.org, rubygems.org and more, we leverage RedisGreen high performance as a caching layer. RedisGreen supports OctoLinker with five dedicated servers and high availability in five regions.

    👍 Thanks both, @ZEIT and @redisgreen for supporting us!


    🚀 To celebrate the release, we have a new website https://octolinker.now.sh.

    Screenshot 2019-06-05 at 23 23 12

    👍 Social Support

    👍 Any support on your social profiles would be awesome. Liking, retweeting, or even posting your own experiences would be much appreciated! If you're looking to support our open source work, head over to our Open Collective page.


    As always, if you come across any issues or if you have feedback to offer, please let us know. If everything is working great, that's also nice to hear.

    ⚡️ Thank you for making it all the way to the end of this update.