DjayChucko commited on
Commit
862ee9b
·
verified ·
1 Parent(s): 31c78f9

Manual changes saved

Browse files
Files changed (1) hide show
  1. intel.html +75 -85
intel.html CHANGED
@@ -106,18 +106,18 @@
106
  <div class="flex items-center justify-center mb-3">
107
  <img src="https://huggingface.co/spaces/DjayChucko/EnablingSales/resolve/main/images/3D_POP-Instances-Illustration-3D.png" alt="MEDDICC Illustration" class="w-40 mx-auto my-4">
108
  </div>
109
- <p class="text-gray-700 dark:text-gray-300 max-w-2xl mx-auto mb-8">Match competitive products instantly</p>
110
  </div>
111
  <div class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-4xl mx-auto">
112
  <div class="text-center">
113
- <label for="scaleway-product-selector" class="block text-sm font-bold text-gray-800 dark:text-gray-200 mb-2">Competitor by Scaleway Product</label>
114
  <select id="scaleway-product-selector" class="block w-full py-3 px-4 pr-10 border border-gray-300 dark:border-gray-600 rounded-xl text-base font-semibold text-gray-800 dark:text-gray-200 bg-white dark:bg-gray-700 focus:ring-2 focus:ring-purple-500 focus:outline-none transition duration-200 shadow-lg text-center">
115
  <option value="">- Select a Scaleway Product -</option>
116
  </select>
117
  </div>
118
 
119
  <div class="text-center">
120
- <label for="competitor-search" class="block text-sm font-bold text-gray-800 dark:text-gray-200 mb-2">Competitor Product vs Scaleway</label>
121
  <input type="search" id="competitor-search" placeholder="e.g., EC2, S3, Blob Storage..." class="block w-full py-3 px-4 border border-gray-300 dark:border-gray-600 rounded-xl text-base font-semibold text-gray-800 dark:text-gray-200 bg-white dark:bg-gray-700 focus:ring-2 focus:ring-purple-500 focus:outline-none transition duration-200 shadow-lg text-center">
122
  </div>
123
  </div>
@@ -162,9 +162,9 @@
162
  themeToggle.addEventListener('click', () => {
163
  html.classList.toggle('dark');
164
  localStorage.theme = html.classList.contains('dark') ? 'dark' : 'light';
165
- feather.replace(); // Re-run feather to update icon colors if needed
166
  });
167
- // Set initial theme
168
  if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
169
  html.classList.add('dark');
170
  } else {
@@ -182,65 +182,33 @@
182
  });
183
 
184
  feather.replace();
185
-
186
- // --- START: Auto-scroll effect ---
187
- const mainContent = document.querySelector('main');
188
- let initialScrollDone = false;
189
-
190
- const handleInitialScroll = (event) => {
191
- // This function triggers only on the user's first downward scroll attempt from the top of the page.
192
- if (!initialScrollDone && window.scrollY === 0 && event.deltaY > 0) {
193
- event.preventDefault(); // Prevents the default jumpy scroll.
194
- mainContent.scrollIntoView({ behavior: 'smooth', block: 'start' }); // Scrolls smoothly to the main content.
195
- initialScrollDone = true; // Sets a flag so this doesn't run again.
196
- }
197
- };
198
-
199
- // We add the listener with { passive: false } because we need to call event.preventDefault().
200
- window.addEventListener('wheel', handleInitialScroll, { passive: false });
201
- // --- END: Auto-scroll effect ---
202
-
203
-
204
  // --- PAGE-SPECIFIC MAPPER LOGIC ---
