diff --git a/README.md b/README.md index 6d51111..f206eee 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,69 @@ -

- Evercatch Banner -

+
-

- The webhook infrastructure platform for developers who want simplicity without sacrificing power. -

+Evercatch -

- Website • - Docs • - Dashboard • - Status -

+
+
+ +ALPHA +  +Beta June 2026 +  +Closed Source + +
+
+ +### Webhook infrastructure that just works. + +**One endpoint. Any provider. Reliable delivery.** + +Point every webhook at Evercatch. We capture, normalize, and forward them to your app — with retries, history, and zero glue code. + +
+ +[Join the Beta](#-join-the-beta)  ·  [Roadmap](ROADMAP.md)  ·  [Docs](https://docs.evercatch.dev)  ·  [Status](https://status.evercatch.dev)  ·  [Pricing](#-pricing) + +
+ +
+ +> [!WARNING] +> **Evercatch is in active ALPHA development and is not production-ready.** Most external links (docs, dashboard, API, blog) will not be live until the beta launch. Interested in early access? Reach out at [contact@evercatch.dev](mailto:contact@evercatch.dev). --- -> **The webhook infrastructure platform for developers who want simplicity without sacrificing power.** +## The Problem -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. +You're wiring up Stripe, SendGrid, GitHub, Shopify — all at once. Each one speaks a different language: + +- Different payload schemas +- Different signature verification methods +- Different retry semantics +- No single place to debug, search, or replay events + +**You're writing glue code instead of shipping features.** + +## The Fix + +``` +Your Providers → Evercatch → Your App +``` + +Point every webhook at a single Evercatch endpoint. We handle the rest: + +- **Normalize** every payload to a unified schema +- **Validate** signatures so you don't have to +- **Store** events with configurable retention (24h → 90 days) +- **Forward** to your destination with automatic retries and exponential backoff +- **Replay** any event from your dashboard in seconds --- -## 📋 What is Evercatch? +## Quick Start -Evercatch sits between your webhook providers (Stripe, SendGrid, GitHub, etc.) and your application, giving you: +### 1. Create an account -- **📦 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" \ @@ -70,178 +74,248 @@ curl -X POST https://api.evercatch.dev/api/v1/auth/signup \ }' ``` -**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" } + "user": { "id": "550e8400-e29b-...", "email": "you@example.com" }, + "api_key": { "api_key": "ec_live_abc123...", "prefix": "ec_live_abc1" }, + "subscription": { "tier": "sandbox", "status": "active" } } ``` -### 2. Point Your Webhooks at Evercatch +### 2. Point your webhook provider at Evercatch + ``` -https://api.evercatch.dev/api/v1/webhooks/stripe/550e8400-... +https://api.evercatch.dev/api/v1/webhooks/{provider}/{your-user-id} ``` -**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...` +Configure Stripe in 30 seconds: +1. Open [Stripe Dashboard → Webhooks](https://dashboard.stripe.com/webhooks) +2. Add endpoint → paste your Evercatch URL +3. Add header: `X-API-Key: ec_live_abc123...` +4. Select events → done + +### 3. Register a destination -### 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", + "name": "My 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 +Evercatch now receives, normalizes, stores, and forwards every matching event — automatically retrying on failure. + +### Or use a native SDK + +```python +# Python +from evercatch import Evercatch + +ec = Evercatch("ec_live_abc123...") +ec.destinations.create( + name="My API", + url="https://yourapp.com/webhooks", + providers=["stripe"], + event_types=["payment.*"], +) +``` + +```typescript +// Node.js / TypeScript +import { Evercatch } from "@evercatch/sdk"; + +const ec = new Evercatch("ec_live_abc123..."); +await ec.destinations.create({ + name: "My API", + url: "https://yourapp.com/webhooks", + providers: ["stripe"], + eventTypes: ["payment.*"], +}); +``` --- -## 📊 Pricing +## Integrations -| 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 | +We are launching with major integrations from day one, with more coming after beta. -**All plans include:** -- ✅ Unlimited API keys -- ✅ Real-time event forwarding -- ✅ Automatic retries -- ✅ 99.9% uptime SLA -- ✅ Support via email +| Provider | Incoming Webhooks | Signature Verification | Normalized Schema | +|----------|:-----------------:|:---------------------:|:-----------------:| +| **Stripe** | ✅ | ✅ | ✅ | +| **More at launch** | ✅ | ✅ | ✅ | -**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) +> New integrations are tracked in [ROADMAP.md](ROADMAP.md). Want to see a specific provider? [Request it here](https://git.psmattas.com/Evercatch/.profile/issues/new?template=.gitea%2fissue_template%2ffeature_request.yml). --- -## 🐛 Found a Bug? +## SDKs -We want to fix it! **[→ Report a Bug](../../issues/new?template=bug_report.md)** +Native, idiomatic clients for your language — all built on the same REST API. -Please include: -- Clear steps to reproduce -- Expected vs actual behavior -- Your subscription tier -- Event IDs (if applicable) +| Language | Package | Status | +|----------|---------|--------| +| **Python** | `pip install evercatch` | Launching with beta | +| **Node.js / TypeScript** | `npm install @evercatch/sdk` | Launching with beta | +| **Go** | `go get github.com/evercatch/evercatch-go` | Launching with beta | +| **Ruby** | `gem install evercatch` | Launching with beta | -**Do NOT include API keys or sensitive data.** +All SDKs support the full API surface: destinations, event history, replays, and API key management. --- -## ✨ Have a Feature Idea? +## CLI -We'd love to hear it! **[→ Request a Feature](../../issues/new?template=feature_request.md)** +A first-class CLI tool ships at launch for local development workflows. -Tell us: -- What problem it solves -- How you'd use it -- Which tier would benefit +```bash +# Install +npm install -g @evercatch/cli + +# Authenticate +ec auth login + +# Forward live events to your local server during development +ec listen --forward http://localhost:3000/webhooks + +# Replay a past event +ec events replay evt_01j9x... + +# Inspect recent events +ec events list --provider stripe --limit 20 +``` + +The CLI is designed to replace `ngrok` style tunnelling for webhook development — no tunnels needed, just replay and inspect from your terminal. --- -## 🔐 Security Vulnerability? +## Pricing -**DO NOT open a public issue.** +| Plan | Price | Events / mo | Retention | Destinations | Overage | +|------|-------|-------------|-----------|--------------|---------| +| **Sandbox** | Free | 100k | 24 hours | 2 | — | +| **Indie** | €29 / mo | 1M | 7 days | 10 | €0.50 / 100k | +| **Studio** | €99 / mo | 10M | 30 days | Unlimited | €0.30 / 100k | +| **Enterprise** | €299 / mo | 50M | 90 days | Unlimited | €0.20 / 100k | -**Email:** [security@evercatch.dev](mailto:security@evercatch.dev) +
+What's included in each plan -We'll respond within 24 hours. See our [Security Policy](SECURITY.md) for details. +
+ +**All plans** +- Unlimited API keys +- Real-time event forwarding +- Automatic retries with exponential backoff +- 99.9% uptime SLA +- Email support + +**Studio and above** +- Full-text event search +- Advanced filtering +- Event replay +- Custom retention windows + +**Enterprise** +- Priority support + dedicated Slack channel +- Custom SLAs and contracts +- SSO / SAML +- Custom retention and event volume + +
+ +[Start Free →](https://evercatch.dev/signup)  ·  [View Full Pricing →](https://evercatch.dev/pricing) --- -## ❓ Need Help? +## Join the Beta -- 📚 **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)** +> We are preparing for **beta launch in June 2026** *(tentative)*. See [ROADMAP.md](ROADMAP.md) for details. + +We're looking for early developers to test the platform before public launch. Sign up, try it out, and share honest feedback — we'll set you up with a **free Indie or higher subscription** account for the duration of testing. + +**To join the beta developer list:** + +Send an email to [contact@evercatch.dev](mailto:contact@evercatch.dev) with the subject line **`Beta Dev List`** and a short description of your use case. + +We'll follow up with access details as we get closer to launch. --- -## 📚 Resources +## Reference -- **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) +
+Found a bug? + +
+ +**[→ Open a Bug Report](https://git.psmattas.com/Evercatch/.profile/issues/new?template=.gitea%2fissue_template%2fbug_report.yml)** + +Include: steps to reproduce · expected vs actual behaviour · your subscription tier · event IDs if applicable. + +Do **not** include API keys or sensitive data in public issues. + +
+ +
+Have a feature request? + +
+ +**[→ Open a Feature Request](https://git.psmattas.com/Evercatch/.profile/issues/new?template=.gitea%2fissue_template%2ffeature_request.yml)** + +Tell us what problem it solves, how you'd use it, and which tier it matters most for. + +
+ +
+Security vulnerability? + +
+ +**Do not open a public issue.** + +Email [security@evercatch.dev](mailto:security@evercatch.dev) — we respond within 24 hours. See [SECURITY.md](SECURITY.md) for our full disclosure policy and bug bounty details. + +
+ +
+Need help? + +
+ +- [docs.evercatch.dev](https://docs.evercatch.dev) — full documentation +- [support@evercatch.dev](mailto:support@evercatch.dev) — email support +- [billing@evercatch.dev](mailto:billing@evercatch.dev) — billing questions +- [Open a support ticket →](https://git.psmattas.com/Evercatch/.profile/issues/new?template=.gitea%2fissue_template%2fsupport_request.yml) + +
+ +
+Legal + +
+ +[Terms of Service](https://evercatch.dev/terms)  ·  [Privacy Policy](https://evercatch.dev/privacy)  ·  [SLA](https://evercatch.dev/sla)  ·  [Acceptable Use](https://evercatch.dev/acceptable-use) + +Community: [Code of Conduct](CODE_OF_CONDUCT.md) — report violations to [conduct@evercatch.dev](mailto:conduct@evercatch.dev) + +
--- -## 🤝 Contributing +
-We welcome community contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for: -- Bug reports -- Feature requests -- Documentation improvements -- Beta testing -- Integration examples +
---- +**No webhook left behind.** -## 📜 Code of Conduct +
-All community members must follow our [Code of Conduct](CODE_OF_CONDUCT.md). +[evercatch.dev](https://evercatch.dev)  ·  [status.evercatch.dev](https://status.evercatch.dev)  ·  [contact@evercatch.dev](mailto:contact@evercatch.dev) -**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) - ---- - -

- Evercatch Banner -
- No webhook left behind -

- Website • - Docs • - Dashboard • - Status -

+
diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..5af4418 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,99 @@ +
+ +# Evercatch Roadmap + +**Beta launch tentatively planned for June 2026.** + +This is a high-level overview. Evercatch is a closed-source project — a detailed public roadmap is not available at this time. This document will be updated as we get closer to launch. + +
+ +--- + +> [!CAUTION] +> All timelines are **tentative** and subject to change. Nothing here should be treated as a commitment. + +--- + +## Beta Launch — June 2026 *(tentative)* + +The initial beta release is focused on delivering a solid, well-tested core. Here is what we are targeting for day one: + +### Integrations + +We are launching with major webhook provider integrations from day one. Each integration includes: + +- Incoming webhook ingestion +- Cryptographic signature verification +- Payload normalisation to the Evercatch unified schema + +Additional integrations will be added in the weeks following beta launch based on community demand. + +> Want to see a specific integration? [Request it →](https://git.psmattas.com/Evercatch/.profile/issues/new?template=.gitea%2fissue_template%2ffeature_request.yml) + +### Native SDKs + +First-party SDK support is shipping with beta: + +| SDK | Install | Notes | +|-----|---------|-------| +| **Python** | `pip install evercatch` | Full API coverage | +| **Node.js / TypeScript** | `npm install @evercatch/sdk` | Full API coverage, typed | +| **Go** | `go get github.com/evercatch/evercatch-go` | Full API coverage | +| **Ruby** | `gem install evercatch` | Full API coverage | + +All SDKs target the same REST API surface and will be kept in sync with API changes. + +### CLI Tool + +A dedicated CLI for local development ships at beta launch: + +``` +@evercatch/cli +``` + +**Key capabilities:** + +- `ec auth login` — authenticate your local environment +- `ec listen` — receive and forward live events to a local server without tunnelling +- `ec events list` — browse recent events with filtering +- `ec events replay ` — replay any stored event to any destination +- `ec destinations list / create / delete` — manage destinations from the terminal + +The CLI is a first-class tool, not an afterthought. The goal is to make local webhook development fast and debuggable. + +### Dashboard & API + +- Full web dashboard for event browsing, search, filtering, and replay +- REST API with comprehensive coverage +- API key management with per-key scoping + +--- + +## Join the Beta + +We are looking for developers to test Evercatch before public launch. Beta testers who provide **valuable feedback** will receive a **free Indie or higher subscription** account for the duration of testing. + +**To get on the list:** + +Email [contact@evercatch.dev](mailto:contact@evercatch.dev) with subject line **`Beta Dev List`** and a short description of your use case. We will follow up with access details closer to launch. + +For general questions or feedback: [support@evercatch.dev](mailto:support@evercatch.dev) + +--- + +## Post-Beta + +We will share more details about the post-beta roadmap after the initial launch. Areas we are actively thinking about include: + +- Additional webhook provider integrations +- Extended SDK language support +- Advanced event filtering and routing rules +- Team and organisation features +- Custom webhook transformation pipelines + +--- + +*Last updated: February 2026* + +[← Back to README](README.md)