248 lines
7.0 KiB
Markdown
248 lines
7.0 KiB
Markdown
<p align="center">
|
|
<img src="assets/banner.png" alt="Evercatch Banner" width="800">
|
|
</p>
|
|
|
|
<p align="center">
|
|
<strong>The webhook infrastructure platform for developers who want simplicity without sacrificing power.</strong>
|
|
</p>
|
|
|
|
<p align="center">
|
|
<a href="https://evercatch.dev">Website</a> •
|
|
<a href="https://docs.evercatch.dev">Docs</a> •
|
|
<a href="https://app.evercatch.dev">Dashboard</a> •
|
|
<a href="https://status.evercatch.dev">Status</a>
|
|
</p>
|
|
|
|
---
|
|
|
|
> **The webhook infrastructure platform for developers who want simplicity without sacrificing power.**
|
|
|
|
Evercatch is a modern webhook ingestion and forwarding platform that captures, normalizes, and reliably delivers webhooks from any source to any destination. Built for developers, by developers.
|
|
|
|
---
|
|
|
|
## 📋 What is Evercatch?
|
|
|
|
Evercatch sits between your webhook providers (Stripe, SendGrid, GitHub, etc.) and your application, giving you:
|
|
|
|
- **📦 Unified Schema** - One normalized format for all webhook providers
|
|
- **🔄 Reliable Delivery** - Automatic retries with exponential backoff
|
|
- **📊 Event History** - Search, filter, and replay webhooks up to 90 days
|
|
- **⚡ Lightning Fast** - Sub-100ms webhook ingestion
|
|
- **🔐 Secure by Design** - API key authentication, filtered sensitive data
|
|
- **💰 Usage-Based Pricing** - Pay only for what you use, with generous free tier
|
|
|
|
---
|
|
|
|
## 💡 Why Evercatch?
|
|
|
|
### The Problem
|
|
You're integrating with multiple services (Stripe for payments, SendGrid for emails, Shopify for orders). Each has:
|
|
- Different webhook formats
|
|
- Different retry behaviors
|
|
- Different ways to verify authenticity
|
|
- No central dashboard to debug issues
|
|
|
|
**You spend more time managing webhooks than building your product.**
|
|
|
|
### The Evercatch Solution
|
|
Point all your webhooks at Evercatch. We:
|
|
1. ✅ Receive and validate webhooks from any provider
|
|
2. ✅ Normalize them to a unified schema
|
|
3. ✅ Store them with intelligent retention (7-90 days)
|
|
4. ✅ Forward them to your app with automatic retries
|
|
5. ✅ Give you a beautiful dashboard to search, filter, and replay events
|
|
|
|
**You focus on your product. We handle the webhooks.**
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### 1. Sign Up
|
|
```bash
|
|
curl -X POST https://api.evercatch.dev/api/v1/auth/signup \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"email": "you@example.com",
|
|
"full_name": "Your Name",
|
|
"country": "IE"
|
|
}'
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"user": { "id": "550e8400-...", "email": "you@example.com" },
|
|
"api_key": {
|
|
"api_key": "ec_live_abc123...",
|
|
"prefix": "ec_live_abc1"
|
|
},
|
|
"subscription": { "tier": "sandbox", "status": "trialing" }
|
|
}
|
|
```
|
|
|
|
### 2. Point Your Webhooks at Evercatch
|
|
```
|
|
https://api.evercatch.dev/api/v1/webhooks/stripe/550e8400-...
|
|
```
|
|
|
|
**Example: Configure Stripe**
|
|
1. Go to [Stripe Dashboard → Webhooks](https://dashboard.stripe.com/webhooks)
|
|
2. Click "Add Endpoint"
|
|
3. Enter: `https://api.evercatch.dev/api/v1/webhooks/stripe/550e8400-...`
|
|
4. Select events
|
|
5. Add header: `X-API-Key: ec_live_abc123...`
|
|
|
|
### 3. Configure Your Destination
|
|
```bash
|
|
curl -X POST https://api.evercatch.dev/api/v1/destinations \
|
|
-H "X-API-Key: ec_live_abc123..." \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"name": "Production API",
|
|
"url": "https://yourapp.com/webhooks",
|
|
"providers": ["stripe"],
|
|
"event_types": ["payment.*"]
|
|
}'
|
|
```
|
|
|
|
### 4. That's It! 🎉
|
|
Evercatch now:
|
|
- ✅ Receives webhooks from Stripe
|
|
- ✅ Normalizes them to a unified schema
|
|
- ✅ Stores them for 24 hours (Sandbox tier)
|
|
- ✅ Forwards them to `yourapp.com/webhooks`
|
|
- ✅ Retries on failure
|
|
|
|
---
|
|
|
|
## 📊 Pricing
|
|
|
|
| Plan | Price | Events/mo | Retention | Destinations | Overage |
|
|
|------|-------|-----------|-----------|--------------|---------|
|
|
| **Sandbox** | €0 | 100k | 24 hours | 2 | — |
|
|
| **Indie** | €29 | 1M | 7 days | 10 | €0.50/100k |
|
|
| **Studio** | €99 | 10M | 30 days | Unlimited | €0.30/100k |
|
|
| **Enterprise** | €299 | 50M | 90 days | Unlimited | €0.20/100k |
|
|
|
|
**All plans include:**
|
|
- ✅ Unlimited API keys
|
|
- ✅ Real-time event forwarding
|
|
- ✅ Automatic retries
|
|
- ✅ 99.9% uptime SLA
|
|
- ✅ Support via email
|
|
|
|
**Studio+ includes:**
|
|
- ✨ Full-text search
|
|
- ✨ Advanced filtering
|
|
- ✨ Event replay
|
|
- ✨ Custom retention
|
|
|
|
**Enterprise includes:**
|
|
- 🚀 Priority support
|
|
- 🚀 Custom SLAs
|
|
- 🚀 Dedicated Slack channel
|
|
- 🚀 SSO/SAML
|
|
- 🚀 Custom contracts
|
|
|
|
[**→ Start Free**](https://evercatch.dev/signup) · [**→ View Full Pricing**](https://evercatch.dev/pricing)
|
|
|
|
---
|
|
|
|
## 🐛 Found a Bug?
|
|
|
|
We want to fix it! **[→ Report a Bug](../../issues/new?template=bug_report.md)**
|
|
|
|
Please include:
|
|
- Clear steps to reproduce
|
|
- Expected vs actual behavior
|
|
- Your subscription tier
|
|
- Event IDs (if applicable)
|
|
|
|
**Do NOT include API keys or sensitive data.**
|
|
|
|
---
|
|
|
|
## ✨ Have a Feature Idea?
|
|
|
|
We'd love to hear it! **[→ Request a Feature](../../issues/new?template=feature_request.md)**
|
|
|
|
Tell us:
|
|
- What problem it solves
|
|
- How you'd use it
|
|
- Which tier would benefit
|
|
|
|
---
|
|
|
|
## 🔐 Security Vulnerability?
|
|
|
|
**DO NOT open a public issue.**
|
|
|
|
**Email:** [security@evercatch.dev](mailto:security@evercatch.dev)
|
|
|
|
We'll respond within 24 hours. See our [Security Policy](SECURITY.md) for details.
|
|
|
|
---
|
|
|
|
## ❓ Need Help?
|
|
|
|
- 📚 **Documentation**: [docs.evercatch.dev](https://docs.evercatch.dev)
|
|
- 📧 **Email Support**: [support@evercatch.dev](mailto:support@evercatch.dev)
|
|
- 💳 **Billing**: [billing@evercatch.dev](mailto:billing@evercatch.dev)
|
|
- **[→ Open a Support Ticket](../../issues/new?template=support_request.md)**
|
|
|
|
---
|
|
|
|
## 📚 Resources
|
|
|
|
- **Documentation:** [docs.evercatch.dev](https://docs.evercatch.dev)
|
|
- **API Reference:** [docs.evercatch.dev/api](https://docs.evercatch.dev/api)
|
|
- **Status Page:** [status.evercatch.dev](https://status.evercatch.dev)
|
|
- **Blog:** [blog.evercatch.dev](https://blog.evercatch.dev)
|
|
- **Roadmap:** [roadmap.evercatch.dev](https://roadmap.evercatch.dev)
|
|
- **Changelog:** [changelog.evercatch.dev](https://changelog.evercatch.dev)
|
|
|
|
---
|
|
|
|
## 🤝 Contributing
|
|
|
|
We welcome community contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
|
|
- Bug reports
|
|
- Feature requests
|
|
- Documentation improvements
|
|
- Beta testing
|
|
- Integration examples
|
|
|
|
---
|
|
|
|
## 📜 Code of Conduct
|
|
|
|
All community members must follow our [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
|
|
**TL;DR:** Be respectful, professional, and kind. No harassment, discrimination, or spam.
|
|
|
|
**Report violations:** [conduct@evercatch.dev](mailto:conduct@evercatch.dev)
|
|
|
|
---
|
|
|
|
## ⚖️ Legal
|
|
|
|
- **Terms of Service:** [evercatch.dev/terms](https://evercatch.dev/terms)
|
|
- **Privacy Policy:** [evercatch.dev/privacy](https://evercatch.dev/privacy)
|
|
- **SLA:** [evercatch.dev/sla](https://evercatch.dev/sla)
|
|
- **Acceptable Use:** [evercatch.dev/acceptable-use](https://evercatch.dev/acceptable-use)
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
<img src="assets/banner.png" alt="Evercatch Banner" width="800">
|
|
<br/>
|
|
<strong>No webhook left behind</strong>
|
|
<br/><br/>
|
|
<a href="https://evercatch.dev">Website</a> •
|
|
<a href="https://docs.evercatch.dev">Docs</a> •
|
|
<a href="https://app.evercatch.dev">Dashboard</a> •
|
|
<a href="https://status.evercatch.dev">Status</a>
|
|
</p>
|