205
  const COMPETITOR_DATA = [
206
- { Category: "Compute & Virtual Machines", AWS: "EC2", Azure: "Virtual Machines", GCP: "Compute Engine", OracleOCI: "Compute", Scaleway: "Instances", OVHcloud: "Public Cloud", Outscale: "Virtual Machines" },
207
- { Category: "Compute & Virtual Machines", AWS: "Lightsail", Azure: "Azure VMware Solution", GCP: "App Engine", OracleOCI: "VMware Solution", Scaleway: "Bare Metal", OVHcloud: "Dedicated Servers", Outscale: "Bare Metal" },
208
- { Category: "Compute & Virtual Machines", AWS: "ECS (Containers)", Azure: "Container Instances", GCP: "Cloud Run", OracleOCI: "Container Engine", Scaleway: "Serverless", OVHcloud: "VPS", Outscale: "Kubernetes" },
209
- { Category: "Compute & Virtual Machines", AWS: "EKS (Kubernetes)", Azure: "AKS", GCP: "GKE", OracleOCI: "OKE", Scaleway: "Kubernetes", OVHcloud: "Managed K8s", Outscale: "OKS" },
210
- { Category: "Storage", AWS: "S3", Azure: "Blob Storage", GCP: "Cloud Storage", OracleOCI: "Object Storage", Scaleway: "Object Storage", OVHcloud: "Object Storage", Outscale: "Object Storage" },
211
- { Category: "Storage", AWS: "EBS", Azure: "Disk Storage", GCP: "Persistent Disk", OracleOCI: "Block Volumes", Scaleway: "Block Storage", OVHcloud: "Block Storage", Outscale: "Block Storage" },
212
- { Category: "Storage", AWS: "EFS", Azure: "Azure Files", GCP: "Filestore", OracleOCI: "File Storage", Scaleway: "File Storage", OVHcloud: "File Storage", Outscale: "File Storage" },
213
- { Category: "Storage", AWS: "Glacier", Azure: "Archive Storage", GCP: "Coldline Storage", OracleOCI: "Archive Storage", Scaleway: "Archive Storage", OVHcloud: "Archive Storage", Outscale: "Archive Storage" },
214
- { Category: "Databases", AWS: "RDS", Azure: "Azure SQL Database", GCP: "Cloud SQL", OracleOCI: "Database", Scaleway: "Managed DB", OVHcloud: "Managed DB", Outscale: "Managed DB" },
215
- { Category: "Databases", AWS: "DynamoDB", Azure: "Cosmos DB", GCP: "Firestore", OracleOCI: "NoSQL", Scaleway: "NoSQL", OVHcloud: "NoSQL", Outscale: "NoSQL" },
216
- { Category: "Databases", AWS: "Aurora", Azure: "SQL Managed Instance", GCP: "AlloyDB", OracleOCI: "Autonomous DB", Scaleway: "SQL", OVHcloud: "SQL", Outscale: "SQL" },
217
- { Category: "Databases", AWS: "Redshift", Azure: "Synapse Analytics", GCP: "BigQuery", OracleOCI: "Data Warehouse", Scaleway: "Data Warehouse", OVHcloud: "Data Warehouse", Outscale: "Data Warehouse" },
218
- { Category: "Networking", AWS: "VPC", Azure: "Virtual Network", GCP: "VPC", OracleOCI: "VCN", Scaleway: "VPC", OVHcloud: "VPC", Outscale: "VPC" },
219
- { Category: "Networking", AWS: "CloudFront", Azure: "Front Door", GCP: "Cloud CDN", OracleOCI: "CDN", Scaleway: "CDN", OVHcloud: "CDN", Outscale: "CDN" },
220
- { Category: "Networking", AWS: "Direct Connect", Azure: "ExpressRoute", GCP: "Interconnect", OracleOCI: "FastConnect", Scaleway: "Direct Connect", OVHcloud: "Direct Connect", Outscale: "Direct Connect" },
221
- { Category: "Networking", AWS: "Route 53", Azure: "Traffic Manager", GCP: "Cloud DNS", OracleOCI: "DNS", Scaleway: "DNS", OVHcloud: "DNS", Outscale: "DNS" },
222
- { Category: "AI/ML & Analytics", AWS: "SageMaker", Azure: "Machine Learning", GCP: "Vertex AI", OracleOCI: "AI Services", Scaleway: "AI Suite", OVHcloud: "AI Tools", Outscale: "AI Services" },
223
- { Category: "AI/ML & Analytics", AWS: "Redshift", Azure: "Synapse Analytics", GCP: "BigQuery", OracleOCI: "Analytics Cloud", Scaleway: "Analytics", OVHcloud: "Analytics", Outscale: "Analytics" },
224
- { Category: "AI/ML & Analytics", AWS: "Athena", Azure: "Data Lake Analytics", GCP: "Dataflow", OracleOCI: "Data Flow", Scaleway: "Data Flow", OVHcloud: "Data Flow", Outscale: "Data Flow" },
225
- { Category: "AI/ML & Analytics", AWS: "QuickSight", Azure: "Power BI", GCP: "Looker", OracleOCI: "Analytics", Scaleway: "BI Tools", OVHcloud: "BI Tools", Outscale: "BI Tools" },
226
- { Category: "Security & Identity", AWS: "IAM", Azure: "Entra ID", GCP: "Cloud IAM", OracleOCI: "IAM", Scaleway: "IAM", OVHcloud: "IAM", Outscale: "IAM" },
227
- { Category: "Security & Identity", AWS: "GuardDuty", Azure: "Security Center", GCP: "Security Command Center", OracleOCI: "Security Monitoring", Scaleway: "Security", OVHcloud: "Security", Outscale: "Security" },
228
- { Category: "Security & Identity", AWS: "KMS", Azure: "Key Vault", GCP: "Cloud KMS", OracleOCI: "Vault", Scaleway: "KMS", OVHcloud: "KMS", Outscale: "KMS" },
229
- { Category: "Security & Identity", AWS: "WAF & Shield", Azure: "DDoS Protection", GCP: "Cloud Armor", OracleOCI: "WAF", Scaleway: "WAF", OVHcloud: "WAF", Outscale: "WAF" },
230
- { Category: "Serverless & Event-Driven", AWS: "Lambda", Azure: "Functions", GCP: "Cloud Functions", OracleOCI: "Functions", Scaleway: "Serverless", OVHcloud: "Serverless", Outscale: "Serverless" },
231
- { Category: "Serverless & Event-Driven", AWS: "EventBridge", Azure: "Event Grid", GCP: "Eventarc", OracleOCI: "Events", Scaleway: "Events", OVHcloud: "Events", Outscale: "Events" },
232
- { Category: "Serverless & Event-Driven", AWS: "Step Functions", Azure: "Logic Apps", GCP: "Workflows", OracleOCI: "Workflows", Scaleway: "Workflows", OVHcloud: "Workflows", Outscale: "Workflows" },
233
- { Category: "DevOps & Management", AWS: "CloudFormation", Azure: "Resource Manager", GCP: "Deployment Manager", OracleOCI: "Resource Manager", Scaleway: "Terraform", OVHcloud: "Terraform", Outscale: "Terraform" },
234
- { Category: "DevOps & Management", AWS: "CodePipeline", Azure: "DevOps", GCP: "Cloud Build", OracleOCI: "DevOps", Scaleway: "CI/CD", OVHcloud: "CI/CD", Outscale: "CI/CD" },
235
- { Category: "DevOps & Management", AWS: "CloudWatch", Azure: "Monitor", GCP: "Operations Suite", OracleOCI: "Monitoring", Scaleway: "Monitoring", OVHcloud: "Monitoring", Outscale: "Monitoring" },
236
- { Category: "DevOps & Management", AWS: "Systems Manager", Azure: "Automation", GCP: "Config", OracleOCI: "Management", Scaleway: "Management", OVHcloud: "Management", Outscale: "Management" },
237
- { Category: "Edge & IoT", AWS: "IoT Core", Azure: "IoT Hub", GCP: "Cloud IoT Core", OracleOCI: "IoT", Scaleway: "IoT", OVHcloud: "IoT", Outscale: "IoT" },
238
- { Category: "Edge & IoT", AWS: "Local Zones", Azure: "Edge Zones", GCP: "Edge Network", OracleOCI: "Edge", Scaleway: "Edge", OVHcloud: "Edge", Outscale: "Edge" },
239
- { Category: "Edge & IoT", AWS: "Wavelength", Azure: "Private 5G", GCP: "Mobile Edge", OracleOCI: "Edge", Scaleway: "Edge", OVHcloud: "Edge", Outscale: "Edge" },
240
- { Category: "Miscellaneous & Specialized", AWS: "Outposts", Azure: "Azure Stack", GCP: "Anthos", OracleOCI: "Dedicated Region", Scaleway: "Dedibox", OVHcloud: "Bare Metal Pod", Outscale: "Sovereign Cloud" },
241
- { Category: "Miscellaneous & Specialized", AWS: "WorkSpaces", Azure: "Virtual Desktop", GCP: "BeyondCorp", OracleOCI: "Virtual Desktop", Scaleway: "Virtual Desktop", OVHcloud: "Virtual Desktop", Outscale: "Virtual Desktop" },
242
- { Category: "Miscellaneous & Specialized", AWS: "AppSync", Azure: "API Management", GCP: "Apigee", OracleOCI: "API Gateway", Scaleway: "API Gateway", OVHcloud: "API Gateway", Outscale: "API Gateway" },
243
- { Category: "Miscellaneous & Specialized", AWS: "Amplify", Azure: "Static Web Apps", GCP: "Firebase Hosting", OracleOCI: "Static Hosting", Scaleway: "Static Hosting", OVHcloud: "Static Hosting", Outscale: "Static Hosting" }
244
  ];
