Add CDN support and local fallback