import { useState } from 'react';
import { Link as RouterLink } from 'react-router-dom';
import {
Box,
Container,
Typography,
Button,
Grid,
Card,
CardContent,
Chip,
Stack,
Accordion,
AccordionSummary,
AccordionDetails,
Table,
TableBody,
TableCell,
TableContainer,
TableHead,
TableRow,
Paper,
} from '@mui/material';
import CheckIcon from '@mui/icons-material/Check';
import CloseIcon from '@mui/icons-material/Close';
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
import LocalShippingIcon from '@mui/icons-material/LocalShipping';
import InventoryIcon from '@mui/icons-material/Inventory';
import SupportAgentIcon from '@mui/icons-material/SupportAgent';
import BuildIcon from '@mui/icons-material/Build';
import Layout from '../components/Layout';
import DecorativeShape from '../components/DecorativeShape';
// Product data
const products = {
wireless: {
name: 'Reachy Mini',
tagline: 'The complete experience',
price: 449,
badge: 'Wireless',
badgeColor: '#0ea5e9',
description: 'Self-contained robot with on-board compute. Works wirelessly or wired, perfect for standalone projects and demos. Ships in 90 days',
buyLink: 'https://buy.stripe.com/9B65kFfFlaKFbY34W873G03',
image: '/assets/reachy-wireless.png',
featured: true,
},
lite: {
name: 'Reachy Mini Lite',
tagline: 'Perfect to get started',
price: 299,
badge: 'Lite',
badgeColor: '#f59e0b',
description: 'Connect to your computer via USB. Same expressive robot, powered by your machine. Ideal for development and learning. Ships in 90 days',
buyLink: 'https://buy.stripe.com/6oUfZj78P1a5e6b0FS73G02',
image: '/assets/reachy-lite.png',
featured: false,
},
};
// Comparison features
const comparisonFeatures = [
{ name: 'Motors & Mechanics', wireless: '9 servo motors', lite: '9 servo motors' },
{ name: 'Head Movement', wireless: '6 DOF (pitch, roll, yaw, x, y, z)', lite: '6 DOF (pitch, roll, yaw, x, y, z)' },
{ name: 'Body Rotation', wireless: '±160°', lite: '±160' },
{ name: 'Antennas', wireless: '2 animated antennas', lite: '2 animated antennas' },
{ name: 'Camera', wireless: 'Wide angle', lite: 'Wide angle' },
{ name: 'Microphones', wireless: '4 microphones array', lite: '4 microphones array' },
{ name: 'Speaker', wireless: '5W speaker', lite: '5W speaker' },
{ name: 'On-board Compute', wireless: 'Raspberry Pi 4 (16GB storage)', lite: false },
{ name: 'Accelerometer', wireless: 'Built-in IMU', lite: false },
{ name: 'Wi-Fi Connectivity', wireless: 'Wi-Fi', lite: false },
{ name: 'Standalone Mode', wireless: true, lite: false },
{ name: 'USB Connection', wireless: true, lite: true },
{ name: 'Power', wireless: 'Battery powered + power supply (7.3V / 5A)', lite: 'Power supply (7.3V / 5A)' },
];
// What's in the box
const boxContents = [
{ icon: '🤖', title: 'Plastic Parts', description: 'All structural components are injection molded and ready to assemble' },
{ icon: '⚙️', title: 'Motors & Electronics', description: '9 servo motors, control board, and two electronic boards' },
{ icon: '📷', title: 'Camera Module', description: 'Wide-angle camera for vision applications' },
{ icon: '🔊', title: 'Audio System', description: '4 microphones array + 5W speaker for voice interaction' },
{ icon: '🔧', title: 'Hardware Kit', description: 'All screws, cables, and tools included' },
{ icon: '📖', title: 'Documentation', description: 'Step-by-step assembly guide and quickstart materials' },
];
// FAQ data
const faqItems = [
{
question: 'What is the difference between Wireless and Lite?',
answer: 'The Wireless version includes a Raspberry Pi 4 built-in, allowing it to run standalone without a computer. The Lite version connects to your Mac, Linux, or Windows computer via USB and uses your computer for processing. Both versions have the same mechanical design and audio/video capabilities.',
},
{
question: 'How long does assembly take?',
answer: 'Most users report 1.5–2 hours for assembly. The kit comes with pre-printed parts and clear step-by-step video instructions. No soldering required!',
},
{
question: 'What about customs and import taxes?',
answer: 'The displayed price does not include customs duties or import taxes, which vary by country. You may be responsible for these fees upon delivery.',
},
{
question: 'Can I upgrade from Lite to Wireless later?',
answer: 'The electronics architecture is different between versions, so a direct upgrade isn\'t possible. However, you can always purchase the Wireless version separately if you want standalone capabilities.',
},
{
question: 'What software is included?',
answer: 'All software is open-source and free. You get access to the Python SDK, desktop dashboard, and the entire library of community-built applications on Hugging Face Spaces.',
},
];
// Hero Section
function HeroSection() {
return (
{/* Decorative elements */}
Open Source Robot Kit
Buy Reachy Mini
An expressive companion robot designed for human interaction, creative coding, and AI experimentation. Assemble in 2 hours, code in Python, endless possibilities.
{/*
}
label="Free worldwide shipping"
sx={{
bgcolor: 'rgba(255,255,255,0.1)',
color: 'white',
fontSize: 13,
fontWeight: 500,
px: 1,
}}
/>
}
label="Ships in 3-5 days"
sx={{
bgcolor: 'rgba(255,255,255,0.1)',
color: 'white',
fontSize: 13,
fontWeight: 500,
px: 1,
}}
/>
}
label="1-year warranty"
sx={{
bgcolor: 'rgba(255,255,255,0.1)',
color: 'white',
fontSize: 13,
fontWeight: 500,
px: 1,
}}
/>
*/}
);
}
// Product Cards Section
function ProductCardsSection() {
const [hoveredCard, setHoveredCard] = useState(null);
return (
{Object.entries(products).map(([key, product]) => (
setHoveredCard(key)}
onMouseLeave={() => setHoveredCard(null)}
sx={{
height: '100%',
display: 'flex',
flexDirection: 'column',
position: 'relative',
overflow: 'visible',
border: product.featured ? '2px solid' : '1px solid',
borderColor: product.featured ? '#FF9500' : 'divider',
transform: hoveredCard === key ? 'translateY(-8px)' : 'none',
boxShadow: hoveredCard === key
? '0 20px 60px rgba(0, 0, 0, 0.15)'
: '0 8px 32px rgba(0, 0, 0, 0.08)',
transition: 'all 0.3s ease',
}}
>
{product.featured && (
)}
{/* Badge */}
{/* Title & Tagline */}
{product.name}
{product.tagline}
{/* Price */}
${product.price}
USD
{/* Description */}
{product.description}
{/* Key highlights */}
{key === 'wireless' ? (
<>
>
) : (
<>
>
)}
{/* CTA Button */}
}
sx={product.featured ? {
bgcolor: '#FF9500',
'&:hover': { bgcolor: '#e68600' },
} : {}}
>
Buy {product.badge} — ${product.price}
))}
);
}
// Feature row helper
function FeatureRow({ icon, text, highlight = false }) {
return (
{icon}
{text}
);
}
// Comparison Table Section
function ComparisonSection() {
return (
Compare Versions
Full Feature Comparison
Both versions share the same mechanical design and audio/video capabilities.
The main difference is the on-board compute.
Feature
$449
$299
{comparisonFeatures.map((feature, index) => (
{feature.name}
))}
);
}
// Feature value helper
function FeatureValue({ value }) {
if (value === true) {
return ;
}
if (value === false) {
return ;
}
return {value};
}
// What's in the Box Section
function WhatsInTheBoxSection() {
return (
Complete Kit
What's in the Box
Everything you need to build your Reachy Mini. No 3D printer or soldering required.
{boxContents.map((item, index) => (
{item.icon}
{item.title}
{item.description}
))}
}
>
View Assembly Guide
);
}
// FAQ Section
function FAQSection() {
return (
Questions?
Frequently Asked
{faqItems.map((item, index) => (
}>
{item.question}
{item.answer}
))}
Still have questions?
}
>
Ask on Discord
);
}
// Final CTA Section
function FinalCTASection() {
return (
Ready to build your Reachy Mini?
Join hundreds of makers, developers, and AI enthusiasts who are already creating with Reachy Mini.
}
sx={{
bgcolor: '#FF9500',
px: 4,
'&:hover': { bgcolor: '#e68600' },
}}
>
Buy Wireless — $449
}
sx={{
borderColor: 'rgba(255,255,255,0.3)',
color: 'white',
px: 4,
'&:hover': {
borderColor: 'white',
bgcolor: 'rgba(255,255,255,0.1)',
},
}}
>
Buy Lite — $299
);
}
// Main Buy Page
export default function Buy() {
return (
);
}