245
 
246
  const scalewaySelector = document.getElementById('scaleway-product-selector');
@@ -249,7 +217,7 @@
249
  const initialMessage = document.getElementById('initial-message');
250
 
251
  function populateScalewayDropdown() {
252
- const scalewayProducts = [...new Set(COMPETITOR_DATA.map(item => item.Scaleway))].sort();
253
  scalewayProducts.forEach(product => {
254
  const option = document.createElement('option');
255
  option.value = product;
@@ -258,6 +226,13 @@
258
  });
259
  }
260
 
 
 
 
 
 
 
 
261
  scalewaySelector.addEventListener('change', () => {
262
  const selectedProduct = scalewaySelector.value;
263
  competitorSearch.value = '';
@@ -266,20 +241,25 @@
266
  initialMessage.classList.remove('hidden');
267
  return;
268
  }
269
- const matchingRows = COMPETITOR_DATA.filter(row => row.Scaleway === selectedProduct);
270
- let html = `<h2 class="text-2xl font-bold text-white text-center">Competitors for ${selectedProduct}</h2>`;
271
- matchingRows.forEach(row => {
272
- html += `<div class="bg-slate-900/70 backdrop-blur-sm p-6 rounded-xl shadow-lg"><h3 class="text-lg font-bold text-purple-400 mb-4">Category: ${row.Category}</h3><div class="grid grid-cols-2 sm:grid-cols-3 gap-4 text-base">`;
273
- const providers = { AWS: row.AWS, Azure: row.Azure, GCP: row.GCP, OracleOCI: row.OracleOCI, OVHcloud: row.OVHcloud, Outscale: row.Outscale };
274
- for (const [provider, product] of Object.entries(providers)) {
275
- html += `<div><span class="font-semibold text-gray-100">${provider}:</span> <span class="text-gray-200">${product}</span></div>`;
276
- }
277
- html += `</div></div>`;
278
- });
279
- resultsArea.innerHTML = html;
280
- initialMessage.classList.add('hidden');
281
- resultsArea.classList.remove('hidden');
282
- resultsArea.scrollIntoView({ behavior: 'smooth', block: 'start' });
 
 
 
 
 
283
  });
