diff --git a/.DS_Store b/.DS_Store
index b19dd8f..a2de8ff 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/README.md b/README.md
index 42b2c29..d471067 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# 🚀 ElatoAI: Realtime AI Speech for ESP32
+# 🚀 ElatoAI: Realtime Speech AI Agents for ESP32
Realtime AI Speech powered by OpenAI Realtime API, ESP32, Secure WebSockets, and Deno Edge Functions for >10-minute uninterrupted global conversations
@@ -32,20 +32,29 @@ https://github.com/user-attachments/assets/aa60e54c-5847-4a68-80b5-5d6b1a5b9328
## ⚡️ DIY Hardware Design
-
+
-
+
+
+
+
Select from a list of personalized AI characters
+
+
+
+
Talk to your AI with real-time responses
+
+
+
+
Create personalized AI characters
+
+
+
+
## Getting Started
@@ -119,16 +128,17 @@ ElatoAI consists of three main components:
7. **Global Edge Performance**: Low latency Deno Edge Functions ensuring seamless global conversations.
8. **ESP32 Arduino Framework**: Optimized and easy-to-use hardware integration.
9. **Conversation History**: View your conversation history.
-10. **Device Management**: Register and manage your devices.
+10. **Device Management and Authentication**: Register and manage your devices.
11. **User Authentication**: Secure user authentication and authorization.
12. **Conversations with WebRTC and Websockets**: Talk to your AI with WebRTC on the NextJS webapp and with websockets on the ESP32.
13. **Volume Control**: Control the volume of the ESP32 speaker from the NextJS webapp.
14. **Realtime Transcripts**: The realtime transcripts of your conversations are stored in the Supabase DB.
15. **OTA Updates**: Over the Air Updates for the ESP32 firmware.
-16. **Wifi Management**: Connect to your Wifi network from the ESP32 device.
+16. **Wifi Management with captive portal**: Connect to your Wifi network from the ESP32 device.
17. **Factory Reset**: Factory reset the ESP32 device from the NextJS webapp.
18. **Button and Touch Support**: Use the button OR touch sensor to control the ESP32 device.
19. **No PSRAM Required**: The ESP32 device does not require PSRAM to run the speech to speech AI.
+20. **OAuth for Web client**: OAuth for your users to manage their AI characters and devices.
## 🛠 Tech Stack
diff --git a/Usecases.md b/Usecases.md
index de72451..ecc3ed8 100644
--- a/Usecases.md
+++ b/Usecases.md
@@ -1,6 +1,6 @@
# [WIP] Here are some use cases for the Elato AI device
-
+
*Cute AI plush toys for kids, elderly, and more!*
diff --git a/assets/ai-voice.png b/assets/ai-voice.png
new file mode 100644
index 0000000..bf0854d
Binary files /dev/null and b/assets/ai-voice.png differ
diff --git a/assets/create-ai.png b/assets/create-ai.png
new file mode 100644
index 0000000..edb7136
Binary files /dev/null and b/assets/create-ai.png differ
diff --git a/elato-ai-device.jpeg b/assets/elato-ai-device.jpeg
similarity index 100%
rename from elato-ai-device.jpeg
rename to assets/elato-ai-device.jpeg
diff --git a/elato-ai-devkit.png b/assets/elato-ai-devkit.png
similarity index 100%
rename from elato-ai-devkit.png
rename to assets/elato-ai-devkit.png
diff --git a/assets/features.png b/assets/features.png
new file mode 100644
index 0000000..4694c45
Binary files /dev/null and b/assets/features.png differ
diff --git a/pcb-design.png b/assets/pcb-design.png
similarity index 100%
rename from pcb-design.png
rename to assets/pcb-design.png
diff --git a/assets/playground.png b/assets/playground.png
new file mode 100644
index 0000000..4e56998
Binary files /dev/null and b/assets/playground.png differ
diff --git a/usecases.png b/assets/usecases.png
similarity index 100%
rename from usecases.png
rename to assets/usecases.png
diff --git a/frontend-nextjs/.env.example b/frontend-nextjs/.env.example
index b1e2c51..b17b706 100644
--- a/frontend-nextjs/.env.example
+++ b/frontend-nextjs/.env.example
@@ -1,6 +1,7 @@
# Update these with your Supabase details from your project settings > API
# https://app.supabase.com/project/_/settings/api
+DEV_MODE=True
NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321
NEXT_PUBLIC_SUPABASE_ANON_KEY=
JWT_SECRET_KEY=super-secret-jwt-token-with-at-least-32-characters-long
diff --git a/frontend-nextjs/app/components/Playground/PersonalityFilters.tsx b/frontend-nextjs/app/components/Playground/PersonalityFilters.tsx
index bbf6ffd..0e3c7b3 100644
--- a/frontend-nextjs/app/components/Playground/PersonalityFilters.tsx
+++ b/frontend-nextjs/app/components/Playground/PersonalityFilters.tsx
@@ -14,12 +14,12 @@ interface PersonalityFiltersProps {
const PersonalityFilters = ({
setSelectedFilters,
selectedFilters,
- languageState,
currentUser,
}: PersonalityFiltersProps) => {
const isDoctor = currentUser.user_info?.user_type === "doctor";
return (
+