tfrere HF Staff commited on
Commit
5c85958
·
0 Parent(s):

Initial commit: Reachy Mini Website

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +5 -0
  2. .gitignore +24 -0
  3. Dockerfile +52 -0
  4. README.md +50 -0
  5. eslint.config.js +29 -0
  6. index.html +14 -0
  7. nginx.conf +23 -0
  8. package-lock.json +0 -0
  9. package.json +34 -0
  10. public/assets/Reachy-mini-wake-up-companion.mp4 +3 -0
  11. public/assets/application-box.svg +0 -0
  12. public/assets/assembly-screenshot.png +3 -0
  13. public/assets/desktop-app-screenshot--dark.png +3 -0
  14. public/assets/desktop-app-screenshot--white.png +3 -0
  15. public/assets/discord-logo.svg +4 -0
  16. public/assets/expression.svg +0 -0
  17. public/assets/hf-logo.svg +13 -0
  18. public/assets/idle-reachy-ai.gif +3 -0
  19. public/assets/idle-reachy-opencv.gif +3 -0
  20. public/assets/idle-reachy.gif +3 -0
  21. public/assets/joystick.svg +0 -0
  22. public/assets/logo--black.svg +13 -0
  23. public/assets/logo--white.svg +25 -0
  24. public/assets/logo.svg +33 -0
  25. public/assets/pollen-logo-icon.svg +22 -0
  26. public/assets/pollen-robotics-logo.svg +92 -0
  27. public/assets/reachies/astronaut.png +3 -0
  28. public/assets/reachies/captain.png +3 -0
  29. public/assets/reachies/cowboy.png +3 -0
  30. public/assets/reachies/doctor.png +3 -0
  31. public/assets/reachies/explorer.png +3 -0
  32. public/assets/reachies/hacker.png +3 -0
  33. public/assets/reachies/jazzman.png +3 -0
  34. public/assets/reachies/magician.png +3 -0
  35. public/assets/reachies/student.png +3 -0
  36. public/assets/reachy-conversation-app.jpg +3 -0
  37. public/assets/reachy-detective.svg +0 -0
  38. public/assets/reachy-hand-tracking-app.jpg +3 -0
  39. public/assets/reachy-how-to-create-app.svg +0 -0
  40. public/assets/reachy-icon.svg +31 -0
  41. public/assets/reachy-stop.svg +0 -0
  42. public/assets/reachy-update-box.svg +64 -0
  43. public/assets/rocket.svg +101 -0
  44. public/assets/sleeping-reachy.svg +0 -0
  45. public/favicon.svg +7 -0
  46. public/vite.svg +1 -0
  47. src/App.jsx +33 -0
  48. src/assets/hf-logo.svg +19 -0
  49. src/assets/original/alfred.png +3 -0
  50. src/assets/original/ambulance.png +3 -0
