Tuesday, October 6, 2015

New website and SRI support

You might have noticed our new website and logo.
It took a while but its finally live.

Some of the changes that happened:
  • New design and logo. More pages added explaining our features
  • Written from scratch on node.js. No more PHP
  • Smart search powered by Algolia
  • A big focus was made on our combination feature. You can now visually create your combined URLs using the "Collection" functionality
  • Fully open sourced and updated repo https://github.com/jsdelivr/www.jsdelivr.com
  • Added a sponsors page to encourage to contributions to jsDelivr 
  • A debug tool was added to help people find potential issues
  • Statistics were added. We tried to add as much information as we could with more coming soon.

Subresource Integrity (SRI)

Along with the above changes we also added SRI support into our "Collections" functionality.
SRI makes sure that the file loaded from the CDN is the one you expect and was not modified in any way. This protects your site from malware and other potential security risks.
To generate SRI links on jsDelivr all you have to do is to select the files you want to use and then go to "Collections" and select the "SRI" option.

If you noticed one file doesn't have an SRI. Thats because Chrome has a buggy implementation that breaks files containing UTF-8 characters. This bug is not present in Firefox Developer Edition which also supports SRI, but to ensure a smooth experience for all users we decided to temporary stop generating hashes for those files.

Also make sure you never manually generate SRI hashes for dynamic jsDelivr files. It is only compatible with 100% static files.
For example our version aliasing feature is not compatible because it will update the contents of the files changing the hash and preventing the file from loading on your site.

I hope you liked it!
Next we plan updating our API to v2 with a more stable backend and more functionality.

Feel free to join our project and contribute, everyone is welcomed.

Tuesday, January 27, 2015

KeyCDN joins jsDelivr

KeyCDN is a CDN provider based in Switzerland with a global anycast network and lots of international clients. Even though they are a fairly new company (2012) they already have all the features we require from a core CDN provider such as SPDY, custom SSL+CNAME and Cedexis community data, something that a lot of big players still don't offer.

Today we announce that they are joining the jsDelivr platform and from now on will be serving traffic to all of our users. (commit)
KeyCDN along with MaxCDN and CloudFlare will be a core CDN which means that our load balancing algorithm will treat them equally in all countries and will base the selection strictly on performance. Core providers are the backbone of our network and we have strict requirements to ensure our superb performance and uptime.

KeyCDN Network Map

With the inclusion of KeyCDN we now get a few new locations such as Valencia in Spain and Moscow in Russia plus lots of POPs in existing locations that will offer us better peering with local ISPs increasing the performance overall. KeyCDN also plans adding lots of other locations that we don't have! Cant wait for Mexico!

But mostly we are excited for the new Moscow POP location, this will greatly improve our performance in Russia and surrounding countries such as Ukraine. We have lots of users over there with major websites such as vesti.ru using us.
jsDelivr Performance in Russia

Welcome KeyCDN!

Monday, December 15, 2014

New sponsor: NSONE

Many of you might know that up until now, jsDelivr was using Akamai to host our DNS.

For a time, this was a usable solution, but unfortunately we realized that the performance of Akamai’s DNS does not meet our requirements. We get millions of requests every day from all countries around the globe and need the best possible performance for every single user that we serve.

That’s why we contacted NSONE. They run an anycasted DNS network that’s in every major market and spans six continents. They assure me they are working on a POP in Antarctica too. :)


NSONE services companies with distributed infrastructures that need a flexible way to route their traffic, and beyond being consistently among the fastest DNS providers on the planet, they also focus on the quality of the answers they return to make sure your users are routed to your application infrastructure effectively.

Aside from just having great performance, NSONE offers several unique features that made them really stand out to us. For instance, they developed the “Filter Chain” to easily configure complex traffic routing algorithms.  NSONE also offers simple ways to ingest and process real-time telemetry about your systems and the Internet, so they can route eyeballs to your optimal application endpoint based on metrics that matter to you, not just using geography.

After some testing, NSONE seemed like a perfect fit for jsDelivr and we’re happy to announce that NSONE is now one of our major sponsors. They will help jsDelivr grow bigger and become even faster than before.

NSONE's CEO, Kris Beevers, says, "As purveyors of a faster Internet, CDN aficionados, and generally open source-loving humans, we’re excited to sponsor jsDelivr and support the OSS community."

Monday, December 8, 2014

jsDelivr news #3

