Add complete community documentation
- README.md: Product overview + issue tracker landing - SECURITY.md: Responsible disclosure policy - CODE_OF_CONDUCT.md: Community guidelines - CONTRIBUTING.md: How to contribute - SUPPORT.md: Comprehensive support guide - Issue templates: Bug, feature, support, docs, security All references updated to evercatch.dev domain.
This commit is contained in:
244
README.md
244
README.md
@@ -1,72 +1,230 @@
|
||||
# 📦 Repository Name
|
||||
# 🎯 Evercatch
|
||||
|
||||
> Short one-line description of what this repository does.
|
||||
> **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.
|
||||
|
||||
---
|
||||
|
||||
## 🧭 Overview
|
||||
## 📋 What is Evercatch?
|
||||
|
||||
Describe what this service/module is responsible for within the Evercatch platform.
|
||||
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
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
## 💡 Why Evercatch?
|
||||
|
||||
| Layer | Technology |
|
||||
| :--- | :--- |
|
||||
| Language | — |
|
||||
| Framework | — |
|
||||
| Key Dependencies | — |
|
||||
### 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.**
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Docker & Docker Compose
|
||||
- Node.js / Python (specify version)
|
||||
|
||||
### Local Development
|
||||
## 🚀 Quick Start
|
||||
|
||||
### 1. Sign Up
|
||||
```bash
|
||||
# Clone the repo
|
||||
git clone https://git.psmattas.com/Evercatch/REPO_NAME.git
|
||||
cd REPO_NAME
|
||||
|
||||
# Copy environment variables
|
||||
cp .env.example .env
|
||||
|
||||
# Start services
|
||||
docker compose up -d
|
||||
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" }
|
||||
}
|
||||
```
|
||||
|
||||
## 🌿 Branching & Commits
|
||||
### 2. Point Your Webhooks at Evercatch
|
||||
```
|
||||
https://api.evercatch.dev/api/v1/webhooks/stripe/550e8400-...
|
||||
```
|
||||
|
||||
All work follows the Evercatch contribution guide defined in the org README.
|
||||
**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...`
|
||||
|
||||
**Branch format:** `EC-ID-short-description`
|
||||
**Commit format:** `EC-00: type(scope): message`
|
||||
### 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.*"]
|
||||
}'
|
||||
```
|
||||
|
||||
See [Evercatch Org README](https://git.psmattas.com/Evercatch) for full conventions.
|
||||
### 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
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ CI/CD
|
||||
## 📊 Pricing
|
||||
|
||||
Automated via Jenkins. Merges to `main` trigger staging deployments.
|
||||
| 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 |
|
||||
|
||||
| Pipeline | Status |
|
||||
| :--- | :---: |
|
||||
| Build |  |
|
||||
| Lint |  |
|
||||
| Test |  |
|
||||
**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)
|
||||
|
||||
---
|
||||
|
||||
## 📄 License
|
||||
## 🐛 Found a Bug?
|
||||
|
||||
**Copyright © 2026 Evercatch.**
|
||||
Proprietary and confidential. Unauthorised distribution is strictly prohibited.
|
||||
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">
|
||||
<strong>Evercatch - No webhook left behind</strong>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user