diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css index ad5a141..ea3f1c2 100644 --- a/apps/web/src/app/globals.css +++ b/apps/web/src/app/globals.css @@ -22,37 +22,37 @@ --color-warning: #fbbf24; --color-error: #f87171; - /* Fonts */ - --font-display: "Space Grotesk", system-ui, sans-serif; - --font-body: "IBM Plex Sans", system-ui, sans-serif; - --font-mono: "JetBrains Mono", "Fira Code", monospace; + /* Fonts - Geist Mono everywhere for consistency with desktop app */ + --font-display: "Geist Mono", monospace; + --font-body: "Geist Mono", monospace; + --font-mono: "Geist Mono", monospace; } @font-face { - font-family: "Space Grotesk"; - src: url("https://fonts.gstatic.com/s/spacegrotesk/v16/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2") format("woff2"); - font-weight: 300 700; - font-display: swap; -} - -@font-face { - font-family: "IBM Plex Sans"; - src: url("https://fonts.gstatic.com/s/ibmplexsans/v19/zYXgKVElMYYaJe8bpLHnCwDKhdHeFQ.woff2") format("woff2"); + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/GeistMono-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; } @font-face { - font-family: "IBM Plex Sans"; - src: url("https://fonts.gstatic.com/s/ibmplexsans/v19/zYX9KVElMYYaJe8bpLHnCwDKjSL9AIFsdA.woff2") format("woff2"); + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/GeistMono-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; } @font-face { - font-family: "JetBrains Mono"; - src: url("https://fonts.gstatic.com/s/jetbrainsmono/v18/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxjPVmUsaaDhw.woff2") format("woff2"); - font-weight: 400 700; + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/GeistMono-SemiBold.woff2") format("woff2"); + font-weight: 600; + font-display: swap; +} + +@font-face { + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/GeistMono-Bold.woff2") format("woff2"); + font-weight: 700; font-display: swap; } diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 9f1037a..0294e3f 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -2,7 +2,6 @@ import { Header } from '@/components/marketing/header' import { Hero } from '@/components/marketing/hero' import { Features } from '@/components/marketing/features' import { Pricing } from '@/components/marketing/pricing' -import { Comparison } from '@/components/marketing/comparison' import { FAQ } from '@/components/marketing/faq' import { CTA } from '@/components/marketing/cta' import { Footer } from '@/components/marketing/footer' @@ -15,7 +14,6 @@ export default function Home() { - diff --git a/apps/web/src/components/marketing/comparison.tsx b/apps/web/src/components/marketing/comparison.tsx deleted file mode 100644 index 893cad8..0000000 --- a/apps/web/src/components/marketing/comparison.tsx +++ /dev/null @@ -1,171 +0,0 @@ -import { Check, X, Minus } from 'lucide-react' - -const tools = ['data-peek', 'pgAdmin', 'DBeaver', 'TablePlus'] - -const comparisons = [ - { - category: 'Performance', - features: [ - { name: 'Startup Time', values: ['< 2s', '5-10s', '10-15s', '2-3s'] }, - { name: 'Memory Usage', values: ['Low', 'High', 'Very High', 'Low'] }, - { name: 'Native Performance', values: [true, false, false, true] }, - ], - }, - { - category: 'Features', - features: [ - { name: 'Query Editor', values: [true, true, true, true] }, - { name: 'ER Diagrams', values: [true, true, true, true] }, - { name: 'Inline Editing', values: [true, true, true, true] }, - { name: 'Query Plans', values: [true, true, true, 'Limited'] }, - { name: 'Dark Mode', values: [true, false, true, true] }, - ], - }, - { - category: 'Experience', - features: [ - { name: 'Learning Curve', values: ['Minimal', 'Steep', 'Steep', 'Minimal'] }, - { name: 'Modern UI', values: [true, false, false, true] }, - { name: 'Keyboard-First', values: [true, false, false, true] }, - { name: 'PostgreSQL Focus', values: [true, true, false, false] }, - ], - }, - { - category: 'Pricing', - features: [ - { name: 'Price', values: ['$29', 'Free', 'Free/$199', '$69'] }, - { name: 'One-time Purchase', values: [true, 'N/A', false, true] }, - { name: 'No Subscription', values: [true, true, false, true] }, - ], - }, -] - -function CellValue({ value }: { value: boolean | string }) { - if (typeof value === 'boolean') { - return value ? ( -
- -
- ) : ( -
- -
- ) - } - - if (value === 'N/A' || value === 'Limited') { - return ( - {value} - ) - } - - return {value} -} - -export function Comparison() { - return ( -
- {/* Background */} -
- -
- {/* Section Header */} -
-

- Comparison -

-

- How we stack up. -

-

- Honest comparison with popular alternatives. -

-
- - {/* Comparison Table */} -
- - {/* Header */} - - - - ))} - - - - {/* Body */} - - {comparisons.map((section) => ( - <> - {/* Category Row */} - - - - - {/* Feature Rows */} - {section.features.map((feature) => ( - - - {feature.values.map((value, index) => ( - - ))} - - ))} - - ))} - -
- {tools.map((tool, index) => ( - - - {tool} - -
- {section.category} -
- {feature.name} - -
- -
-
-
-
-
- ) -} diff --git a/apps/web/src/components/marketing/header.tsx b/apps/web/src/components/marketing/header.tsx index 5da67fb..579b6af 100644 --- a/apps/web/src/components/marketing/header.tsx +++ b/apps/web/src/components/marketing/header.tsx @@ -8,7 +8,6 @@ import { Database, Menu, X } from 'lucide-react' const navLinks = [ { href: '#features', label: 'Features' }, { href: '#pricing', label: 'Pricing' }, - { href: '#comparison', label: 'Compare' }, { href: '#faq', label: 'FAQ' }, ] diff --git a/apps/web/src/components/marketing/index.ts b/apps/web/src/components/marketing/index.ts index 72c5094..bcd0283 100644 --- a/apps/web/src/components/marketing/index.ts +++ b/apps/web/src/components/marketing/index.ts @@ -2,7 +2,6 @@ export { Header } from './header' export { Hero } from './hero' export { Features } from './features' export { Pricing } from './pricing' -export { Comparison } from './comparison' export { FAQ } from './faq' export { CTA } from './cta' export { Footer } from './footer'