Its been a while but I wanted to share some of the latest news about jsDelivr.

  • We are talking with multiple CDN providers regarding a partnership with jsDelivr.We are heavily invested in the performance of our platform so we are always looking for more providers to add to our load balancing system.
  • We plan on adding multiple new locations in Asia. This includes 9 locations in China mainland(!) and an other 9 locations in various countries of Asia. (Not CloudFlare) The main blocker right now is the ICP license required by the Chinese government. We are doing our best to get it.
  • A new POP location in Madagascar went live. Its sponsored by an ISP provider called Telma after they noticed that lots of their users are hitting our servers but not getting the performance they deserve. Here is a chart with the performance improvement of jsDelivr in Madagascar
  • A new feature is now in beta testing. jsDelivr can now act as a CDN for each and every plugin currently hosted in the WordPress plugin directory. This means that any WP developer can add an option to load his files from our CDN to his plugin. Users get a faster website and developers a new cool feature, win-win. More info https://github.com/jsdelivr/jsdelivr/issues/2632
  • We are also working on our new website. The progress is slow due to lack of funds and resources so if you are a developer or designer consider contributing in our repo https://github.com/jsdelivr/beta.jsdelivr.com
  • Developers and companies that have their projects on jsDelivr can now get access to a new function of jsDelivr that allows the purging of individual files hosted on our servers. This is useful if you want your users to get instant access to new versions on URLs using version aliasing or /latest/. For security reasons the documentation for this feature is private so you will need to contact us to get access.

We have lots of new stuff planned for the future so make sure you follow jsDelivr and jimaek on twitter. And as always if you want to contribute with coding/design/funds feel free to contact us.

Monday, November 10, 2014

Load balancing algorithm open sourced!

You probably have been wondering how jsDelivr does load balancing between CDNs. Here is a good blog post that I wrote for Mozilla that explains what happens in the backend  "jsDelivr – The advanced open source public CDN".

The only thing missing was the actual code. Well I am happy to announce that in collaboration with Cedexis we are open sourcing our DNS application and the full load balancing code.
The community is now free to read the code and purpose modifications to improve our logic and the performance of the whole CDN.
Check out jsDelivr's load balancing algorithm at Github right now.

And of course Cedexis will continue helping out and improving the code as they release new features and improvements to their platform. Performance and stability will always be our number one priorities. Its something that we have in common with all of our sponsors including Cedexis, MaxCDN and CloudFlare.

With this move we removed one of the biggest "black boxes" of jsDelivr and that's only the start. We will continue to increase our transparency to ensure the trust of our community and inspire more people to become contributors and help us out with all kinds of interesting problems that need solving.

Friday, August 1, 2014

Velocity New York 2014 - Free pass and discounts

I am happy to announce that jsDelivr is now one of the media partners of Velocity conference in New York.

The O’Reilly Velocity Conference, happening September 15-17 in New York City, is the place where DevOps, web operations, and performance professionals (from Fortune 500 companies to exciting startups) gather for a legendary learning and networking experience that explores why a faster, stronger web is no longer an option, but a necessity.

Hear from the best speakers in the industry, who'll delve into topics ranging from hardcore math and statistics to monitoring, clustering, analytics, and organizational culture.

Attend Velocity, and you’ll view your work, the technologies you use, and your organization in completely new ways. Use code JSDR20 to save 20%.

We will also be giving away 1 free two-day conference pass (excludes tutorials day – the first day of the tutorial).
To enter the contest simply tweet this blog post with the hashtag #jsdelivrvelocity and one random person will be selected.
The contest ends in August 20th and we will contact the winner with a mention in Twitter.

Saturday, June 28, 2014

Public CDN auto-updated

Introducing libgrabber!

I am happy to announce that jsDelivr is now in process of becoming fully automated.

libgrabber is an app that runs on our servers and can keep projects hosted at jsDelivr updated automatically without requiring the author or any contributors to manually process and upload the new versions.
This is very important as the repo is quite heavy and require people to download it is a bad idea.
Now our bot can take care of all the dirty work.

And it requires no modifications in the author's repo. All is needed is a valid update.json file in jsDelivr's repo inside the project that we want auto-updated.

Sources that libgrabber supports:
  • Github - Tagged versions
  • npm
  • bower
Here is an example update.json file

  "packageManager": "github",
  "name": "morris.js",
  "repo": "morrisjs/morris.js",
  "files": {
    "include": ["morris.css", "morris.js", "morris.min.js"]

That's it, morris.js is now auto-updated and all future versions will be submitted automatically by our bot. The config also allows the user to configure in detail the production files by using a mix of include and exclude rules.

Here is libgrabber in action updating the project domtastic to 0.7.4.

We plan to expand libgrabber in the feature to achieve an even greater level of automation.
In the meantime you can help us develop the project or add update.json files to projects that dont have any.