284
 
285
  competitorSearch.addEventListener('input', () => {
@@ -291,26 +271,36 @@
291
  return;
292
  }
293
  const results = [];
294
- const providers = ["AWS", "Azure", "GCP", "OracleOCI", "OVHcloud", "Outscale"];
295
  COMPETITOR_DATA.forEach(row => {
296
  providers.forEach(provider => {
297
  if (row[provider] && row[provider].toLowerCase().includes(searchTerm)) {
298
- results.push({ provider, competitorProduct: row[provider], scalewayProduct: row.Scaleway, category: row.Category });
 
 
 
 
 
 
299
  }
300
  });
301
  });
302
- let html = `<h2 class="text-2xl font-bold text-white text-center">Results for "${competitorSearch.value}"</h2>`;
 
303
  if (results.length > 0) {
304
  results.forEach(res => {
305
- html += `<div class="bg-slate-900/70 backdrop-blur-sm p-6 rounded-xl shadow-lg"><p class="text-gray-200 text-lg mb-2"><span class="font-bold text-white">${res.competitorProduct}</span> (${res.provider})</p><p class="text-purple-400 font-bold text-xl">Scaleway Equivalent: ${res.scalewayProduct}</p><p class="text-sm text-gray-400 mt-2">Category: ${res.category}</p></div>`;
 
 
 
 
 
306
  });
307
  } else {
308
  html += `<p class="text-center text-white/80 mt-4">No matching competitor products found.</p>`;
309
  }
310
- resultsArea.innerHTML = html;
311
- initialMessage.classList.add('hidden');
312
- resultsArea.classList.remove('hidden');
313
- resultsArea.scrollIntoView({ behavior: 'smooth', block: 'start' });
314
  });
315
 
