diff --git a/frontend/public/badge-qwen-logo.png b/frontend/public/badge-qwen-logo.png new file mode 100644 index 00000000..3c8ae3fb Binary files /dev/null and b/frontend/public/badge-qwen-logo.png differ diff --git a/frontend/src/components/ComparisonChart.tsx b/frontend/src/components/ComparisonChart.tsx index d13187aa..8197cf3b 100644 --- a/frontend/src/components/ComparisonChart.tsx +++ b/frontend/src/components/ComparisonChart.tsx @@ -6,8 +6,6 @@ interface ComparisonData { lumo: string; duckAI: string; chatGPT: string; - claude: string; - grok: string; } const comparisonData: ComparisonData[] = [ @@ -16,81 +14,84 @@ const comparisonData: ComparisonData[] = [ maple: "Yes", lumo: "No", duckAI: "No", - chatGPT: "No", - claude: "No", - grok: "No" + chatGPT: "No" }, { feature: "Open-Source Code", maple: "Yes", lumo: "Partial", duckAI: "No", - chatGPT: "No", - claude: "No", - grok: "No" + chatGPT: "No" }, { feature: "Open Models", maple: "Yes", lumo: "Yes", duckAI: "Partial", - chatGPT: "No", - claude: "No", - grok: "No" + chatGPT: "No" }, { feature: "Never uses your data to train AI", maple: "Yes", lumo: "?", duckAI: "?", - chatGPT: "No", - claude: "No", - grok: "No" + chatGPT: "No" }, { feature: "Doesn't log your chats", maple: "Yes", lumo: "?", duckAI: "?", - chatGPT: "No", - claude: "No", - grok: "No" + chatGPT: "No" }, { feature: "Zero Data Retention", maple: "Yes", lumo: "?", duckAI: "?", - chatGPT: "$", - claude: "$", - grok: "$" + chatGPT: "$" + }, + { + feature: "Document Upload", + maple: "Yes", + lumo: "Yes", + duckAI: "No", + chatGPT: "Yes" + }, + { + feature: "Image Analysis", + maple: "Yes", + lumo: "No", + duckAI: "Yes", + chatGPT: "Yes" + }, + { + feature: "Voice Mode", + maple: "Yes", + lumo: "No", + duckAI: "No", + chatGPT: "Yes" }, { feature: "Integration With Coding IDE", maple: "Yes", lumo: "No", duckAI: "No", - chatGPT: "Yes", - claude: "Yes", - grok: "Yes" + chatGPT: "Yes" }, { feature: "Teams Plan", maple: "Yes", lumo: "No", duckAI: "No", - chatGPT: "Yes", - claude: "Yes", - grok: "Yes" + chatGPT: "Yes" }, { feature: "Developer API", maple: "Yes", lumo: "No", duckAI: "No", - chatGPT: "Yes", - claude: "Yes", - grok: "Yes" + chatGPT: "Yes" } ]; @@ -98,19 +99,19 @@ const ValueIcon = ({ value }: { value: string }) => { switch (value) { case "Yes": return ( -
+
); case "No": return ( -
+
); case "?": return ( -
+
{ ); case "$": return ( -
+
{ ); case "Partial": return ( -
+
@@ -196,7 +195,7 @@ export function ComparisonChart() { index % 2 === 0 ? "bg-[hsl(var(--marketing-card-highlight))]/20" : "" }`} style={{ - gridTemplateColumns: "minmax(200px, 1.5fr) repeat(6, minmax(80px, 1fr))" + gridTemplateColumns: "minmax(200px, 1.5fr) repeat(4, minmax(80px, 1fr))" }} >
diff --git a/frontend/src/components/Marketing.tsx b/frontend/src/components/Marketing.tsx index 3c2b1274..f4a9e2dc 100644 --- a/frontend/src/components/Marketing.tsx +++ b/frontend/src/components/Marketing.tsx @@ -19,6 +19,14 @@ import { ComparisonChart } from "./ComparisonChart"; import type { DiscountResponse } from "@/billing/billingApi"; import { Badge } from "@/components/ui/badge"; +const AI_MODELS = [ + { src: "/badge-openai-logo.png", alt: "OpenAI", labels: ["OpenAI GPT-OSS"] }, + { src: "/badge-google-logo.png", alt: "Google", labels: ["Google Gemma"] }, + { src: "/badge-deepseek-logo.png", alt: "DeepSeek", labels: ["DeepSeek R1", "DeepSeek V3.1 Terminus"] }, + { src: "/badge-qwen-logo.png", alt: "Qwen", labels: ["Qwen3 Coder", "Qwen3-VL"] }, + { src: "/badge-meta-logo.png", alt: "Meta", labels: ["Meta Llama"] } +]; + function CTAButton({ children, to, @@ -279,7 +287,7 @@ export function Marketing() {
- Start Secure Chat + Start Chatting Log In
@@ -369,9 +377,8 @@ export function Marketing() { Desktop @@ -405,8 +412,51 @@ export function Marketing() {
+ {/* AI Models Section */} +
+
+
+

+ Powerful AI models.{" "} + No data sharing. +

+

+ We use full-size open models from the biggest providers. +

+
+
+ {AI_MODELS.map((model) => ( +
+ {model.alt} +
+ {model.labels.map((label, index) => ( + + {label} + + ))} +
+
+ ))} +
+
+

+
+ None of your data is transmitted to these companies. +
+ Get the best without the mess. +

+
+
+
+ {/* Features Section */} -
+

@@ -442,7 +492,7 @@ export function Marketing() {

{/* Proof/Verification Section */} -
+