A web application designed to combat loneliness by providing a friendly voice and active listening powered by AI.
Note: For the best experience, the use of headphones is recommended.
- Always Available: 24/7 companionship with ultra-low latency.
- Microphone Control: You decide when to speak.
- Connection Status: Clear visual feedback on your companion's status.
- Friendly Interface: Warm and welcoming design.
- Empathetic Listening: AI designed to understand and accompany.
- Framework: Next.js 16.0.3
- UI Library: React 19.2.0
- Styling: Tailwind CSS 4.1.9
- AI SDK: @orga-ai/react & @orga-ai/node
- UI Components: Radix UI
- Icons: Lucide React
- Analytics: Vercel Analytics
orga-ai-api/
├── app/
│ ├── layout.tsx # Root layout with providers
│ ├── page.tsx # Main landing page with demo
│ ├── globals.css # Global styles
│ ├── providers/
│ │ ├── OrgaClientProvider.tsx # Client-side provider wrapper
│ │ └── OrgaProviderClient.tsx # Orga AI initialization
│ └── api/
│ └── orga-client-secrets/ # API endpoint for session config
├── public/ # Static assets
├── package.json # Dependencies and scripts
├── next.config.mjs # Next.js configuration
├── tailwind.config.js # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
-
Clone the repository
git clone https://github.com/CallejaJ/orga-ai-api.git cd orga-ai-api -
Install dependencies
npm install
-
Set up environment variables Create a
.env.localfile in the root directory:ORGA_API_KEY=your_orga_api_key_here NEXT_PUBLIC_ORGA_MODEL=orga-1-beta NEXT_PUBLIC_ORGA_VOICE=nova
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
The application uses a client-side provider pattern to initialize Orga AI:
// app/providers/OrgaProviderClient.tsx
OrgaAI.init({
logLevel: "info",
sessionConfigEndpoint: "/api/orga-client-secrets",
model: "orga-1-beta",
voice: "nova",
});The main demo component (DemoComponent) provides:
- Session management (start/end)
- Real-time connection status
- Camera and microphone toggles
- Video stream display
- Audio stream processing
The useOrgaAI() hook provides:
startSession()- Initialize AI sessionendSession()- Terminate current sessionconnectionState- Current connection statususerVideoStream- User's video MediaStreamaiAudioStream- AI audio MediaStreamtoggleMic()- Enable/disable microphone
- Push your code to GitHub
- Import project in Vercel Dashboard
- Configure environment variables
- Set Node.js version to 22.x (recommended)
- Deploy
- Node.js version: 22.x recommended
- TypeScript errors are ignored in build (
ignoreBuildErrors: true) - Images are unoptimized for faster builds
This endpoint should return session configuration for the Orga AI client.
- End-to-end encryption for all streams
- No data storage - privacy by design
- Secure session token management
- Environment variable protection for API keys
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
Built using Orga AI SDK