{"id":47709424,"url":"https://github.com/erancybersec/evolution-api-webchat-ui","last_synced_at":"2026-06-01T00:01:25.236Z","repository":{"id":347878164,"uuid":"1183149100","full_name":"erancybersec/evolution-API-webchat-UI","owner":"erancybersec","description":"WhatsApp Manager UI for Evolution API","archived":false,"fork":false,"pushed_at":"2026-05-31T16:53:29.000Z","size":274,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-31T17:23:55.226Z","etag":null,"topics":["admin-panel","bulk-messaging","chat-ui","dashboard","evolution-api","evolution-api-ui","no-build","scheduled-messaging","self-hosted","single-file","tailwindcss","vanilla-js","web-ui","whatsapp","whatsapp-api","whatsapp-business","whatsapp-ui","whatsapp-web"],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erancybersec.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-16T10:18:54.000Z","updated_at":"2026-05-31T16:53:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4bdb68b-352e-4d63-b25c-021a04c1f004","html_url":"https://github.com/erancybersec/evolution-API-webchat-UI","commit_stats":null,"previous_names":["erancybersec/evolution-api-webchat-ui"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/erancybersec/evolution-API-webchat-UI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erancybersec%2Fevolution-API-webchat-UI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erancybersec%2Fevolution-API-webchat-UI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erancybersec%2Fevolution-API-webchat-UI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erancybersec%2Fevolution-API-webchat-UI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erancybersec","download_url":"https://codeload.github.com/erancybersec/evolution-API-webchat-UI/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erancybersec%2Fevolution-API-webchat-UI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33753925,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin-panel","bulk-messaging","chat-ui","dashboard","evolution-api","evolution-api-ui","no-build","scheduled-messaging","self-hosted","single-file","tailwindcss","vanilla-js","web-ui","whatsapp","whatsapp-api","whatsapp-business","whatsapp-ui","whatsapp-web"],"created_at":"2026-04-02T18:26:12.491Z","updated_at":"2026-06-01T00:01:25.230Z","avatar_url":"https://github.com/erancybersec.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WhatsApp Manager — Evolution API UI\n\nA browser-based WhatsApp management interface built on top of [Evolution API v2](https://github.com/EvolutionAPI/evolution-api). No installation, no Node.js, no build step — just open `index.html`.\n\n**Current version: [v1.4.0](CHANGELOG.md)**\n\n---\n\n## Prerequisites\n\n- A running **Evolution API v2** instance (self-hosted)\n- A connected WhatsApp instance on that server\n- A modern browser (Chrome / Edge / Firefox)\n\n---\n\n## Setup\n\n1. Download or clone this repo\n2. Open `index.html` directly in your browser\n3. Click the **Settings** gear button in the top-right\n4. Fill in:\n   - **Business / App Name** — display name shown in the header (e.g. your company name)\n   - **Server URL** — your Evolution API base URL (e.g. `https://your-server.com`)\n   - **Instance Name** — the WhatsApp instance name configured in your Evolution API\n   - **API Key** — your Evolution API key\n5. Click **Save** — credentials are stored locally in your browser (never sent anywhere else)\n\n---\n\n## Features\n\n### Chat Inbox\nA full WhatsApp-style chat inbox — browse all conversations, send and receive messages in real time.\n\n| Feature | Description |\n|---------|-------------|\n| Conversation list | All chats with avatar, name, last message preview, unread badge, and timestamp |\n| Real-time polling | New messages appear automatically (3 s message poll, 30 s conversation poll) |\n| Message bubbles | Text, image, video, audio, document, sticker, location, contact, poll, reactions |\n| Read receipts | Double blue ticks (✓✓) show when a message has been read; single grey ticks for sent/delivered |\n| RTL support | Hebrew, Arabic, and other RTL text renders correctly; English stays LTR — per message, automatically |\n| Reply | Quote any message in your reply |\n| React | Send emoji reactions to any message |\n| Delete message | Remove messages with WhatsApp-style confirmation — **Delete for everyone** (your sent messages, within ~60 h) or **Delete for me** (any message, local only) |\n| Select mode | Long-press / right-click any message to enter multi-select — copy, forward, or delete a batch |\n| Drag-to-reorder | Reorder queued messages by dragging |\n| Scroll pagination | Scroll up to load older message history |\n| Persistent unread badges | Unread counts persist across page refreshes |\n\n### Messaging\n| Type | Description |\n|------|-------------|\n| Text | Send text messages to one or multiple recipients (chip-based input) |\n| Media | Send images, videos, documents with optional caption |\n| Voice Note | Send audio files as voice messages |\n| Location | Send GPS coordinates with place name and address |\n| Contact | Share a contact card (vCard) |\n| Reaction | React to a specific message with an emoji |\n| Poll | Create a poll with up to 12 options |\n| Buttons | Send interactive button messages |\n| List | Send interactive list messages with sections |\n| Status/Story | Post WhatsApp status updates (text, image, video, audio) |\n\n### Groups\n- **Browse \u0026 Send** — fetch all groups, select one or more, broadcast a message\n- **Create Group** — create a new group with participants\n- **Manage Group** — update subject, description, picture, participants, settings, invite links, ephemeral timer\n\n### Bulk Sending\n- Send to multiple recipients or groups with a **randomized delay** between messages (configurable min/max seconds) to simulate human sending behavior\n\n### Scheduled Sending\nSchedule any Compose or Group Broadcast job to send automatically at a future time. The browser tab must remain open — it does not need to be the active tab.\n\n| Action | Description |\n|--------|-------------|\n| **Schedule** | Pick a future date/time — job queued and sent automatically |\n| **Cancel \u0026 Edit** | Cancels the pending job and loads it back into the tab for full editing |\n| **Duplicate** | Loads job content into the tab as a new draft — original untouched |\n| **Resend** | Clone a completed or cancelled job with a new send time |\n| **Restore** | Re-activate a cancelled job (only if scheduled time hasn't passed) |\n| **Cancel** | Cancel a pending job without editing |\n\n- Jobs are stored in **IndexedDB** (survives page refresh, handles large payloads)\n- Scheduler polls every 30 seconds via a **Web Worker** — fires reliably even when the tab is in the background; jobs execute in order with the configured random delay between messages\n\n### Phone Number Handling\n- Validates phone numbers using [libphonenumber-js](https://github.com/nicolo-ribaudo/libphonenumber-js)\n- Auto-normalizes local numbers to E.164 format (e.g. `0501234567` → `972501234567` for IL)\n- Configure default country in Settings for local number parsing\n\n---\n\n## Server Deployment — `config.json`\n\nWhen hosting on a web server, you can pre-configure all settings centrally using a `config.json` file placed next to `index.html`. Users won't need to touch Settings — everything is loaded automatically.\n\nCopy `config.example.json` → `config.json` and fill in your values:\n\n```json\n{\n  \"appName\":  \"My Business\",\n  \"base\":     \"https://your-evolution-api-server.com\",\n  \"instance\": \"MyInstance\",\n  \"apikey\":   \"your-api-key-here\",\n  \"country\":  \"IL\",\n  \"delayMin\": 1,\n  \"delayMax\": 5\n}\n```\n\nAny field can be omitted — omitted fields fall back to the user's local browser settings.\n\n\u003e **Note:** `config.json` is listed in `.gitignore` so your credentials are never committed to the repo.\n\n---\n\n## Security\n\n- Credentials are stored in your **browser's localStorage** (local use) or in `config.json` on your server (hosted use)\n- Nothing is hardcoded in the source — the repo contains zero credentials\n- Credentials never leave your browser except in direct API calls to your own Evolution API server\n\n---\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for full version history.\n\n---\n\n## License\n\nMIT — free to use and modify.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferancybersec%2Fevolution-api-webchat-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferancybersec%2Fevolution-api-webchat-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferancybersec%2Fevolution-api-webchat-ui/lists"}