.gitattributes ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ *.mp4 filter=lfs diff=lfs merge=lfs -text
2
+ *.gif filter=lfs diff=lfs merge=lfs -text
3
+ *.png filter=lfs diff=lfs merge=lfs -text
4
+ *.jpg filter=lfs diff=lfs merge=lfs -text
5
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Logs
2
+ logs
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ pnpm-debug.log*
8
+ lerna-debug.log*
9
+
10
+ node_modules
11
+ dist
12
+ dist-ssr
13
+ *.local
14
+
15
+ # Editor directories and files
16
+ .vscode/*
17
+ !.vscode/extensions.json
18
+ .idea
19
+ .DS_Store
20
+ *.suo
21
+ *.ntvs*
22
+ *.njsproj
23
+ *.sln
24
+ *.sw?
Dockerfile ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Build stage
2
+ FROM node:20-slim AS builder
3
+
4
+ WORKDIR /app
5
+
6
+ # Copy package files
7
+ COPY package.json yarn.lock ./
8
+
9
+ # Install dependencies
10
+ RUN yarn install --frozen-lockfile
11
+
12
+ # Copy source code
13
+ COPY . .
14
+
15
+ # Build the app
16
+ RUN yarn build
17
+
18
+ # Production stage - nginx with dev mode support
19
+ FROM nginx:bookworm
20
+
21
+ # Install required packages for HF Spaces Dev Mode
22
+ RUN apt-get update && \
23
+ apt-get install -y \
24
+ bash \
25
+ git git-lfs \
26
+ wget curl procps \
27
+ htop vim nano && \
28
+ rm -rf /var/lib/apt/lists/*
29
+
30
+ # Setup /app directory for Dev Mode compatibility
31
+ WORKDIR /app
32
+
33
+ # Remove default nginx config
34
+ RUN rm /etc/nginx/conf.d/default.conf 2>/dev/null || true
35
+
36
+ # Copy custom nginx config
37
+ COPY nginx.conf /etc/nginx/conf.d/default.conf
38
+
39
+ # Copy built files from builder stage
40
+ COPY --from=builder /app/dist /usr/share/nginx/html
41
+
42
+ # Copy source for Dev Mode (so you can edit and rebuild)
43
+ COPY --from=builder /app /app
44
+
45
+ # Make /app owned by user 1000 for Dev Mode
46
+ RUN chown -R 1000:1000 /app
47
+
48
+ # Expose port
49
+ EXPOSE 7860
50
+
51
+ # Use CMD (required by Dev Mode, not ENTRYPOINT)
52
+ CMD ["nginx", "-g", "daemon off;"]
README.md ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Reachy Mini
3
+ emoji: 🤖
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: docker
7
+ pinned: false
8
+ ---
9
+
10
+ # Reachy Mini Website
11
+
12
+ The official website for Reachy Mini - an expressive companion robot designed for human interaction, creative coding, and AI experimentation.
13
+
14
+ ## 🚀 Auto-deploy
15
+
16
+ This site builds automatically on Hugging Face Spaces using Docker:
17
+ 1. Push to this repo
18
+ 2. HF builds the Docker image (Node.js + Vite build)
19
+ 3. Serves the static site with nginx
20
+
21
+ ## 💻 Local Development
22
+
23
+ ```bash
24
+ # Install dependencies
25
+ yarn install
26
+
27
+ # Start dev server
28
+ yarn dev
29
+
30
+ # Build for production
31
+ yarn build
32
+ ```
33
+
34
+ ## 🛠️ Stack
35
+
36
+ - **Vite** + **React 19**
37
+ - **MUI (Material-UI)** for components
38
+ - **React Router** for navigation
39
+ - **React Spring** for animations
40
+
41
+ ## 📁 Structure
42
+
43
+ ```
44
+ src/
45
+ ├── components/ # Reusable UI components
46
+ ├── context/ # React context (AppsContext)
47
+ ├── pages/ # Page components
48
+ ├── theme/ # MUI theme configuration
49
+ └── assets/ # Images, fonts
50
+ ```
eslint.config.js ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import js from '@eslint/js'
2
+ import globals from 'globals'
3
+ import reactHooks from 'eslint-plugin-react-hooks'
4
+ import reactRefresh from 'eslint-plugin-react-refresh'
5
+ import { defineConfig, globalIgnores } from 'eslint/config'
6
+
7
+ export default defineConfig([
8
+ globalIgnores(['dist']),
9
+ {
10
+ files: ['**/*.{js,jsx}'],
11
+ extends: [
12
+ js.configs.recommended,
13
+ reactHooks.configs.flat.recommended,
14
+ reactRefresh.configs.vite,
15
+ ],
16
+ languageOptions: {
17
+ ecmaVersion: 2020,
18
+ globals: globals.browser,
19
+ parserOptions: {
20
+ ecmaVersion: 'latest',
21
+ ecmaFeatures: { jsx: true },
22
+ sourceType: 'module',
23
+ },
24
+ },
25
+ rules: {
26
+ 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
27
+ },
28
+ },
29
+ ])
index.html ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <meta name="description" content="Reachy Mini is an expressive, open-source robot designed for human-robot interaction, creative coding, and AI experimentation." />
8
+ <title>Reachy Mini — Open Source Companion Robot</title>
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ <script type="module" src="/src/main.jsx"></script>
13
+ </body>
14
+ </html>
nginx.conf ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ server {
2
+ listen 7860;
3
+ server_name localhost;
4
+
5
+ root /usr/share/nginx/html;
6
+ index index.html index.htm;
7
+
8
+ location / {
9
+ try_files $uri $uri/ /index.html;
10
+ }
11
+
12
+ # Cache static assets
13
+ location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|mp4|webm)$ {
14
+ expires 1y;
15
+ add_header Cache-Control "public, immutable";
16
+ }
17
+
18
+ error_page 500 502 503 504 /50x.html;
19
+ location = /50x.html {
20
+ root /usr/share/nginx/html;
21
+ }
22
+ }
23
+
package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
package.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "reachy-mini-website",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "lint": "eslint .",
10
+ "preview": "vite preview"
11
+ },
12
+ "dependencies": {
13
+ "@emotion/react": "^11.14.0",
14
+ "@emotion/styled": "^11.14.1",
15
+ "@mui/icons-material": "^7.3.6",
16
+ "@mui/material": "^7.3.6",
17
+ "@react-spring/web": "^10.0.3",
18
+ "framer-motion": "^12.23.26",
19
+ "react": "^19.2.0",
20
+ "react-dom": "^19.2.0",
21
+ "react-router-dom": "^7.10.1"
22
+ },
23
+ "devDependencies": {
24
+ "@eslint/js": "^9.39.1",
25
+ "@types/react": "^19.2.5",
26
+ "@types/react-dom": "^19.2.3",
27
+ "@vitejs/plugin-react": "^5.1.1",
28
+ "eslint": "^9.39.1",
29
+ "eslint-plugin-react-hooks": "^7.0.1",
30
+ "eslint-plugin-react-refresh": "^0.4.24",
31
+ "globals": "^16.5.0",
32
+ "vite": "^7.2.4"
33
+ }
34
+ }
public/assets/Reachy-mini-wake-up-companion.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a1f5d23ffddfa87218f1697533f187cf76c3327e18234fa8ed5a2d8bf05dae0
3
+ size 15339406
public/assets/application-box.svg ADDED
public/assets/assembly-screenshot.png ADDED

