Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
319 changes: 100 additions & 219 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,293 +1,174 @@
# Call
# Call – The Future of AI-Native Video Meetings

An Open-source AI-native alternative to Google Meet and Zoom
> 🚀 An **open-source AI-native alternative** to Google Meet and Zoom — built for speed, collaboration, and privacy.
Ready to escape complex, data-hungry meeting apps? Join the future of video calling.
---

- [Website](https://joincall.co)
- [GitHub](https://github.com/joincalldotco/call)
- [Discord](https://discord.com/invite/bre4echNxB)
- [Twitter](https://x.com/joincalldotco)
<p align="center">
<img src="https://raw.githubusercontent.com/joincalldotco/call/main/apps/web/public/logo.png" alt="Call Logo" width="160" />
</p>

---
<p align="center">
<a href="https://joincall.co">🌐 Website</a> •
<a href="https://github.com/joincalldotco/call">💻 GitHub</a> •
<a href="https://discord.com/invite/bre4echNxB">💬 Discord</a> •
<a href="https://x.com/joincalldotco">🐦 Twitter</a>
</p>

## Features
<p align="center">
<img src="https://img.shields.io/github/stars/joincalldotco/call?style=for-the-badge" />
<img src="https://img.shields.io/github/issues/joincalldotco/call?style=for-the-badge" />
<img src="https://img.shields.io/github/forks/joincalldotco/call?style=for-the-badge" />
<img src="https://img.shields.io/github/license/joincalldotco/call?style=for-the-badge" />
</p>

### Video Calling
---

### Team Collaboration
## 🌟 Why Call?

### Contact Management
Say goodbye to bloated, data-hungry apps. Call is lightweight, AI-driven, and privacy-first. Perfect for teams, friends, and communities that value simplicity and performance.

### Meeting Scheduling
**Highlights:**

### AI-Powered Features
* 🚀 Lightning-fast meetings with scalable media servers
* 🤖 AI-powered features (transcription, smart scheduling, insights)
* 🔒 Built-in privacy & security
* 🌍 Cross-platform (Web, PWA, Mobile responsive)
* ⚡ Offline-first for basic features
* 🎨 Beautiful, modern UI

### Security & Privacy
---

### Cross-Platform
## 🎥 Core Features

- **Web-based** - works on any modern browser
- **Mobile responsive** design
- **Progressive Web App** (PWA) support
- **Offline capabilities** for basic features
* **Video Calling** – Crystal-clear audio & video
* **Team Collaboration** – Chat, share, and work together seamlessly
* **Contact Management** – Keep your network smartly organized
* **Meeting Scheduling** – Integrated calendar support
* **AI Enhancements** – Summaries, captions, and intelligent workflows
* **Cross-Platform** – Browser, Mobile, and PWA ready
* **Security & Privacy** – Transparent, open-source architecture

<p align="center">
<img src="https://raw.githubusercontent.com/joincalldotco/call/main/apps/web/public/screenshots/meeting-ui.png" alt="Meeting UI" width="700" />
</p>

---

## Tech Stack
## 🛠️ Tech Stack

### Frontend
**Frontend**

- **Next.js 15** - React framework with App Router
- **TypeScript** - Type-safe development
- **Tailwind CSS** - Utility-first styling
- **shadcn/ui** - Beautiful component library
- **Mediasoup-SFU** - Scalable Selective Forwarding Unit for real-time audio/video conferencing
- **React Query** - Server state management
- **Zustand** - For Distributed state management
* ⚛️ Next.js 15 (React + App Router)
* 📘 TypeScript
* 🎨 Tailwind CSS + shadcn/ui
* 📡 Mediasoup-SFU (scalable video)
* 🔄 React Query + Zustand (state management)

### Backend
**Backend**

- **Hono** - Fast web framework
- **PostgreSQL** - Reliable database
- **Drizzle ORM** - Type-safe database queries
- **Better Auth** - Authentication system
* ⚡ Hono (lightning-fast web framework)
* 🐘 PostgreSQL + Drizzle ORM
* 🔑 Better Auth (secure authentication)

### Infrastructure
**Infrastructure**

- **Turborepo** - Monorepo build system
- **Docker** - Containerization
- **Vercel** - Deployment platform
- **Rate Limiting** - API protection
* 📦 Turborepo (monorepo build system)
* 🐳 Docker & Docker Compose
* ▲ Vercel deployment
* 🚦 Built-in rate limiting

---

## Quick Start
## Quick Start

### Prerequisites

- **Node.js** 20 or higher
- **pnpm** package manager
- **Docker** and Docker Compose
- **Git**
- **Microsoft Visual C++ Redistributable for Visual Studio 2022** (For Windows)
* Node.js v20+
* pnpm
* Docker & Docker Compose
* Git
* (Windows only) Microsoft Visual C++ Redistributable

### Installation

1. **Clone the repository**

```bash
git clone https://github.com/joincalldotco/call.git
cd call
```

2.1 **Start the development environment**

```bash
./setup-dev.sh
```
git clone https://github.com/joincalldotco/call.git
cd call

2.2 **Start the development environment (Windows)**
# Setup dev environment
./setup-dev.sh

```bash
# On Windows
./setup_dev_windows.sh
```
Comment on lines +96 to 104
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Verify setup script names and executability.

Docs reference ./setup-dev.sh and ./setup_dev_windows.sh. Ensure both exist, are executable, and have a shebang. Consider WSL or a .ps1 for Windows.


🏁 Script executed:

#!/bin/bash
set -euo pipefail
fd -H -t f 'setup*' -x ls -l {}
for f in setup-dev.sh setup_dev_windows.sh; do
  if [[ -f "$f" ]]; then
    echo "Found $f"
    head -n1 "$f" | sed -n '1p'
    test -x "$f" && echo "Executable: $f" || echo "Not executable: $f"
  else
    echo "Missing $f"
  fi
done

Length of output: 404


Make Windows setup script executable or clarify Windows instructions

  • ./setup-dev.sh — present, executable, has shebang (#!/bin/bash).
  • ./setup_dev_windows.sh — present, has shebang (#!/bin/bash) but NOT executable; either set + commit the executable bit (chmod +x && git update-index --chmod=+x setup_dev_windows.sh) or update README to instruct running via WSL/Git Bash or provide a native PowerShell script (e.g., setup-dev.ps1).
🤖 Prompt for AI Agents
In README.md around lines 96–104 the Windows setup script (setup_dev_windows.sh)
has a shebang but isn’t executable; either make the file executable and commit
that change (set chmod +x locally and run git update-index --chmod=+x
setup_dev_windows.sh before committing) so the README instruction
(“./setup_dev_windows.sh”) is accurate, or update the README to clarify Windows
usage (instruct users to run the script via WSL/Git Bash rather than ./ on
native Windows) or add a native PowerShell script (e.g., setup-dev.ps1) and
update the README to reference the appropriate Windows command.


This script will automatically:

- Create a `.env` file if it doesn't exist
- Install dependencies if needed
- Start Docker services (PostgreSQL)
- Wait for the database to be ready
- Start the development environment
Visit:

> **Note:** If you encounter any issues during setup, check the [ERRORS.md](ERRORS.md) file for troubleshooting guidance.
* 🌐 Web app → [http://localhost:3000](http://localhost:3000)
* 🔌 Server → [http://localhost:1284](http://localhost:1284)

3. **Open your browser**
- Web app: http://localhost:3000
- Server: http://localhost:1284

### Environment Variables
---

Create a `.env` file in the root directory with the following variables:
## ⚙️ Environment Variables

```env
# Database Configuration
DATABASE_URL=postgresql://postgres:postgres@localhost:5434/call
# Google OAuth (for authentication)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Email Configuration (for notifications)
[email protected]
RESEND_API_KEY=your_resend_api_key
# App URLs
FRONTEND_URL=http://localhost:3000
BACKEND_URL=http://localhost:1284
# App Configuration
NODE_ENV=development
go to https://www.better-auth.com/docs/installation and click on 'Generate Secret'.
BETTER_AUTH_SECRET=your_generated_secret
```

### Docker Services

The project uses Docker Compose to run PostgreSQL:

```bash
# Start services
pnpm docker:up

# Stop services
pnpm docker:down

# Clean up (removes volumes)
pnpm docker:clean
```

---

## Project Structure
## 📂 Project Structure

```
call/
├── apps/ # Applications
│ ├── web/ # Next.js web application
│ │ ├── app/ # App Router pages
│ │ │ ├── (app)/ # Main app routes
│ │ │ ├── (auth)/ # Authentication routes
│ │ │ └── (waitlist)/ # Landing page
│ │ ├── components/ # React components
│ │ ├── lib/ # Utilities and configs
│ │ └── public/ # Static assets
│ └── server/ # Hono backend API
│ ├── routes/ # API routes
│ ├── config/ # Server configuration
│ ├── utils/ # Server utilities
│ └── validators/ # Request validation
├── packages/ # Shared packages
│ ├── auth/ # Authentication utilities
│ ├── db/ # Database schemas and migrations
│ ├── ui/ # Shared UI components (shadcn/ui)
│ ├── eslint-config/ # ESLint configuration
│ └── typescript-config/ # TypeScript configuration
├── docker-compose.yml # Docker services
├── setup-dev.sh # Development setup script
└── turbo.json # Turborepo configuration
├── apps/
│ ├── web/ # Next.js frontend
│ └── server/ # Hono backend
├── packages/ # Shared modules (auth, db, ui, configs)
├── docker-compose.yml
├── setup-dev.sh
└── turbo.json
```

---

## Development

### Available Scripts

```bash
# Development
pnpm dev # Start all applications
pnpm dev --filter web # Start only web app
pnpm dev --filter server # Start only server

# Building
pnpm build # Build all packages
pnpm build --filter web # Build only web app

# Linting & Formatting
pnpm lint # Lint all packages
pnpm lint:fix # Fix linting issues
pnpm format # Check formatting
pnpm format:fix # Fix formatting

# Database
pnpm db:generate # Generate database types
pnpm db:migrate # Run database migrations
pnpm db:push # Push schema changes
pnpm db:studio # Open database studio

# Docker
pnpm docker:up # Start Docker services
pnpm docker:down # Stop Docker services
pnpm docker:clean # Clean up Docker volumes
```

### Package Management

We use pnpm workspaces to manage this monorepo:

```bash
# Install a dependency in a specific workspace
pnpm add <package> --filter <workspace-name>

# Install a dependency in all workspaces
pnpm add -w <package>

# Link a local package in another workspace
pnpm add @call/<package-name> --filter <workspace-name> --workspace
```

### Development Workflow

1. **Create a feature branch**

```bash
git checkout -b feature/your-feature-name
```

2. **Make your changes** following our coding standards

3. **Run checks before committing**

```bash
pnpm lint # Lint all packages
pnpm build # Build all packages
```
## 👩‍💻 Development Workflow

4. **Commit your changes** using conventional commits:
1. **Branch**`git checkout -b feature/my-feature`
2. **Develop** → Run `pnpm dev`
3. **Lint & Build**`pnpm lint && pnpm build`
4. **Commit** → Follow [Conventional Commits](https://www.conventionalcommits.org/)
5. **PR** → Push and open a pull request 🎉

```
feat: add new feature
fix: resolve bug
docs: update documentation
chore: update dependencies
refactor: improve code structure
test: add tests
ui: for ui changes
```

5. **Push and create a pull request**

### Package Organization
---

- Place shared code in `packages/`
- Keep applications in `apps/`
- Use consistent naming conventions:
- Applications: `@call/app-name`
- Packages: `@call/package-name`
## 🌌 Fun Stuff

### Code of Conduct
<p align="center">
<img src="https://raw.githubusercontent.com/joincalldotco/call/main/apps/web/public/screenshots/stars-chart.png" alt="Stars Chart" width="700" />
</p>

This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
* 🌟 Watch the project grow on GitHub stars
* 🪐 Check out contributor stats & graphs
* 🎉 Join our [Discord](https://discord.com/invite/bre4echNxB) for community events

---

## Acknowledgments
## 🤝 Community & Support

- **All contributors** who help make Call better every day

## Support

- **Discord**: [Join our community](https://discord.com/invite/bre4echNxB)
- **Email**: [email protected]
- **Twitter**: [@joincalldotco](https://x.com/joincalldotco)
* 💬 [Discord Community](https://discord.com/invite/bre4echNxB)
* 🐦 [Follow us on Twitter](https://x.com/joincalldotco)
* 📧 Email: [[email protected]](mailto:[email protected])

---

Made with ❤️ by the Call team

[Website](https://joincall.co)[GitHub](https://github.com/Call0dotco/call)[Discord](https://discord.com/invite/bre4echNxB)[Twitter](https://x.com/joincalldotco)
<p align="center">Made with ❤️ by the Call team</p>