vibecarbon 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +110 -663
- package/README.md +4 -4
- package/carbon/.env.example +11 -0
- package/carbon/backup/compose-backup.sh +8 -0
- package/carbon/docker-compose.yml +11 -0
- package/carbon/ha/primary-init.sql +10 -2
- package/carbon/k8s/base/backup/cronjob.yaml +9 -0
- package/carbon/k8s/base/repl-gateway/kustomization.yaml +11 -0
- package/carbon/k8s/base/repl-gateway/repl-gateway.yaml +92 -0
- package/carbon/k8s/values/supabase.values.yaml +6 -1
- package/carbon/scripts/dev-init.js +6 -2
- package/carbon/src/client/assets/vibecarbon-icon.svg +6 -6
- package/carbon/src/client/assets/vibecarbon-wordmark-text-dark.svg +12 -0
- package/carbon/src/client/assets/vibecarbon-wordmark-text-light.svg +12 -0
- package/carbon/src/client/components/AIIntegrationSection.tsx +1 -3
- package/carbon/src/client/components/AppSidebar.tsx +35 -28
- package/carbon/src/client/components/CTAFooter.tsx +1 -1
- package/carbon/src/client/components/ComparisonSection.tsx +1 -3
- package/carbon/src/client/components/ContentPanel.tsx +1 -1
- package/carbon/src/client/components/DeploymentScenariosSection.tsx +1 -3
- package/carbon/src/client/components/FAQSection.tsx +1 -1
- package/carbon/src/client/components/Hero.tsx +13 -1
- package/carbon/src/client/components/Logo.tsx +66 -49
- package/carbon/src/client/components/Nav.tsx +1 -1
- package/carbon/src/client/components/NewsletterSignup.tsx +1 -1
- package/carbon/src/client/components/NotificationDrawer.tsx +3 -3
- package/carbon/src/client/components/PageHeader.tsx +1 -1
- package/carbon/src/client/components/PricingSection.tsx +2 -6
- package/carbon/src/client/components/TechStackSection.tsx +1 -3
- package/carbon/src/client/components/effects/FilmGrainOverlay.tsx +5 -0
- package/carbon/src/client/components/ui/button.tsx +1 -1
- package/carbon/src/client/components/ui/card.tsx +1 -1
- package/carbon/src/client/components/ui/dialog.tsx +1 -1
- package/carbon/src/client/components/ui/dropdown-menu.tsx +2 -2
- package/carbon/src/client/components/ui/popover.tsx +1 -1
- package/carbon/src/client/components/ui/select.tsx +1 -1
- package/carbon/src/client/components/ui/sidebar.tsx +1 -1
- package/carbon/src/client/index.css +186 -104
- package/carbon/src/client/lib/supabase.ts +41 -0
- package/carbon/src/client/lib/theme.ts +14 -14
- package/carbon/src/client/locales/de.json +27 -12
- package/carbon/src/client/locales/en.json +33 -18
- package/carbon/src/client/locales/es.json +27 -12
- package/carbon/src/client/locales/fr.json +27 -12
- package/carbon/src/client/locales/pt.json +27 -12
- package/carbon/src/client/pages/Blog.tsx +1 -1
- package/carbon/src/client/pages/Changelog.tsx +1 -1
- package/carbon/src/client/pages/Checkout.tsx +1 -1
- package/carbon/src/client/pages/Dashboard.tsx +33 -40
- package/carbon/src/client/pages/Docs.tsx +1 -1
- package/carbon/src/client/pages/Home.tsx +1 -1
- package/carbon/src/client/pages/Legal.tsx +1 -1
- package/carbon/src/server/billing/providers/paddle.ts +21 -2
- package/carbon/src/server/billing/providers/polar.ts +14 -0
- package/carbon/src/server/index.ts +12 -9
- package/carbon/src/server/lib/client-ip.ts +68 -0
- package/carbon/src/server/lib/env.ts +20 -6
- package/carbon/src/server/lib/rate-limiter.ts +11 -65
- package/carbon/src/server/lib/supabase.ts +10 -4
- package/carbon/src/server/middleware/requireOrgRole.ts +76 -0
- package/carbon/src/server/middleware/requirePlan.ts +64 -34
- package/carbon/src/server/middleware/requireSuperAdmin.ts +26 -0
- package/carbon/src/server/routes/v1/admin/contact.ts +5 -20
- package/carbon/src/server/routes/v1/admin/jobs.ts +6 -20
- package/carbon/src/server/routes/v1/admin/newsletter.ts +26 -23
- package/carbon/src/server/routes/v1/auth.ts +5 -2
- package/carbon/src/server/routes/v1/billing.ts +24 -64
- package/carbon/src/server/routes/v1/index.ts +8 -1
- package/carbon/src/server/routes/v1/newsletter.ts +18 -12
- package/carbon/src/server/routes/v1/theme.ts +36 -15
- package/carbon/supabase/migrations/00003_pg_cron.sql +2 -2
- package/carbon/supabase/migrations/00004_contact_newsletter.sql +24 -14
- package/carbon/tests/component/supabase-env-guard.test.ts +54 -0
- package/carbon/tests/integration/server/middleware/rate-limit-ip-spoof.test.ts +48 -0
- package/carbon/tests/integration/server/middleware/require-plan.test.ts +101 -0
- package/carbon/tests/integration/server/routes/admin-newsletter.test.ts +93 -0
- package/carbon/tests/integration/server/routes/billing-subscription-idor.test.ts +92 -0
- package/carbon/tests/integration/server/routes/newsletter-unsubscribe.test.ts +65 -0
- package/carbon/tests/integration/server/routes/theme-validation.test.ts +66 -0
- package/carbon/tests/unit/server/client-ip.test.ts +76 -0
- package/carbon/tests/unit/server/env-bool.test.ts +63 -0
- package/carbon/tests/unit/server/paddle-webhook.test.ts +57 -0
- package/carbon/tests/unit/server/polar-webhook.test.ts +63 -0
- package/carbon/tests/unit/server/supabase-client.test.ts +30 -0
- package/carbon/volumes/db/wal-archive.sh +36 -0
- package/package.json +2 -2
- package/src/backup.js +0 -2
- package/src/cli.js +16 -0
- package/src/deploy.js +16 -5
- package/src/destroy.js +78 -0
- package/src/failover.js +118 -237
- package/src/lib/command.js +19 -1
- package/src/lib/deploy/compose/ha.js +180 -102
- package/src/lib/deploy/compose/index.js +63 -20
- package/src/lib/deploy/image.js +19 -23
- package/src/lib/deploy/k8s/ha/index.js +397 -150
- package/src/lib/deploy/k8s/k3s.js +65 -14
- package/src/lib/deploy/orchestrator.js +176 -6
- package/src/lib/deploy/remote-build.js +8 -1
- package/src/lib/deploy/replication.js +540 -0
- package/src/lib/deploy/state.js +62 -5
- package/src/lib/deploy/utils.js +30 -2
- package/src/lib/deploy/wireguard.js +146 -0
- package/src/lib/host-keys.js +120 -5
- package/src/lib/iac/index.js +57 -23
- package/src/lib/licensing/gate.js +59 -0
- package/src/lib/licensing/index.js +1 -1
- package/src/lib/licensing/tiers.js +6 -5
- package/src/lib/prod-confirm.js +65 -0
- package/src/lib/providers/hetzner-s3.js +85 -0
- package/src/lib/ssh.js +35 -35
- package/src/restore.js +102 -14
- package/src/scale.js +4 -2
- package/src/status.js +122 -0
- package/src/upgrade.js +0 -4
- package/carbon/ha/activate-standby.sh +0 -52
- package/carbon/ha/standby-init.sh +0 -74
- package/carbon/src/client/assets/vibecarbon-logo-dark.svg +0 -29
- package/carbon/src/client/assets/vibecarbon-logo-light.svg +0 -29
- package/carbon/src/server/lib/request.ts +0 -34
- package/src/lib/pod-backups.js +0 -53
|
@@ -217,11 +217,11 @@
|
|
|
217
217
|
"charts": {
|
|
218
218
|
"title": "Charts",
|
|
219
219
|
"revenue": "Revenue",
|
|
220
|
-
"revenueDescription": "Monthly revenue, Jan
|
|
220
|
+
"revenueDescription": "Monthly revenue, Jan–Jun",
|
|
221
221
|
"revenueSparkline": "$29.8k",
|
|
222
222
|
"newUsers": "New Users",
|
|
223
223
|
"activeUsers": "Active Users",
|
|
224
|
-
"activeUsersDescription": "Weekly signups
|
|
224
|
+
"activeUsersDescription": "Weekly signups — new vs. returning",
|
|
225
225
|
"mrr": "MRR",
|
|
226
226
|
"mrrGrowth": "MRR Growth",
|
|
227
227
|
"mrrGrowthDescription": "Cumulative monthly recurring revenue",
|
|
@@ -274,7 +274,7 @@
|
|
|
274
274
|
"hero": {
|
|
275
275
|
"badge": "Fully Automated · Self-Hosted",
|
|
276
276
|
"headline1": "Professional Grade",
|
|
277
|
-
"subheading": "Full-stack SaaS starter
|
|
277
|
+
"subheading": "Full-stack SaaS starter with the most easy-to-use DevOps CLI ever. Built for AI-driven development.",
|
|
278
278
|
"getUpdates": "Get Updates"
|
|
279
279
|
},
|
|
280
280
|
"logoStrip": {
|
|
@@ -285,15 +285,15 @@
|
|
|
285
285
|
"subheading": "Provision, deploy, and scale from the CLI",
|
|
286
286
|
"create": {
|
|
287
287
|
"label": "Create",
|
|
288
|
-
"description": "Full-stack
|
|
288
|
+
"description": "Full-stack SaaS template with everything you need build, deploy, and maintain advanced applications."
|
|
289
289
|
},
|
|
290
290
|
"develop": {
|
|
291
291
|
"label": "Develop",
|
|
292
|
-
"description": "Spin up
|
|
292
|
+
"description": "Spin up a dev environment for building your app using AI, complete with security guardrails and a hot-reloading frontend."
|
|
293
293
|
},
|
|
294
294
|
"deploy": {
|
|
295
295
|
"label": "Deploy",
|
|
296
|
-
"description": "
|
|
296
|
+
"description": "Deploy on Hetzner with Docker Compose or Kubernetes. Complete with backups, scaling, high-availability, and more advanced features with simple commands."
|
|
297
297
|
}
|
|
298
298
|
},
|
|
299
299
|
"techStack": {
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
"traffic": {
|
|
353
353
|
"risk": "Can't handle traffic",
|
|
354
354
|
"protection": "Auto-scaling",
|
|
355
|
-
"how": "Kubernetes autoscaling
|
|
355
|
+
"how": "Kubernetes pod autoscaling plus one-command worker scaling"
|
|
356
356
|
},
|
|
357
357
|
"redundancy": {
|
|
358
358
|
"risk": "Zero redundancy",
|
|
@@ -401,25 +401,40 @@
|
|
|
401
401
|
"compose": {
|
|
402
402
|
"name": "Docker Compose",
|
|
403
403
|
"tagline": "One VPS, your full stack included.",
|
|
404
|
-
"features": [
|
|
404
|
+
"features": [
|
|
405
|
+
"1 server",
|
|
406
|
+
"Single region"
|
|
407
|
+
],
|
|
405
408
|
"bestFor": "MVPs & internal tools"
|
|
406
409
|
},
|
|
407
410
|
"composeHa": {
|
|
408
411
|
"name": "Compose HA",
|
|
409
|
-
"tagline": "Two
|
|
410
|
-
"features": [
|
|
412
|
+
"tagline": "Two regions, one-command failover.",
|
|
413
|
+
"features": [
|
|
414
|
+
"2 servers",
|
|
415
|
+
"Streaming replication",
|
|
416
|
+
"One-command failover"
|
|
417
|
+
],
|
|
411
418
|
"bestFor": "Production SaaS without Kubernetes"
|
|
412
419
|
},
|
|
413
420
|
"k8s": {
|
|
414
421
|
"name": "Kubernetes",
|
|
415
|
-
"tagline": "
|
|
416
|
-
"features": [
|
|
422
|
+
"tagline": "Production k3s cluster.",
|
|
423
|
+
"features": [
|
|
424
|
+
"Single region",
|
|
425
|
+
"Horizontal autoscaling",
|
|
426
|
+
"Rolling updates"
|
|
427
|
+
],
|
|
417
428
|
"bestFor": "High-traffic apps"
|
|
418
429
|
},
|
|
419
430
|
"k8sHa": {
|
|
420
431
|
"name": "Kubernetes HA",
|
|
421
432
|
"tagline": "Multi-region clusters, maximum uptime.",
|
|
422
|
-
"features": [
|
|
433
|
+
"features": [
|
|
434
|
+
"2 regions",
|
|
435
|
+
"Region failover",
|
|
436
|
+
"Pod autoscaling"
|
|
437
|
+
],
|
|
423
438
|
"bestFor": "Mission-critical & global"
|
|
424
439
|
}
|
|
425
440
|
},
|
|
@@ -459,7 +474,7 @@
|
|
|
459
474
|
"backups": "Automated S3 backups",
|
|
460
475
|
"cicd": "CI/CD via GitHub Actions",
|
|
461
476
|
"unlimited": "Unlimited servers & projects",
|
|
462
|
-
"commercial": "
|
|
477
|
+
"commercial": "FSL exception (embed, white-label, resell)"
|
|
463
478
|
}
|
|
464
479
|
},
|
|
465
480
|
"fullerene": {
|
|
@@ -467,7 +482,7 @@
|
|
|
467
482
|
"cta": "Get Fullerene",
|
|
468
483
|
"features": {
|
|
469
484
|
"diamond": "Everything in Diamond",
|
|
470
|
-
"commercial": "
|
|
485
|
+
"commercial": "FSL exception: embed, white-label, or resell Vibecarbon-powered services",
|
|
471
486
|
"clients": "Deploy for clients & organizations",
|
|
472
487
|
"corporate": "Agency & enterprise teams",
|
|
473
488
|
"support": "Priority email support",
|
|
@@ -496,7 +511,7 @@
|
|
|
496
511
|
},
|
|
497
512
|
"q5": {
|
|
498
513
|
"question": "How does pricing work?",
|
|
499
|
-
"answer": "Graphite is free forever — create projects, develop locally, and use every add-on. Diamond ($149 lifetime) is full automation for indie hackers and startups — all deployment modes, backups, CI/CD, and scaling. Fullerene ($499 lifetime) is
|
|
514
|
+
"answer": "Graphite is free forever — create projects, develop locally, and use every add-on. Diamond ($149 lifetime) is full automation for indie hackers and startups — all deployment modes, backups, CI/CD, and scaling. Fullerene ($499 lifetime) is for agencies and enterprise — deploy for clients, plus the FSL exception to embed, white-label, or resell Vibecarbon-powered services. One-time payment, no subscriptions, your infrastructure."
|
|
500
515
|
},
|
|
501
516
|
"q6": {
|
|
502
517
|
"question": "How many projects can I create with one license?",
|
|
@@ -508,7 +523,7 @@
|
|
|
508
523
|
},
|
|
509
524
|
"q8": {
|
|
510
525
|
"question": "What happens if Vibecarbon shuts down?",
|
|
511
|
-
"answer": "Nothing changes for your app. The generated code is MIT-licensed with zero runtime dependency on Vibecarbon — it's just a codebase you own outright. The CLI is
|
|
526
|
+
"answer": "Nothing changes for your app. The generated code is MIT-licensed with zero runtime dependency on Vibecarbon — it's just a codebase you own outright. The CLI is Fair Source (FSL) — you can run it from source indefinitely for any non-competing use, and every release becomes MIT open source two years after publication. Your infrastructure runs on your own servers."
|
|
512
527
|
},
|
|
513
528
|
"q9": {
|
|
514
529
|
"question": "Do I need DevOps experience to deploy?",
|
|
@@ -537,4 +552,4 @@
|
|
|
537
552
|
"terms": "Terms"
|
|
538
553
|
}
|
|
539
554
|
}
|
|
540
|
-
}
|
|
555
|
+
}
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
},
|
|
294
294
|
"deploy": {
|
|
295
295
|
"label": "Desplegar",
|
|
296
|
-
"description": "Despliega a producción con
|
|
296
|
+
"description": "Despliega a producción con escalado, alta disponibilidad, monitoreo, CI/CD y más."
|
|
297
297
|
}
|
|
298
298
|
},
|
|
299
299
|
"techStack": {
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
"traffic": {
|
|
353
353
|
"risk": "No soporta el tráfico",
|
|
354
354
|
"protection": "Auto-escalado",
|
|
355
|
-
"how": "Kubernetes
|
|
355
|
+
"how": "Autoescalado de pods de Kubernetes más escalado de workers con un comando"
|
|
356
356
|
},
|
|
357
357
|
"redundancy": {
|
|
358
358
|
"risk": "Sin redundancia",
|
|
@@ -401,25 +401,40 @@
|
|
|
401
401
|
"compose": {
|
|
402
402
|
"name": "Docker Compose",
|
|
403
403
|
"tagline": "Un VPS, con todo tu stack incluido.",
|
|
404
|
-
"features": [
|
|
404
|
+
"features": [
|
|
405
|
+
"1 servidor",
|
|
406
|
+
"Región única"
|
|
407
|
+
],
|
|
405
408
|
"bestFor": "MVPs y herramientas internas"
|
|
406
409
|
},
|
|
407
410
|
"composeHa": {
|
|
408
411
|
"name": "Compose HA",
|
|
409
|
-
"tagline": "Dos
|
|
410
|
-
"features": [
|
|
412
|
+
"tagline": "Dos regiones, conmutación con un comando.",
|
|
413
|
+
"features": [
|
|
414
|
+
"2 servidores",
|
|
415
|
+
"Replicación en streaming",
|
|
416
|
+
"Conmutación con un comando"
|
|
417
|
+
],
|
|
411
418
|
"bestFor": "SaaS en producción sin Kubernetes"
|
|
412
419
|
},
|
|
413
420
|
"k8s": {
|
|
414
421
|
"name": "Kubernetes",
|
|
415
|
-
"tagline": "Clúster k3s
|
|
416
|
-
"features": [
|
|
422
|
+
"tagline": "Clúster k3s listo para producción.",
|
|
423
|
+
"features": [
|
|
424
|
+
"Región única",
|
|
425
|
+
"Autoescalado horizontal",
|
|
426
|
+
"Actualizaciones progresivas"
|
|
427
|
+
],
|
|
417
428
|
"bestFor": "Apps de alto tráfico"
|
|
418
429
|
},
|
|
419
430
|
"k8sHa": {
|
|
420
431
|
"name": "Kubernetes HA",
|
|
421
432
|
"tagline": "Clústeres multirregión, máxima disponibilidad.",
|
|
422
|
-
"features": [
|
|
433
|
+
"features": [
|
|
434
|
+
"2 regiones",
|
|
435
|
+
"Conmutación de región",
|
|
436
|
+
"Autoescalado de pods"
|
|
437
|
+
],
|
|
423
438
|
"bestFor": "Críticos y globales"
|
|
424
439
|
}
|
|
425
440
|
},
|
|
@@ -459,7 +474,7 @@
|
|
|
459
474
|
"backups": "Copias de seguridad automáticas en S3",
|
|
460
475
|
"cicd": "CI/CD mediante GitHub Actions",
|
|
461
476
|
"unlimited": "Servidores y proyectos ilimitados",
|
|
462
|
-
"commercial": "
|
|
477
|
+
"commercial": "Excepción FSL (integración, marca blanca, reventa)"
|
|
463
478
|
}
|
|
464
479
|
},
|
|
465
480
|
"fullerene": {
|
|
@@ -467,7 +482,7 @@
|
|
|
467
482
|
"cta": "Ir a Fullerene",
|
|
468
483
|
"features": {
|
|
469
484
|
"diamond": "Todo lo de Diamond",
|
|
470
|
-
"commercial": "
|
|
485
|
+
"commercial": "Excepción FSL: integra, ofrece marca blanca o revende servicios impulsados por Vibecarbon",
|
|
471
486
|
"clients": "Despliega para clientes y organizaciones",
|
|
472
487
|
"corporate": "Equipos de agencias y empresas",
|
|
473
488
|
"support": "Soporte prioritario por correo",
|
|
@@ -496,7 +511,7 @@
|
|
|
496
511
|
},
|
|
497
512
|
"q5": {
|
|
498
513
|
"question": "¿Cómo funciona el precio?",
|
|
499
|
-
"answer": "Graphite es gratuito para siempre — crea proyectos, desarrolla localmente y usa todos los complementos. Diamond ($149 de por vida) es automatización completa para indie hackers y startups — todos los modos de despliegue, backups, CI/CD y escalado. Fullerene ($499 de por vida) es
|
|
514
|
+
"answer": "Graphite es gratuito para siempre — crea proyectos, desarrolla localmente y usa todos los complementos. Diamond ($149 de por vida) es automatización completa para indie hackers y startups — todos los modos de despliegue, backups, CI/CD y escalado. Fullerene ($499 de por vida) es para agencias y empresas — despliega para clientes, más la excepción FSL para integrar, ofrecer marca blanca o revender servicios impulsados por Vibecarbon. Pago único, sin suscripciones."
|
|
500
515
|
},
|
|
501
516
|
"q6": {
|
|
502
517
|
"question": "¿Cuántos proyectos puedo crear con una licencia?",
|
|
@@ -508,7 +523,7 @@
|
|
|
508
523
|
},
|
|
509
524
|
"q8": {
|
|
510
525
|
"question": "¿Qué pasa si Vibecarbon cierra?",
|
|
511
|
-
"answer": "No cambia nada para tu aplicación. El código generado está bajo licencia MIT y sin ninguna dependencia en tiempo de ejecución de Vibecarbon: es simplemente una base de código que te pertenece por completo. La CLI es
|
|
526
|
+
"answer": "No cambia nada para tu aplicación. El código generado está bajo licencia MIT y sin ninguna dependencia en tiempo de ejecución de Vibecarbon: es simplemente una base de código que te pertenece por completo. La CLI es Fair Source (FSL): puedes ejecutarla desde el código fuente indefinidamente para cualquier uso no competidor, y cada versión se convierte en código abierto MIT dos años después de su publicación. Tu infraestructura corre en tus propios servidores."
|
|
512
527
|
},
|
|
513
528
|
"q9": {
|
|
514
529
|
"question": "¿Necesito experiencia en DevOps para desplegar?",
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
},
|
|
294
294
|
"deploy": {
|
|
295
295
|
"label": "Déployer",
|
|
296
|
-
"description": "Déploie en production avec mise à l'échelle
|
|
296
|
+
"description": "Déploie en production avec mise à l'échelle, haute disponibilité, monitoring, CI/CD et plus encore."
|
|
297
297
|
}
|
|
298
298
|
},
|
|
299
299
|
"techStack": {
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
"traffic": {
|
|
353
353
|
"risk": "Ne supporte pas le trafic",
|
|
354
354
|
"protection": "Mise à l'échelle automatique",
|
|
355
|
-
"how": "Kubernetes
|
|
355
|
+
"how": "Autoscaling des pods Kubernetes plus mise à l'échelle des workers en une commande"
|
|
356
356
|
},
|
|
357
357
|
"redundancy": {
|
|
358
358
|
"risk": "Zéro redondance",
|
|
@@ -401,25 +401,40 @@
|
|
|
401
401
|
"compose": {
|
|
402
402
|
"name": "Docker Compose",
|
|
403
403
|
"tagline": "Un VPS, toute votre stack incluse.",
|
|
404
|
-
"features": [
|
|
404
|
+
"features": [
|
|
405
|
+
"1 serveur",
|
|
406
|
+
"Région unique"
|
|
407
|
+
],
|
|
405
408
|
"bestFor": "MVP et outils internes"
|
|
406
409
|
},
|
|
407
410
|
"composeHa": {
|
|
408
411
|
"name": "Compose HA",
|
|
409
|
-
"tagline": "Deux
|
|
410
|
-
"features": [
|
|
412
|
+
"tagline": "Deux régions, bascule en une commande.",
|
|
413
|
+
"features": [
|
|
414
|
+
"2 serveurs",
|
|
415
|
+
"Réplication en flux",
|
|
416
|
+
"Bascule en une commande"
|
|
417
|
+
],
|
|
411
418
|
"bestFor": "SaaS en production sans Kubernetes"
|
|
412
419
|
},
|
|
413
420
|
"k8s": {
|
|
414
421
|
"name": "Kubernetes",
|
|
415
|
-
"tagline": "Cluster k3s
|
|
416
|
-
"features": [
|
|
422
|
+
"tagline": "Cluster k3s de production.",
|
|
423
|
+
"features": [
|
|
424
|
+
"Région unique",
|
|
425
|
+
"Mise à l'échelle horizontale",
|
|
426
|
+
"Mises à jour progressives"
|
|
427
|
+
],
|
|
417
428
|
"bestFor": "Applications à fort trafic"
|
|
418
429
|
},
|
|
419
430
|
"k8sHa": {
|
|
420
431
|
"name": "Kubernetes HA",
|
|
421
432
|
"tagline": "Clusters multi-région, disponibilité maximale.",
|
|
422
|
-
"features": [
|
|
433
|
+
"features": [
|
|
434
|
+
"2 régions",
|
|
435
|
+
"Bascule de région",
|
|
436
|
+
"Autoscaling des pods"
|
|
437
|
+
],
|
|
423
438
|
"bestFor": "Critique et mondial"
|
|
424
439
|
}
|
|
425
440
|
},
|
|
@@ -459,7 +474,7 @@
|
|
|
459
474
|
"backups": "Sauvegardes S3 automatisées",
|
|
460
475
|
"cicd": "CI/CD via GitHub Actions",
|
|
461
476
|
"unlimited": "Serveurs et projets illimités",
|
|
462
|
-
"commercial": "
|
|
477
|
+
"commercial": "Exception FSL (intégration, marque blanche, revente)"
|
|
463
478
|
}
|
|
464
479
|
},
|
|
465
480
|
"fullerene": {
|
|
@@ -467,7 +482,7 @@
|
|
|
467
482
|
"cta": "Passer à Fullerene",
|
|
468
483
|
"features": {
|
|
469
484
|
"diamond": "Tout ce qu'inclut Diamond",
|
|
470
|
-
"commercial": "
|
|
485
|
+
"commercial": "Exception FSL : intégrer, proposer en marque blanche ou revendre des services propulsés par Vibecarbon",
|
|
471
486
|
"clients": "Déployez pour des clients et des organisations",
|
|
472
487
|
"corporate": "Équipes d'agence et d'entreprise",
|
|
473
488
|
"support": "Support e-mail prioritaire",
|
|
@@ -496,7 +511,7 @@
|
|
|
496
511
|
},
|
|
497
512
|
"q5": {
|
|
498
513
|
"question": "Comment fonctionne la tarification ?",
|
|
499
|
-
"answer": "Graphite est gratuit pour toujours — crée des projets, développe localement et utilise tous les modules. Diamond (149 $ à vie) offre une automatisation complète pour les indie hackers et startups — tous les modes de déploiement, sauvegardes, CI/CD et mise à l'échelle. Fullerene (499 $ à vie)
|
|
514
|
+
"answer": "Graphite est gratuit pour toujours — crée des projets, développe localement et utilise tous les modules. Diamond (149 $ à vie) offre une automatisation complète pour les indie hackers et startups — tous les modes de déploiement, sauvegardes, CI/CD et mise à l'échelle. Fullerene (499 $ à vie) s'adresse aux agences et à l'entreprise — déploie pour des clients, avec en plus l'exception FSL pour intégrer, proposer en marque blanche ou revendre des services propulsés par Vibecarbon. Paiement unique, sans abonnement."
|
|
500
515
|
},
|
|
501
516
|
"q6": {
|
|
502
517
|
"question": "Combien de projets puis-je créer avec une seule licence ?",
|
|
@@ -508,7 +523,7 @@
|
|
|
508
523
|
},
|
|
509
524
|
"q8": {
|
|
510
525
|
"question": "Que se passe-t-il si Vibecarbon ferme ses portes ?",
|
|
511
|
-
"answer": "Rien ne change pour votre application. Le code généré est sous licence MIT et n'a aucune dépendance d'exécution envers Vibecarbon — c'est simplement une base de code qui vous appartient entièrement. La CLI est
|
|
526
|
+
"answer": "Rien ne change pour votre application. Le code généré est sous licence MIT et n'a aucune dépendance d'exécution envers Vibecarbon — c'est simplement une base de code qui vous appartient entièrement. La CLI est Fair Source (FSL) — vous pouvez l'exécuter à partir des sources indéfiniment pour tout usage non concurrent, et chaque version devient open source MIT deux ans après sa publication. Votre infrastructure tourne sur vos propres serveurs."
|
|
512
527
|
},
|
|
513
528
|
"q9": {
|
|
514
529
|
"question": "Faut-il avoir une expérience DevOps pour déployer ?",
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
},
|
|
294
294
|
"deploy": {
|
|
295
295
|
"label": "Publicar",
|
|
296
|
-
"description": "Publica em produção com
|
|
296
|
+
"description": "Publica em produção com escalonamento, alta disponibilidade, monitorização, CI/CD e muito mais."
|
|
297
297
|
}
|
|
298
298
|
},
|
|
299
299
|
"techStack": {
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
"traffic": {
|
|
353
353
|
"risk": "Incapaz de escalar",
|
|
354
354
|
"protection": "Auto-scaling",
|
|
355
|
-
"how": "Auto-scaling Kubernetes
|
|
355
|
+
"how": "Auto-scaling de pods Kubernetes mais escalonamento de workers com um comando"
|
|
356
356
|
},
|
|
357
357
|
"redundancy": {
|
|
358
358
|
"risk": "Sem redundância",
|
|
@@ -401,25 +401,40 @@
|
|
|
401
401
|
"compose": {
|
|
402
402
|
"name": "Docker Compose",
|
|
403
403
|
"tagline": "Um VPS, com toda a sua stack incluída.",
|
|
404
|
-
"features": [
|
|
404
|
+
"features": [
|
|
405
|
+
"1 servidor",
|
|
406
|
+
"Região única"
|
|
407
|
+
],
|
|
405
408
|
"bestFor": "MVPs e ferramentas internas"
|
|
406
409
|
},
|
|
407
410
|
"composeHa": {
|
|
408
411
|
"name": "Compose HA",
|
|
409
|
-
"tagline": "
|
|
410
|
-
"features": [
|
|
412
|
+
"tagline": "Duas regiões, failover com um comando.",
|
|
413
|
+
"features": [
|
|
414
|
+
"2 servidores",
|
|
415
|
+
"Replicação em streaming",
|
|
416
|
+
"Failover com um comando"
|
|
417
|
+
],
|
|
411
418
|
"bestFor": "SaaS em produção sem Kubernetes"
|
|
412
419
|
},
|
|
413
420
|
"k8s": {
|
|
414
421
|
"name": "Kubernetes",
|
|
415
|
-
"tagline": "Cluster k3s
|
|
416
|
-
"features": [
|
|
422
|
+
"tagline": "Cluster k3s pronto para produção.",
|
|
423
|
+
"features": [
|
|
424
|
+
"Região única",
|
|
425
|
+
"Escalonamento horizontal",
|
|
426
|
+
"Atualizações graduais"
|
|
427
|
+
],
|
|
417
428
|
"bestFor": "Apps de alto tráfego"
|
|
418
429
|
},
|
|
419
430
|
"k8sHa": {
|
|
420
431
|
"name": "Kubernetes HA",
|
|
421
432
|
"tagline": "Clusters multirregião, disponibilidade máxima.",
|
|
422
|
-
"features": [
|
|
433
|
+
"features": [
|
|
434
|
+
"2 regiões",
|
|
435
|
+
"Failover de região",
|
|
436
|
+
"Auto-scaling de pods"
|
|
437
|
+
],
|
|
423
438
|
"bestFor": "Crítico e global"
|
|
424
439
|
}
|
|
425
440
|
},
|
|
@@ -459,7 +474,7 @@
|
|
|
459
474
|
"backups": "Backups S3 automáticos",
|
|
460
475
|
"cicd": "CI/CD via GitHub Actions",
|
|
461
476
|
"unlimited": "Servidores e projetos ilimitados",
|
|
462
|
-
"commercial": "
|
|
477
|
+
"commercial": "Exceção FSL (integração, white-label, revenda)"
|
|
463
478
|
}
|
|
464
479
|
},
|
|
465
480
|
"fullerene": {
|
|
@@ -467,7 +482,7 @@
|
|
|
467
482
|
"cta": "Ir para Fullerene",
|
|
468
483
|
"features": {
|
|
469
484
|
"diamond": "Tudo do Diamond",
|
|
470
|
-
"commercial": "
|
|
485
|
+
"commercial": "Exceção FSL: integrar, oferecer white-label ou revender serviços baseados no Vibecarbon",
|
|
471
486
|
"clients": "Implante para clientes e organizações",
|
|
472
487
|
"corporate": "Equipas de agência e empresas",
|
|
473
488
|
"support": "Suporte prioritário por e-mail",
|
|
@@ -496,7 +511,7 @@
|
|
|
496
511
|
},
|
|
497
512
|
"q5": {
|
|
498
513
|
"question": "Como funciona o modelo de preços?",
|
|
499
|
-
"answer": "O Graphite é gratuito para sempre — cria projetos, desenvolve localmente e usa todos os add-ons. O Diamond (149 $ vitalício) é automatização completa para indie hackers e startups — todos os modos de deployment, backups, CI/CD e escalamento. O Fullerene (499 $ vitalício) é
|
|
514
|
+
"answer": "O Graphite é gratuito para sempre — cria projetos, desenvolve localmente e usa todos os add-ons. O Diamond (149 $ vitalício) é automatização completa para indie hackers e startups — todos os modos de deployment, backups, CI/CD e escalamento. O Fullerene (499 $ vitalício) é para agências e empresas — faz deployment para clientes, mais a exceção FSL para integrar, oferecer white-label ou revender serviços baseados no Vibecarbon. Pagamento único, sem subscrições."
|
|
500
515
|
},
|
|
501
516
|
"q6": {
|
|
502
517
|
"question": "Quantos projetos posso criar com uma licença?",
|
|
@@ -508,7 +523,7 @@
|
|
|
508
523
|
},
|
|
509
524
|
"q8": {
|
|
510
525
|
"question": "O que acontece se o Vibecarbon encerrar?",
|
|
511
|
-
"answer": "Nada muda para a sua aplicação. O código gerado tem licença MIT sem qualquer dependência em tempo de execução do Vibecarbon — é apenas uma base de código que lhe pertence por completo. A CLI é
|
|
526
|
+
"answer": "Nada muda para a sua aplicação. O código gerado tem licença MIT sem qualquer dependência em tempo de execução do Vibecarbon — é apenas uma base de código que lhe pertence por completo. A CLI é Fair Source (FSL) — pode executá-la a partir do código-fonte indefinidamente para qualquer uso não concorrente, e cada versão torna-se open source MIT dois anos após a publicação. A sua infraestrutura corre nos seus próprios servidores."
|
|
512
527
|
},
|
|
513
528
|
"q9": {
|
|
514
529
|
"question": "Preciso de experiência em DevOps para implantar?",
|
|
@@ -52,7 +52,7 @@ const tierData: Record<string, TierInfo> = {
|
|
|
52
52
|
gradientClass: 'from-secondary-accent to-fuchsia-400',
|
|
53
53
|
features: [
|
|
54
54
|
'Everything in Diamond',
|
|
55
|
-
'
|
|
55
|
+
'FSL exception: embed, white-label, or resell Vibecarbon-powered services',
|
|
56
56
|
'Deploy for clients & organizations',
|
|
57
57
|
'Agency & enterprise teams',
|
|
58
58
|
'Priority email support',
|