Git LFS Details

  • SHA256: f63db53ee41209f30da7ffbfce633e28c5efc1c0c53c852a85063cb1f7496cef
  • Pointer size: 132 Bytes
  • Size of remote file: 1.86 MB
public/assets/desktop-app-screenshot--dark.png ADDED

Git LFS Details

  • SHA256: 88784ef09fbd28b55d44c446274240364f2737c792edc8614a408a8c72ed7175
  • Pointer size: 131 Bytes
  • Size of remote file: 637 kB
public/assets/desktop-app-screenshot--white.png ADDED

Git LFS Details

  • SHA256: 1cbe6a63430f4ce8049ef8c4695c928c2a37ed5e92c024e0eb76fdb2326160a2
  • Pointer size: 131 Bytes
  • Size of remote file: 667 kB
public/assets/discord-logo.svg ADDED
public/assets/expression.svg ADDED
public/assets/hf-logo.svg ADDED
public/assets/idle-reachy-ai.gif ADDED

Git LFS Details

  • SHA256: 0c496798eccd4f0a7572b257f31496484ab9b1717ec119a79c81149289193715
  • Pointer size: 132 Bytes
  • Size of remote file: 6.07 MB
public/assets/idle-reachy-opencv.gif ADDED

Git LFS Details

  • SHA256: 5643b49a1fbe6ec724cebcaaacf7796798f1295fe2122f18ef016cdad4823ea4
  • Pointer size: 132 Bytes
  • Size of remote file: 3.35 MB
public/assets/idle-reachy.gif ADDED

Git LFS Details

  • SHA256: cd1c7a487842b674720a8a3fb15393cd6e59efd71d20d395fed7d9bf9a914d99
  • Pointer size: 132 Bytes
  • Size of remote file: 7.77 MB
public/assets/joystick.svg ADDED
public/assets/logo--black.svg ADDED
public/assets/logo--white.svg ADDED
public/assets/logo.svg ADDED
public/assets/pollen-logo-icon.svg ADDED
public/assets/pollen-robotics-logo.svg ADDED
public/assets/reachies/astronaut.png ADDED

Git LFS Details

  • SHA256: 5ec06592da609306b699d29ba701daa10013a8978663f7133902db581e71d256
  • Pointer size: 131 Bytes
  • Size of remote file: 640 kB
public/assets/reachies/captain.png ADDED

Git LFS Details

  • SHA256: ca71dad3aa3d6c01a59115bea40c8267a3188e2c76e3e1dc422557c0126a1849
  • Pointer size: 131 Bytes
  • Size of remote file: 717 kB
public/assets/reachies/cowboy.png ADDED

Git LFS Details

  • SHA256: 729500a893083b48e1f9b6c6e1a8878ddae358edd4eb1b48a69899c0e4363228
  • Pointer size: 131 Bytes
  • Size of remote file: 786 kB
public/assets/reachies/doctor.png ADDED

Git LFS Details

  • SHA256: 0a0d362981db03948d11a10f87f2d4b42814deb8d1a16a31e3e14fcdf76b47cd
  • Pointer size: 131 Bytes
  • Size of remote file: 280 kB
