diff --git a/packages/react-chat/src/assets/svg/arrow-right.svg b/packages/react-chat/src/assets/svg/arrow-right.svg
new file mode 100644
index 0000000000..8326ced402
--- /dev/null
+++ b/packages/react-chat/src/assets/svg/arrow-right.svg
@@ -0,0 +1,4 @@
+
diff --git a/packages/react-chat/src/assets/svg/coffee.svg b/packages/react-chat/src/assets/svg/coffee.svg
new file mode 100644
index 0000000000..35e1549a4f
--- /dev/null
+++ b/packages/react-chat/src/assets/svg/coffee.svg
@@ -0,0 +1,7 @@
+
diff --git a/packages/react-chat/src/assets/svg/index.ts b/packages/react-chat/src/assets/svg/index.ts
index 8dcfef7653..2aa7869faf 100644
--- a/packages/react-chat/src/assets/svg/index.ts
+++ b/packages/react-chat/src/assets/svg/index.ts
@@ -1,5 +1,7 @@
export { default as close } from './close.svg?react';
export { default as closeV2 } from './closeV2.svg?react';
+export { default as coffee } from './coffee.svg?react';
+export { default as arrowRight } from './arrow-right.svg?react';
export { default as largeArrowLeft } from './large-arrow-left.svg?react';
export { default as microphone } from './microphone.svg?react';
export { default as minus } from './minus.svg?react';
diff --git a/packages/react-chat/src/components/BeanScan/index.tsx b/packages/react-chat/src/components/BeanScan/index.tsx
new file mode 100644
index 0000000000..5ae248c6f4
--- /dev/null
+++ b/packages/react-chat/src/components/BeanScan/index.tsx
@@ -0,0 +1,84 @@
+import Icon from '../Icon';
+import { styled } from '../../styles';
+import React from 'react';
+
+const Container = styled('div', {
+ minHeight: '100vh',
+ background: 'white',
+ display: 'flex',
+ flexDirection: 'column',
+ alignItems: 'center',
+ justifyContent: 'center',
+ padding: '1rem',
+});
+
+const LogoContainer = styled('div', {
+ position: 'relative',
+ marginBottom: '2rem',
+});
+
+const MainIcon = styled(Icon, {
+ width: '6rem',
+ height: '6rem',
+ color: '$stone800',
+});
+
+const SmallIcon = styled(Icon, {
+ width: '3rem',
+ height: '3rem',
+ color: '$stone600',
+ position: 'absolute',
+ '&.top': {
+ top: '-1rem',
+ right: '-1rem',
+ transform: 'rotate(45deg)',
+ },
+ '&.bottom': {
+ bottom: '-1rem',
+ left: '-1rem',
+ transform: 'rotate(-45deg)',
+ },
+});
+
+const Title = styled('h1', {
+ fontSize: '1.875rem',
+ fontWeight: 'bold',
+ marginBottom: '0.5rem',
+ color: '$gray900',
+});
+
+const Subtitle = styled('p', {
+ fontSize: '1rem',
+ color: '$gray600',
+ marginBottom: '4rem',
+});
+
+const Button = styled('button', {
+ backgroundColor: '$gray900',
+ color: 'white',
+ padding: '0.75rem',
+ borderRadius: '9999px',
+ '&:hover': {
+ backgroundColor: '$gray800',
+ transition: 'background-color 0.2s',
+ },
+});
+
+export const BeanScan: React.FC = () => {
+ return (
+
+
+
+
+
+
+ BeanScan
+ Scan & Explore Origins
+
+
+ );
+};
+
+export default BeanScan;