Skip to content

BhushanLagare7/echo

Repository files navigation

Echo

Echo is an AI-powered customer support widget that enables real-time voice and text interactions for businesses. It consists of an embeddable widget, a management dashboard, and a robust backend system.

🚀 Features

  • AI Voice & Chat: Seamlessly switch between voice and text interactions using Vapi.
  • Real-time Dashboard: Monitor conversations, manage settings, and view analytics.
  • Monorepo Architecture: Built for scale using TurboRepo.
  • Modern Stack: Powered by Next.js, Convex, and Tailwind CSS.
  • Secure Authentication: Integrated with Clerk for user and organization management.

🛠️ Architecture

This project is a monorepo managed by TurboRepo:

Apps

  • apps/web: The management dashboard for business owners.
    • Stack: Next.js 15, Clerk Auth, Convex React Client.
    • Port: 3000
  • apps/widget: The standalone widget application that is embedded on client sites.
    • Stack: Next.js, Vapi Web SDK.
    • Port: 3001
  • apps/embed: A lightweight loader script for embedding the widget.
    • Stack: Vite.
    • Port: 3002

Packages

  • packages/backend: The backend logic and database schema powered by Convex.
  • packages/ui: Shared UI components based on shadcn/ui.
  • packages/math: Shared utility functions.
  • packages/eslint-config & packages/typescript-config: Shared configuration.

🏁 Getting Started

Prerequisites

  • Node.js (>= 20)
  • pnpm (>= 9)

Installation

  1. Clone the repository:

    git clone https://github.com/BhushanLagare7/echo.git
    cd echo
  2. Install dependencies:

    pnpm install

Environment Setup

You need to set up environment variables for the apps and backend.

apps/web/.env.local and apps/widget/.env.local:

NEXT_PUBLIC_CONVEX_URL=your_convex_url
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret

packages/backend (Convex Dashboard): Ensure you have your Vapi keys and other secrets configured in your Convex dashboard environment variables.

Running the Project

Start all applications in development mode:

pnpm dev

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Echo is an AI-powered customer support widget that enables real-time voice and text interactions for businesses. It consists of an embeddable widget, a management dashboard, and a robust backend system.

Topics

Resources

Stars

Watchers

Forks

Contributors