{"id":31424848,"url":"https://github.com/abhivarde/sendra","last_synced_at":"2026-04-02T03:04:31.137Z","repository":{"id":317062522,"uuid":"1061559812","full_name":"AbhiVarde/sendra","owner":"AbhiVarde","description":"Monitor Appwrite Sites Deployments.","archived":false,"fork":false,"pushed_at":"2025-09-28T14:42:29.000Z","size":720,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-28T16:36:27.129Z","etag":null,"topics":["appwrite","material-ui","nextjs","react","resend","typescript","vercel"],"latest_commit_sha":null,"homepage":"https://sendra.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbhiVarde.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-09-22T04:55:05.000Z","updated_at":"2025-09-28T14:42:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba1a1611-a709-42dd-8e46-7c6662620df8","html_url":"https://github.com/AbhiVarde/sendra","commit_stats":null,"previous_names":["abhivarde/sendra"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AbhiVarde/sendra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2Fsendra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2Fsendra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2Fsendra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2Fsendra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbhiVarde","download_url":"https://codeload.github.com/AbhiVarde/sendra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiVarde%2Fsendra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277627416,"owners_count":25849860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"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":["appwrite","material-ui","nextjs","react","resend","typescript","vercel"],"created_at":"2025-09-30T04:06:32.931Z","updated_at":"2025-12-30T21:20:14.300Z","avatar_url":"https://github.com/AbhiVarde.png","language":"TypeScript","funding_links":["https://github.com/sponsors/AbhiVarde"],"categories":[],"sub_categories":[],"readme":"[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/AbhiVarde/abhivarde.in)\n\n# 🪴 Introducing Sendra\n\n**Monitor Appwrite Sites \u0026 Functions Deployments.**\n\nNever miss a failed deployment! Sendra monitors your Appwrite Sites and Functions deployments and sends instant email alerts when something goes wrong.\n\n\u003cimg width=\"1200\" height=\"630\" alt=\"og-image\" src=\"./public/og-image.png\" /\u003e\n\n## 🎯 Problem\n\nAppwrite doesn't send email notifications for failed deployments like Vercel does. Sendra fills this critical gap by monitoring your Appwrite projects (both Sites and Functions) and alerting you instantly when deployments fail.\n\n## ✨ Key Features\n\n- 🔐 **GitHub Login** – Secure and instant authentication\n- 🔌 **Connect Projects** – Add Project ID \u0026 API Key to start monitoring\n- 📡 **Automatic Monitoring** – Tracks Sites \u0026 Functions deployments in real time\n- 📊 **Dashboard Overview** – View latest status, history, and analytics\n- 🌍 **Region Support** – Works across all 6 Appwrite Cloud regions\n- 👤 **Appwrite Avatars** – Clean user initials, region flags, and QR codes\n- 📧 **Email Alerts** – Alerts you instantly for **new** failed deployments\n- 🧠 **AI Log Analysis** – Explains failure logs \u0026 suggests possible fixes\n- 💬 **Slash Commands** – `/overview`, `/failed`, `/help` for quick insights\n- 🔒 **Encrypted Storage** – API Keys encrypted securely\n- 🕐 **Automated Checks** – Cron job runs every 5 minutes\n- 🚀 **Fast Setup** – Add your project details \u0026 start monitoring in minutes\n\n## 🌍 Supported Regions\n\nMonitor your Appwrite deployments globally across all available regions:\n\n| Region           | Code | Location      |\n| ---------------- | ---- | ------------- |\n| 🇩🇪 Frankfurt     | FRA  | Germany       |\n| 🇺🇸 New York      | NYC  | United States |\n| 🇦🇺 Sydney        | SYD  | Australia     |\n| 🇺🇸 San Francisco | SFO  | United States |\n| 🇸🇬 Singapore     | SGP  | Singapore     |\n| 🇨🇦 Toronto       | TOR  | Canada        |\n\n## 🛠️ Tech Stack\n\n- **Frontend:** Next.js, Material UI, TypeScript\n- **Backend:** Appwrite Functions \u0026 Database\n- **Authentication:** GitHub OAuth\n- **UI Enhancements:** Appwrite Avatars (initials, flags, QR)\n- **Email Service:** Resend API\n- **AI Analysis**: Vercel AI SDK powered by Gemini\n- **Deployment:** Vercel\n- **Security:** Encrypted API keys\n\n## 🚀 How It Works\n\n1. **Login** with GitHub\n2. **Add Your Project** – Project ID, API Key, region, and email\n3. **Sendra Monitors Automatically** – Cron checks deployments every 5 minutes\n4. **Get Alerts** – Email notifications for **new** failed deployments\n5. **AI Analysis** – Logs analyzed to suggest potential fixes\n6. **Use Command Interface** – Quickly get insights via slash commands like  \n   `/overview`, `/failed`, `/help`\n7. **Check Dashboard** – View real-time status, history, and analytics anytime\n\n## 📦 Installation \u0026 Setup\n\n### Prerequisites\n\n- Node.js 18+\n- Appwrite account\n- Resend account for email notifications\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/AbhiVarde/sendra.git\ncd sendra\n\n# Install dependencies\nnpm install\n\n# Set up environment variables\ncp .env.example .env.local\n# Add your GitHub OAuth, Appwrite, and Resend credentials\n\n# Run the development server\nnpm run dev\n```\n\n### Environment Variables\n\n```env\nNEXT_PUBLIC_APPWRITE_ENDPOINT=\nNEXT_PUBLIC_APPWRITE_PROJECT_ID=\nNEXT_PUBLIC_APPWRITE_DATABASE_ID=\nNEXT_PUBLIC_APPWRITE_COLLECTION_ID=\nNEXT_PUBLIC_APPWRITE_FETCH_DEPLOYMENTS_FUNCTION_ID=\nNEXT_PUBLIC_APPWRITE_ENCRYPTION_SECRET=\n\nRESEND_API_KEY=\nRESEND_INBOUND_WEBHOOK_SECRET=\n```\n\n## 📂 Appwrite Setup\n\n### 🏗️ Collections\n\n- **sendra**: `userId`, `projectId`, `deployments`, `functionDeployments`, `trackedDeployments[]`, `trackedFunctionDeployments[]`, `alerts`, `email`, `isActive`, `apiKey`, `region`, `$id`, `$createdAt`, `$updatedAt`\n\n### ⚡ Functions\n\n- The monitoring logic runs on Appwrite Functions with a cron schedule, checking both Sites and Functions deployments\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit changes (`git commit -m 'feat: add amazing feature'`)\n4. Push to branch (`git push origin feature/amazing-feature`)\n5. Open Pull Request\n\n**Development Guidelines:**\n\n- Follow existing code patterns\n- Test error scenarios thoroughly\n- Maintain responsive design\n- Keep commits focused and descriptive\n\n## 💖 Support\n\n**Love Sendra? Help me keep building!**\n\n- 💚 **$5 / month - Monthly Supporter** → Recognition in the GitHub README\n- 🌟 **$19 / month - Monthly Sponsor** → README + Portfolio recognition\n- 🚀 **$49 / month - Featured Sponsor** → README + Portfolio + promotion on Sync UI\n\n[👉 Become a Sponsor](https://github.com/sponsors/AbhiVarde)\n\n## License\n\nSendra is licensed under the [MIT License](http://choosealicense.com/licenses/mit/). All rights reserved.\n\n## Authors\n\nSendra is created and maintained by [Abhi Varde](https://www.abhivarde.in/).\n\n---\n\n⭐ **Found this helpful? Give it a star!**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhivarde%2Fsendra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhivarde%2Fsendra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhivarde%2Fsendra/lists"}