316
  window.onload = () => {
 
106
  <div class="flex items-center justify-center mb-3">
107
  <img src="https://huggingface.co/spaces/DjayChucko/EnablingSales/resolve/main/images/3D_POP-Instances-Illustration-3D.png" alt="MEDDICC Illustration" class="w-40 mx-auto my-4">
108
  </div>
109
+ <p class="text-gray-700 dark:text-gray-300 max-w-2xl mx-auto mb-8">Match competitive products and identify key differentiators instantly.</p>
110
  </div>
111
  <div class="grid grid-cols-1 md:grid-cols-2 gap-8 max-w-4xl mx-auto">
112
  <div class="text-center">
113
+ <label for="scaleway-product-selector" class="block text-sm font-bold text-gray-800 dark:text-gray-200 mb-2">Find Competitors by Scaleway Product</label>
114
  <select id="scaleway-product-selector" class="block w-full py-3 px-4 pr-10 border border-gray-300 dark:border-gray-600 rounded-xl text-base font-semibold text-gray-800 dark:text-gray-200 bg-white dark:bg-gray-700 focus:ring-2 focus:ring-purple-500 focus:outline-none transition duration-200 shadow-lg text-center">
115
  <option value="">- Select a Scaleway Product -</option>
116
  </select>
117
  </div>
118
 
119
  <div class="text-center">
120
+ <label for="competitor-search" class="block text-sm font-bold text-gray-800 dark:text-gray-200 mb-2">Find Scaleway Equivalent by Competitor</label>
121
  <input type="search" id="competitor-search" placeholder="e.g., EC2, S3, Blob Storage..." class="block w-full py-3 px-4 border border-gray-300 dark:border-gray-600 rounded-xl text-base font-semibold text-gray-800 dark:text-gray-200 bg-white dark:bg-gray-700 focus:ring-2 focus:ring-purple-500 focus:outline-none transition duration-200 shadow-lg text-center">
122
  </div>
123
  </div>
 
162
  themeToggle.addEventListener('click', () => {
163
  html.classList.toggle('dark');
164
  localStorage.theme = html.classList.contains('dark') ? 'dark' : 'light';
165
+ feather.replace();
166
  });
167
+
168
  if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
169
  html.classList.add('dark');
170
  } else {
 
182
  });
183
 
184
  feather.replace();
