Files
descrybe/apps/web/src/lib/components/site/data.ts
T

254 lines
7.4 KiB
TypeScript
Raw Normal View History

import { DEMO_BOOKING_URL } from "$lib/site";
export type ProcessStep = {
number: number;
title: string;
description: string;
features: Array<{ text: string }>;
image: string;
};
export type Benefit = {
title: string;
description: string;
icon: "shield" | "chart" | "database" | "search" | "cost" | "scale";
};
export type MainBenefitStat = {
label: string;
value: string;
subtext: string;
highlight?: boolean;
};
export type {
PricingFeature,
PricingPlan,
PricingFaqItem
} from "../pricing/pricing-data";
export {
PRICING_PLANS,
PRICING_FAQ,
PRICING_CAPABILITIES as PLATFORM_CAPABILITIES,
SALES_CALENDLY_URL,
CONTACT_SALES_HREF,
ANNUAL_DISCOUNT
} from "../pricing/pricing-data";
/**
* Mid-page product explanation — kept for ProductExplanationSection (not on homepage).
* Homepage mid-page matches legacy: Image → HowItWorks → Benefits → [Pricing] → CTA.
*/
export const PRODUCT_EXPLANATION = {
id: "product",
eyebrow: "What Descrybe does",
title: "Supplier feeds in. Ready listings out — export, WooCommerce, or API.",
description:
"Descrybe helps ecommerce teams turn supplier CSV and XML feeds into clean product catalogs. Map fields to your categories, enrich attributes and listing copy, then ship data through export feeds, WooCommerce sync, or the public API.",
pipeline: [
{ label: "Feeds in", detail: "CSV / XML from supplier URLs" },
{ label: "Map", detail: "Match columns to your fields" },
{ label: "Enrich", detail: "Categories, attributes, titles" },
{ label: "Ship", detail: "Export · Woo · API" }
]
} as const;
/** Matches legacy `components/site/how-it-works/process-data.tsx`. */
export const PROCESS_STEPS: ProcessStep[] = [
{
number: 1,
title: "Import Your Taxonomy",
description: "Set up the categories and attributes your store already uses",
features: [
{ text: "Define required attributes for each category" },
{ text: "Set per-category title formulas" },
{ text: "Set product description and search-snippet templates" }
],
image: "/import_taxonomy.png"
},
{
number: 2,
title: "Import Supplier Data",
description: "Connect a feed URL or upload a product file",
features: [
{ text: "Import from CSV, XML, or API sources" },
{ text: "Schedule automated imports from your suppliers" },
{ text: "Map source fields with a simple drag-and-drop interface" }
],
image: "/import_suppliers.png"
},
{
number: 3,
title: "Transform & Enhance",
description: "Pick the products to process and let Descrybe:",
features: [
{ text: "Assign the right categories" },
{ text: "Fill required product attributes" },
{ text: "Create clear, search-friendly titles and descriptions" }
],
image: "/enhance_products.png"
},
{
number: 4,
title: "Export to Channels",
description: "Push ready product data to the places you sell",
features: [
{ text: "Generate channel-specific product feeds" },
{ text: "Keep full control over which fields you export" },
{ text: "Stay up to date as supplier data changes" }
],
image: "/export_data.png"
}
];
/** Matches legacy `MAIN_BENEFIT` (passed on legacy page; not rendered by BenefitsSection). */
export const MAIN_BENEFIT = {
title: "Faster path from feed to listing",
description:
"Descrybe cuts the manual work of turning raw supplier data into store-ready product pages — categorize, fill attributes, and write listing copy at catalog scale.",
stats: [
{
label: "Manual Process",
value: "10 Products",
subtext: "per hour per person",
highlight: false
},
{
label: "With Descrybe",
value: "30 Products",
subtext: "per minute",
highlight: true
},
{
label: "Time Savings",
value: "99.4%",
subtext: "efficiency increase",
highlight: false
}
] as MainBenefitStat[],
timeMetric: {
label: "Save",
value: "1,700+",
unit: "hours monthly"
}
};
/** Matches legacy `STANDARD_BENEFITS`. */
export const STANDARD_BENEFITS: Benefit[] = [
{
icon: "shield",
title: "Catch incomplete listings early",
description:
"Check product data against your category rules so missing attributes and thin copy get fixed before they go live."
},
{
icon: "chart",
title: "Clearer listings, stronger conversion",
description:
"Titles and descriptions that highlight what shoppers care about — benefits, specs, and search terms that match your catalog."
},
{
icon: "database",
title: "One consistent product structure",
description:
"Keep the same category tree and attribute shape across exports and channels so customers can find products the same way everywhere."
},
{
icon: "search",
title: "Search-friendly product content",
description:
"Write titles, descriptions, and meta snippets that are easier for shoppers and search engines to understand."
},
{
icon: "cost",
title: "Less manual data entry",
description:
"Automate mapping, attribute fill, and listing copy so your team spends time on merchandising — not spreadsheet cleanup."
},
{
icon: "scale",
title: "Ready for every sales channel",
description:
"Shape export feeds and WooCommerce sync for the formats each channel expects, without rebuilding the catalog by hand."
}
];
/** Matches legacy `CTA_DATA` (badge/stats carried for parity; banner UI shows title/features/CTA). */
export const CTA_DATA = {
badge: {
text: "Stop Wasting Time",
icon: "⏱️"
},
titleLead: "Get Products To Market ",
titleHighlight: "Faster",
description:
"Stop rebuilding product data from every supplier file. Map once, enrich with your rules, and publish listings that are ready to sell.",
features: [
{
text: "Personalized demo",
description: "See how Descrybe fits your feeds and store"
},
{
text: "Expert consultation",
description: "Talk through taxonomy, mapping, and export setup"
},
{
text: "Clear next steps",
description: "A practical plan for your catalog size and channels"
}
],
stats: [
{ value: "$140K", label: "Average annual savings" },
{ value: "+98%", label: "Content Accuracy" },
{ value: "180x", label: "Faster time-to-market" },
{ value: "2.4x", label: "Product catalog growth" }
],
ctaButton: {
text: "Apply For Access",
href: DEMO_BOOKING_URL
}
};
/**
* Legacy gates pricing behind feature flags (default off for public visitors).
* v2 keeps public pricing visible on the homepage and /pricing.
*/
export const PRICING_ENABLED = true;
export const FOOTER_DATA = {
companyName: "Descrybe",
companyDescription:
"Descrybe turns supplier feeds into clean, channel-ready product catalogs — map fields, enrich attributes and listing copy, then export or sync to WooCommerce.",
columns: [
{
title: "Navigation",
links: [
{ text: "Platform", href: "/#how-it-works" },
{ text: "Solutions", href: "/#benefits" },
{ text: "Contact Us", href: "/#cta" },
...(PRICING_ENABLED ? [{ text: "Pricing", href: "/pricing" }] : [])
]
}
],
contactInfo: {
email: "info@descrybe.io"
},
legalLinks: [
{ text: "API Docs", href: "/docs" },
{ text: "Privacy Policy", href: "/privacy" },
{ text: "Cookie Policy", href: "/cookies" },
{ text: "Terms of Service", href: "/terms" }
] as Array<{ text: string; href: string }>
};
/**
* Public marketing primary nav.
* Log in / Get started live in header actions (email auth in v2; Clerk in legacy).
*/
export const NAV_ITEMS = [
{ title: "Home", href: "/" },
...(PRICING_ENABLED ? [{ title: "Pricing", href: "/pricing" }] : []),
{ title: "API Docs", href: "/docs" }
] as Array<{ title: string; href: string }>;