I just came up with a pretty good idea (if I may say so myself). As some of you "insiders" may be aware, it is a challenge getting compressed CSS + JS files working correctly on all server environments. In the forthcoming beta v0.9, we have further consolidated all javascripts into a single compressed JS file for the benefit of "critical render path" and optimal pagespeed. Now we will have a single JS and a single CSS file that basically make up the entire X3 application on the frontend side. These files load before X3 runs, and it is paramount that they are compressed and loaded as fast as possible ... Uncompressed they weigh a total of 660kb, but compressed they load at 170kb total ... That's almost 400% compression!
Content Delivery Network (CDN) to the rescue!
So how about we serve these important X3 core asset files from a CDN (content delivery network) service instead of self-hosted? We would use a super-powered CDN like JSDelivr, which offers clear advantages:
Blazing Fast
JSDelivr runs from content delivery networks Maxcdn and Cloudflare to provide blazing speeds to static assets.
Cache and Geolocation
CDN networks serve resources from multiple data-centers around the world, meaning any visitor in any location will be served the files from the closest data-center in the network. This will speed things up additionally!
Parallel Loading
Since the resources are loaded from a separate host (CDN), the visitors browser can load more resources in "parallel", ultimately making the page load faster.
Optimize Your Hosts Server Load
Since the CDN entirely handles the process of compressing and serving the assets, your own host will be free of this burden and can focus on other processing tasks.
Host Problems Solved
Real-time compression of CSS/JS requires some specific modules and rules enabled on your host. Although most servers are setup correctly to deal with this, I have noticed many host don't even have mod_deflate and/or it does not work properly. Using a CDN would make this an issue of the past!
Bonus: Common Cached Resource
An additional bonus to this, is that since the X3 assets become "common" resources hosted from the same URL, they will cache in the visitors browser and can be re-used for multiple X3 websites. For example, if a visitor already viewed our demo gallery and then visits your X3 website, the X3 assets will already be cached in the visitors browser so your page will load faster.
* We will add a toggle setting that allows you to load self-hosted assets if you for some reason desire that instead.
---
* I am not really asking any questions here, as I just got a bit excited and wanted to note everything down while I had the idea. Feel free to comment though
Some related links about CDN (content delivery networks) for those who are interested in understanding:
https://github.com/jsdelivr/jsdelivr
http://www.jsdelivr.com/about.php
http://www.cdnreviews.com/
http://mashable.com/2014/12/22/best-con ... -networks/
http://premium.wpmudev.org/blog/top-cdn ... ngly-fast/
---
Also for the record, we are working on some implementation techniques so you can plug your X3 into a CDN (free or premium), so it will serve all your images faster and more effectively (not only JS/CSS assets). This is a bit tricky, but we are sightly obsessed with speed/optimization, and we are constantly looking to improve.