-
Notifications
You must be signed in to change notification settings - Fork 106
Update README.md #286
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Nibezak
wants to merge
1
commit into
joincalldotco:main
Choose a base branch
from
Nibezak:patch-1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Update README.md #286
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | ||
| ``` | ||
|
|
||
| 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> | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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.shand./setup_dev_windows.sh. Ensure both exist, are executable, and have a shebang. Consider WSL or a.ps1for Windows.🏁 Script executed:
Length of output: 404
Make Windows setup script executable or clarify Windows instructions
🤖 Prompt for AI Agents