public/assets/reachies/explorer.png ADDED

Git LFS Details

  • SHA256: 3cd02a31ada7e023460289998bd11c5cbd3c7c55cfabb214420ce4ad40a37f47
  • Pointer size: 131 Bytes
  • Size of remote file: 645 kB
public/assets/reachies/hacker.png ADDED

Git LFS Details

  • SHA256: 858d6a623768e6107a56c2828494acb18209b86dd1ea494cfbee8aa8d57195ce
  • Pointer size: 131 Bytes
  • Size of remote file: 431 kB
public/assets/reachies/jazzman.png ADDED

Git LFS Details

  • SHA256: 6ded3931bef0a593ea33221c5caab27ee000b8acf52ee972ab5c52fab387f442
  • Pointer size: 131 Bytes
  • Size of remote file: 638 kB
public/assets/reachies/magician.png ADDED

Git LFS Details

  • SHA256: 6b479d32c04eaba5b52176a87ef8725bfe05f3c67469b86ba1eab09af38b3488
  • Pointer size: 131 Bytes
  • Size of remote file: 926 kB
public/assets/reachies/student.png ADDED

Git LFS Details

  • SHA256: 8bb2ef774a09acfd8dc496f286705422838999fc71c6fe32a597a3b4569315d8
  • Pointer size: 131 Bytes
  • Size of remote file: 622 kB
public/assets/reachy-conversation-app.jpg ADDED

Git LFS Details

  • SHA256: 0245adfd5b60c2c21bc4ae8f6e31f9565b2a35915c1f171a0538c46ecfc40e70
  • Pointer size: 131 Bytes
  • Size of remote file: 160 kB
public/assets/reachy-detective.svg ADDED
public/assets/reachy-hand-tracking-app.jpg ADDED

Git LFS Details

  • SHA256: 62e22f77be87cf46bcaae86babc0544193dc910c9c1a1909d64af0172e5a9f23
  • Pointer size: 131 Bytes
  • Size of remote file: 161 kB
public/assets/reachy-how-to-create-app.svg ADDED
public/assets/reachy-icon.svg ADDED
public/assets/reachy-stop.svg ADDED
public/assets/reachy-update-box.svg ADDED
public/assets/rocket.svg ADDED
public/assets/sleeping-reachy.svg ADDED
public/favicon.svg ADDED
public/vite.svg ADDED
src/App.jsx ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { BrowserRouter, Routes, Route } from 'react-router-dom';
2
+ import { ThemeProvider, CssBaseline } from '@mui/material';
3
+ import theme from './theme/theme';
4
+ import { AppsProvider } from './context/AppsContext';
5
+
6
+ import Home from './pages/Home';
7
+ import Download from './pages/Download';
8
+ import FAQ from './pages/FAQ';
9
+ import Apps from './pages/Apps';
10
+ import Buy from './pages/Buy';
11
+ import GettingStarted from './pages/GettingStarted';
12
+ import Build from './pages/Build';
13
+
14
+ export default function App() {
15
+ return (
16
+ <ThemeProvider theme={theme}>
17
+ <CssBaseline />
18
+ <AppsProvider>
19
+ <BrowserRouter>
20
+ <Routes>
21
+ <Route path="/" element={<Home />} />
22
+ <Route path="/getting-started" element={<GettingStarted />} />
23
+ <Route path="/build" element={<Build />} />
24
+ <Route path="/download" element={<Download />} />
25
+ <Route path="/faq" element={<FAQ />} />
26
+ <Route path="/apps" element={<Apps />} />
27
+ <Route path="/buy" element={<Buy />} />
28
+ </Routes>
29
+ </BrowserRouter>
30
+ </AppsProvider>
31
+ </ThemeProvider>
32
+ );
33
+ }
src/assets/hf-logo.svg ADDED
src/assets/original/alfred.png ADDED

Git LFS Details

  • SHA256: aa14803e93b9efd0e3c0ab5b4d7c9a7f6d86fc30e3c00d67944a21cdfdfa5020
  • Pointer size: 131 Bytes
  • Size of remote file: 862 kB
src/assets/original/ambulance.png ADDED

Git LFS Details

  • SHA256: 1ebcd3161b7a0484b19eda75ac48b8ad442a4b33aef4064ae898e890c3ca6be9
  • Pointer size: 131 Bytes
  • Size of remote file: 616 kB