185
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  // --- PAGE-SPECIFIC MAPPER LOGIC ---
187
  const COMPETITOR_DATA = [
188
+ { ScalewayProduct: "Dedibox", Category: "Bare Metal (Legacy)", AWS: "(Legacy)", Azure: "(Legacy)", GCP: "(Legacy)", OVHcloud: "Dedicated Servers (Eco range)", Nebius: "N/A", Outscale: "N/A", Ionos: "Dedicated Servers", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Price & Reliability: For long-term workloads, Dedibox offers unbeatable monthly pricing on reliable dedicated hardware. A cornerstone of our offerings, trusted for years." },
189
+ { ScalewayProduct: "Apple silicon", Category: "Bare Metal (Specialized)", AWS: "EC2 Mac Instances", Azure: "N/A", GCP: "N/A", OVHcloud: "N/A", Nebius: "N/A", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Unique European CI/CD: The leading European cloud offering for native macOS/iOS development. Build and test your Apple apps in a sovereign environment with predictable, cost-effective hardware." },
190
+ { ScalewayProduct: "Elastic Metal", Category: "Bare Metal", AWS: "EC2 Bare Metal", Azure: "BareMetal Infra", GCP: "Bare Metal Solution", OVHcloud: "Dedicated Servers (Advance, HG)", Nebius: "Bare Metal (GPU only)", Outscale: "Bare Metal Servers", Ionos: "Cloud Cubes", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "API-Driven & Flexible: Unlike traditional dedicated servers, our bare metal is fully API-driven and can be billed hourly, offering cloud-like flexibility with the raw power of dedicated hardware." },
191
+ { ScalewayProduct: "Production Instances", Category: "Virtual Machines", AWS: "EC2 (M, T series)", Azure: "VMs (D, B series)", GCP: "Compute Engine", OVHcloud: "Public Cloud Instances", Nebius: "Virtual Machines", Outscale: "Cloud Instances (ECU)", Ionos: "Cloud Cubes", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Full Ecosystem & Simplicity: Beyond just a VM, get a high-performance instance that's part of a complete, easy-to-use cloud ecosystem. Simpler to navigate and price than hyperscalers and more PaaS-rich than other EU providers." },
192
+ { ScalewayProduct: "Cost-Optimized Instances", Category: "Virtual Machines", AWS: "EC2 (T series)", Azure: "VMs (B-series)", GCP: "Compute Engine", OVHcloud: "Public Cloud Instances", Nebius: "Virtual Machines", Outscale: "Cloud Instances (ECU)", Ionos: "Cloud Cubes", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Predictable Low Cost: Ideal for dev/test, we offer a consistently low price without the complex credit systems or the volatility of the hyperscaler 'spot' market." },
193
+ { ScalewayProduct: "GPU Instances", Category: "Virtual Machines (GPU)", AWS: "EC2 (P, G series)", Azure: "VMs (N series)", GCP: "Compute Engine", OVHcloud: "Public Cloud GPU", Nebius: "GPU Instances", Outscale: "GPU Instances", Ionos: "GPU Cloud Server", Coreweave: "GPU Instances", CleverCloud: "N/A", KeyDifferentiator: "Sovereign AI Ecosystem: Access the latest NVIDIA hardware in a sovereign European cloud. Unlike specialized GPU providers, we offer a complete ecosystem (storage, DBs, networking) to support your entire AI application, not just the training." },
194
+ { ScalewayProduct: "Kubernetes Kapsule", Category: "Containers", AWS: "EKS", Azure: "AKS", GCP: "GKE", OVHcloud: "Managed Kubernetes", Nebius: "Managed Kubernetes", Outscale: "Managed Kubernetes", Ionos: "Managed Kubernetes", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Cost-Effective & True Multi-Cloud: A CNCF-certified Kubernetes service at a fraction of the hyperscaler cost. Our free Kosmos tool lets you manage multi-cloud clusters from a single control plane—a unique feature no other European provider offers." },
195
+ { ScalewayProduct: "Serverless Functions", Category: "Serverless", AWS: "Lambda", Azure: "Functions", GCP: "Cloud Functions", OVHcloud: "N/A", Nebius: "N/A", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Pioneering European Serverless: The most mature European serverless functions platform. Built on open-source Knative for portability, fully integrated with our ecosystem (e.g., triggering from Object Storage events)." },
196
+ { ScalewayProduct: "Serverless Containers", Category: "Serverless", AWS: "Fargate", Azure: "Container Instances", GCP: "Cloud Run", OVHcloud: "N/A", Nebius: "Serverless Containers", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Open Standards & Simplicity: Deploy containers without managing servers. Our developer-friendly platform is built on open standards, offering a simpler, more portable alternative to hyperscaler-proprietary systems." },
197
+ { ScalewayProduct: "Container Registry", Category: "Containers", AWS: "ECR", Azure: "ACR", GCP: "Artifact Registry", OVHcloud: "Managed Private Registry", Nebius: "Container Registry", Outscale: "N/A", Ionos: "Container Registry", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Integrated & Simple: A private, secure Docker registry fully integrated with our Kubernetes and Serverless ecosystem. Simple, predictable pricing based purely on storage." },
198
+ { ScalewayProduct: "Object Storage", Category: "Storage", AWS: "S3", Azure: "Blob Storage", GCP: "Cloud Storage", OVHcloud: "S3 Object Storage", Nebius: "Object Storage", Outscale: "S3 Object Storage", Ionos: "S3 Object Storage", Coreweave: "N/A", CleverCloud: "Cellar S3", KeyDifferentiator: "Sovereign & Predictable Egress: Fully S3-compatible, hosted in Europe for data sovereignty. Our key differentiator is a simpler, more predictable pricing model with often significantly cheaper egress fees than the competition." },
199
+ { ScalewayProduct: "Glacier (Cold Storage)", Category: "Storage", AWS: "S3 Glacier", Azure: "Blob Archive", GCP: "Cloud Archive", OVHcloud: "Cloud Archive", Nebius: "Cold Storage", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Low-Cost European Archive: The most cost-effective solution for long-term data archiving and backups within the EU, ensuring compliance and DR at an unbeatable price point." },
200
+ { ScalewayProduct: "Block Storage", Category: "Storage", AWS: "EBS", Azure: "Disk Storage", GCP: "Persistent Disk", OVHcloud: "Block Storage", Nebius: "Block Storage", Outscale: "Block Storage", Ionos: "Block Storage", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "High Performance & Flexible: SSD-based block storage for your instances. Offers more predictable IOPS performance for the price compared to the complex, tiered offerings from other providers." },
201
+ { ScalewayProduct: "Managed Databases (PG/MySQL)", Category: "Databases", AWS: "RDS", Azure: "Azure DB", GCP: "Cloud SQL", OVHcloud: "Public Cloud Databases", Nebius: "Managed DBs", Outscale: "N/A", Ionos: "Managed DBs", Coreweave: "N/A", CleverCloud: "Managed DBs", KeyDifferentiator: "Simple, Reliable, Integrated: Get a production-ready database in minutes without the feature overload and complex pricing of hyperscalers. It's the perfect balance of performance and simplicity for developers." },
202
+ { ScalewayProduct: "Managed Database for Redis™", Category: "Databases", AWS: "ElastiCache", Azure: "Cache for Redis", GCP: "Memorystore", OVHcloud: "N/A", Nebius: "Managed Redis", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "Managed Redis", KeyDifferentiator: "Performance Caching: Deploy a high-performance in-memory cache with one click. Simple, instance-based pricing makes it a straightforward choice for real-time applications." },
203
+ { ScalewayProduct: "Serverless SQL DB", Category: "Databases", AWS: "Aurora Serverless", Azure: "SQL DB Serverless", GCP: "(No direct equivalent)", OVHcloud: "N/A", Nebius: "N/A", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Unique European Offering: A fully serverless SQL database that scales to zero. Perfect for apps with unpredictable traffic, you only pay for what you use. A unique, cost-saving product in the European market." },
204
+ { ScalewayProduct: "Private Networks (VPC)", Category: "Networking", AWS: "VPC", Azure: "Virtual Network", GCP: "VPC", OVHcloud: "vRack", Nebius: "Virtual Private Cloud", Outscale: "Virtual Private Cloud", Ionos: "Private LAN", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Free & Secure: Completely isolate your infrastructure in a private network, free of charge. A core security feature that other clouds often monetize through add-ons and complex gateway pricing." },
205
+ { ScalewayProduct: "Load Balancer", Category: "Networking", AWS: "ELB", Azure: "Load Balancer", GCP: "Cloud Load Balancing", OVHcloud: "Load Balancer", Nebius: "Load Balancer", Outscale: "Load Balancer", Ionos: "Load Balancer", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Affordable High Availability: Distribute traffic to ensure high availability for your applications. Our load balancers are easy to configure and significantly more cost-effective than hyperscaler equivalents." },
206
+ { ScalewayProduct: "Web Hosting", Category: "PaaS", AWS: "Amplify, Lightsail", Azure: "Static Web Apps", GCP: "Firebase Hosting", OVHcloud: "Web Hosting", Nebius: "N/A", Outscale: "N/A", Ionos: "Web Hosting", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Simple & All-in-One: The easiest way to host your sites. Unlike IaaS providers, we provide an all-inclusive package with email and databases, perfect for users who aren't cloud experts." },
207
+ { ScalewayProduct: "Transactional Email", Category: "PaaS", AWS: "SES", Azure: "Communication Services", GCP: "(Partners)", OVHcloud: "N/A", Nebius: "N/A", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "European Email Delivery: Ensure your application's emails are sent from European servers, improving deliverability and GDPR compliance. A rare PaaS offering among European IaaS providers." },
208
+ { ScalewayProduct: "IoT Hub", Category: "PaaS", AWS: "IoT Core", Azure: "IoT Hub", GCP: "IoT Core", OVHcloud: "N/A", Nebius: "N/A", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Secure & Scalable IoT: A straightforward, cost-effective, and sovereign solution for your European IoT deployments. An integrated PaaS product most IaaS providers lack." },
209
+ { ScalewayProduct: "IAM", Category: "Security & Account", AWS: "IAM", Azure: "Azure AD", GCP: "Cloud IAM", OVHcloud: "User Management", Nebius: "IAM", Outscale: "IAM", Ionos: "User Management", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Granular Control: A fundamental security tool included free with your account. Manage users, groups, and permissions with fine-grained control across all Scaleway products." },
210
+ { ScalewayProduct: "Cockpit (Monitoring)", Category: "Management Tools", AWS: "CloudWatch", Azure: "Monitor", GCP: "Cloud's ops suite", OVHcloud: "Metrics Data Platform", Nebius: "Monitoring", Outscale: "N/A", Ionos: "Monitoring", Coreweave: "N/A", CleverCloud: "Metrics", KeyDifferentiator: "Integrated Observability: Gain a unified view of your infrastructure's health and performance. Cockpit is included by default, providing easy monitoring without the complex setup of third-party tools." },
211
+ { ScalewayProduct: "Managed Inference", Category: "AI / ML", AWS: "SageMaker", Azure: "Azure ML", GCP: "Vertex AI", OVHcloud: "AI Deploy", Nebius: "N/A", Outscale: "N/A", Ionos: "N/A", Coreweave: "N/A", CleverCloud: "N/A", KeyDifferentiator: "Effortless & Sovereign Model Serving: Deploy trained models with a fully managed API. We handle the infrastructure and scaling in a sovereign environment, offering a simpler and more integrated experience than setting up your own GPU servers." }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  ];
213
 
214
  const scalewaySelector = document.getElementById('scaleway-product-selector');
 
217
  const initialMessage = document.getElementById('initial-message');
218
 
219
  function populateScalewayDropdown() {
220
+ const scalewayProducts = [...new Set(COMPETITOR_DATA.map(item => item.ScalewayProduct))].sort();
221
  scalewayProducts.forEach(product => {
222
  const option = document.createElement('option');
223
  option.value = product;
 
226
  });
227
  }
228
 
229
+ function displayResults(html) {
230
+ resultsArea.innerHTML = html;
231
+ initialMessage.classList.add('hidden');
232
+ resultsArea.classList.remove('hidden');
233
+ resultsArea.scrollIntoView({ behavior: 'smooth', block: 'start' });
234
+ }
235
+
236
  scalewaySelector.addEventListener('change', () => {
237
  const selectedProduct = scalewaySelector.value;
238
  competitorSearch.value = '';
 
241
  initialMessage.classList.remove('hidden');
242
  return;
243
  }
244
+
245
+ const row = COMPETITOR_DATA.find(r => r.ScalewayProduct === selectedProduct);
246
+ if (!row) return;
247
+
248
+ let html = `<div class="bg-slate-900/70 backdrop-blur-sm p-6 rounded-xl shadow-lg">`;
249
+ html += `<h2 class="text-2xl font-bold text-white mb-4">Comparison for: <span class="text-purple-400">${selectedProduct}</span></h2>`;
250
+ html += `<p class="text-sm text-gray-400 mb-6">Category: ${row.Category}</p>`;
251
+
252
+ html += `<div class="mb-6"><h3 class="text-lg font-semibold text-white mb-3 flex items-center"><i data-feather="zap" class="w-5 h-5 mr-2 text-yellow-400"></i>Key Differentiation & Talking Points</h3><p class="text-gray-200 bg-purple-900/30 p-4 rounded-lg">${row.KeyDifferentiator}</p></div>`;
253
+
254
+ html += `<div><h3 class="text-lg font-semibold text-white mb-3 flex items-center"><i data-feather="shuffle" class="w-5 h-5 mr-2 text-cyan-400"></i>Competitor Equivalents</h3><div class="grid grid-cols-2 sm:grid-cols-3 gap-4 text-base">`;
255
+ const competitors = { AWS: row.AWS, Azure: row.Azure, GCP: row.GCP, OVHcloud: row.OVHcloud, Nebius: row.Nebius, Outscale: row.Outscale, Ionos: row.Ionos, Coreweave: row.Coreweave, CleverCloud: row.CleverCloud };
256
+ for (const [provider, product] of Object.entries(competitors)) {
257
+ html += `<div><span class="font-semibold text-gray-100">${provider}:</span> <span class="text-gray-300">${product || 'N/A'}</span></div>`;
258
+ }
259
+ html += `</div></div></div>`;
260
+
261
+ displayResults(html);
262
+ feather.replace();
263
  });
264
 
265
  competitorSearch.addEventListener('input', () => {
 
271
  return;
272
  }
273
  const results = [];
274
+ const providers = ["AWS", "Azure", "GCP", "OVHcloud", "Nebius", "Outscale", "Ionos", "Coreweave", "CleverCloud"];
275
  COMPETITOR_DATA.forEach(row => {
276
  providers.forEach(provider => {
277
  if (row[provider] && row[provider].toLowerCase().includes(searchTerm)) {
278
+ results.push({
279
+ provider: provider,
280
+ competitorProduct: row[provider],
281
+ scalewayProduct: row.ScalewayProduct,
282
+ category: row.Category,
283
+ differentiator: row.KeyDifferentiator
284
+ });
285
  }
286
  });
287
  });
288
+
289
+ let html = `<h2 class="text-2xl font-bold text-white text-center mb-6">Results for "${competitorSearch.value}"</h2>`;
290
  if (results.length > 0) {
291
  results.forEach(res => {
292
+ html += `<div class="bg-slate-900/70 backdrop-blur-sm p-6 rounded-xl shadow-lg">`;
293
+ html += `<p class="text-gray-300 text-lg mb-2">Match for <span class="font-bold text-white">${res.competitorProduct}</span> (${res.provider})</p>`;
294
+ html += `<p class="text-purple-400 font-bold text-2xl">Scaleway Equivalent: ${res.scalewayProduct}</p>`;
295
+ html += `<p class="text-sm text-gray-400 mt-2 mb-4">Category: ${res.category}</p>`;
296
+ html += `<div class="border-t border-purple-800 pt-4"><h4 class="font-semibold text-white mb-2 flex items-center"><i data-feather="zap" class="w-4 h-4 mr-2 text-yellow-400"></i>Talking Point</h4><p class="text-gray-200">${res.differentiator}</p></div>`;
297
+ html += `</div>`;
298
  });
299
  } else {
300
  html += `<p class="text-center text-white/80 mt-4">No matching competitor products found.</p>`;
301
  }
302
+ displayResults(html);
303
+ feather.replace();
 
 
304
  });
305
 
306
  window.onload = () => {