From 8176118c0f43fce10d1bd919c5f740b3adf36870 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 13 Feb 2026 15:34:23 +0000 Subject: [PATCH] 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. --- .env.example | 39 --- .gitea/issue_template/bug_report.md | 46 +++ .gitea/issue_template/documentation.md | 45 +++ .gitea/issue_template/feature_request.md | 54 +++ .../issue_template/security_vulnerability.md | 44 +++ .gitea/issue_template/support_request.md | 52 +++ .gitignore | 47 --- CODEOWNERS | 5 - CODE_OF_CONDUCT.md | 80 +++++ CONTRIBUTING.md | 317 ++++++++++++++++-- README.md | 244 +++++++++++--- SECURITY.md | 105 +++++- SUPPORT.md | 244 ++++++++++++++ 13 files changed, 1137 insertions(+), 185 deletions(-) delete mode 100644 .env.example create mode 100644 .gitea/issue_template/bug_report.md create mode 100644 .gitea/issue_template/documentation.md create mode 100644 .gitea/issue_template/feature_request.md create mode 100644 .gitea/issue_template/security_vulnerability.md create mode 100644 .gitea/issue_template/support_request.md delete mode 100644 .gitignore delete mode 100644 CODEOWNERS create mode 100644 CODE_OF_CONDUCT.md create mode 100644 SUPPORT.md diff --git a/.env.example b/.env.example deleted file mode 100644 index bb0023b..0000000 --- a/.env.example +++ /dev/null @@ -1,39 +0,0 @@ -# ───────────────────────────────────────────── -# Evercatch — Environment Variables -# Copy this file to .env and fill in values. -# NEVER commit .env to version control. -# ───────────────────────────────────────────── - -# App -APP_ENV=development -APP_PORT=8000 -APP_SECRET_KEY=change-me - -# Database — PostgreSQL -POSTGRES_HOST=localhost -POSTGRES_PORT=5432 -POSTGRES_DB=evercatch -POSTGRES_USER=evercatch -POSTGRES_PASSWORD=change-me - -# Database — MongoDB -MONGO_URI=mongodb://localhost:27017 -MONGO_DB=evercatch_events - -# Redis -REDIS_URL=redis://localhost:6379 - -# Stripe -STRIPE_SECRET_KEY=sk_test_... -STRIPE_WEBHOOK_SECRET=whsec_... -STRIPE_PRICE_ID_INDIE=price_... -STRIPE_PRICE_ID_PRO=price_... -STRIPE_PRICE_ID_BUSINESS=price_... - -# Providers -SENDGRID_WEBHOOK_KEY= -SHOPIFY_WEBHOOK_SECRET= -GITHUB_WEBHOOK_SECRET= - -# Internal -BOT_ACCESS_TOKEN= diff --git a/.gitea/issue_template/bug_report.md b/.gitea/issue_template/bug_report.md new file mode 100644 index 0000000..bc5a089 --- /dev/null +++ b/.gitea/issue_template/bug_report.md @@ -0,0 +1,46 @@ +--- +name: 🐛 Bug Report +about: Report a bug or unexpected behavior +title: '[BUG] ' +labels: bug, status:investigating +assignees: '' +--- + +## Bug Description + + +## Steps to Reproduce +1. +2. +3. + +## Expected Behavior + + +## Actual Behavior + + +## Environment +- **Subscription Tier**: Sandbox / Indie / Studio / Enterprise +- **Endpoint Used**: (e.g., POST /api/v1/webhooks/stripe/...) +- **Timestamp**: (e.g., 2026-02-13T10:30:00Z) +- **Event ID** (if applicable): evt_... +- **Browser** (if dashboard issue): Chrome / Firefox / Safari / Edge + +## Screenshots / Logs + +``` +Paste logs here +``` + +## Additional Context + + +## Workaround + + +--- + +**⚠️ SECURITY WARNING** +Do NOT include API keys, secrets, or sensitive customer data. +For security issues, email security@evercatch.dev instead. diff --git a/.gitea/issue_template/documentation.md b/.gitea/issue_template/documentation.md new file mode 100644 index 0000000..0017c80 --- /dev/null +++ b/.gitea/issue_template/documentation.md @@ -0,0 +1,45 @@ +--- +name: 📚 Documentation Issue +about: Report missing, incorrect, or unclear documentation +title: '[DOCS] ' +labels: documentation +assignees: '' +--- + +## Documentation Page + +https://docs.evercatch.dev/... + +## Issue Type +- [ ] Missing documentation +- [ ] Incorrect information +- [ ] Unclear/confusing explanation +- [ ] Broken link +- [ ] Code example doesn't work +- [ ] Typo/grammar +- [ ] Outdated information + +## Description + + +## Current Content + +``` +Current text/code here +``` + +## Suggested Fix + +``` +Suggested text/code here +``` + +## Additional Context + + +## Impact + +- [ ] Critical - Causes errors if followed +- [ ] High - Likely to confuse users +- [ ] Medium - Could be clearer +- [ ] Low - Minor improvement diff --git a/.gitea/issue_template/feature_request.md b/.gitea/issue_template/feature_request.md new file mode 100644 index 0000000..4ecc696 --- /dev/null +++ b/.gitea/issue_template/feature_request.md @@ -0,0 +1,54 @@ +--- +name: ✨ Feature Request +about: Suggest a new feature or enhancement +title: '[FEATURE] ' +labels: feature +assignees: '' +--- + +## Problem Statement + + +## Proposed Solution + + +## Use Case + + +**Example scenario:** +``` +When I... [describe situation] +I want to... [describe action] +So that... [describe benefit] +``` + +## Current Workaround + + +## Tier Relevance + +- [ ] Sandbox (Free) +- [ ] Indie +- [ ] Studio +- [ ] Enterprise +- [ ] All tiers + +## Similar Features + + +## Additional Context + + +## Impact + +- [ ] Critical - Blocking my business +- [ ] High - Very useful +- [ ] Medium - Nice to have +- [ ] Low - Just an idea + +## Willingness to Pay + +- [ ] Yes, I would upgrade immediately +- [ ] Yes, I would consider upgrading +- [ ] No, but it would improve my experience +- [ ] N/A - Already on Enterprise diff --git a/.gitea/issue_template/security_vulnerability.md b/.gitea/issue_template/security_vulnerability.md new file mode 100644 index 0000000..7e9c6e3 --- /dev/null +++ b/.gitea/issue_template/security_vulnerability.md @@ -0,0 +1,44 @@ +--- +name: 🔐 Security Vulnerability +about: Report a security issue (PRIVATE - use email instead) +title: 'DO NOT USE - Email security@evercatch.dev' +labels: security +assignees: '' +--- + +# ⚠️ STOP - DO NOT USE THIS TEMPLATE + +**Security vulnerabilities should NOT be reported publicly.** + +Please email us instead: **security@evercatch.dev** + +## Why? + +Public disclosure of security issues can: +- Put user data at risk +- Allow attackers to exploit the vulnerability +- Violate responsible disclosure practices + +## What to Include in Your Email + +- **Description** - What is the vulnerability? +- **Steps to Reproduce** - How can we reproduce it? +- **Impact** - What could an attacker do? +- **Proof of Concept** - Code or screenshots (optional) +- **Suggested Fix** - If you have one +- **Your Contact Info** - For follow-up + +## Our Commitment + +- ✅ Response within 24 hours +- ✅ Updates every 48 hours +- ✅ Credit in security advisories (if desired) +- ✅ Potential bug bounty (for critical issues) + +## Security Policy + +Read our full security policy: [SECURITY.md](../../SECURITY.md) + +--- + +**Thank you for keeping Evercatch secure!** 🔒 diff --git a/.gitea/issue_template/support_request.md b/.gitea/issue_template/support_request.md new file mode 100644 index 0000000..feac25d --- /dev/null +++ b/.gitea/issue_template/support_request.md @@ -0,0 +1,52 @@ +--- +name: ❓ Support Request +about: Get help with using Evercatch +title: '[SUPPORT] ' +labels: question +assignees: '' +--- + +## Issue Summary + + +## What I'm Trying to Do + + +## What I've Tried + + +1. +2. +3. + +## Account Information +- **Email**: (your account email) +- **User ID** (if known): +- **Subscription Tier**: Sandbox / Indie / Studio / Enterprise + +## Relevant Documentation + +- [ ] I've searched [docs.evercatch.dev](https://docs.evercatch.dev) +- [ ] I've checked [existing issues](../../issues) +- [ ] I've reviewed the [API docs](https://docs.evercatch.dev/api) + +## Error Messages + +``` +Paste error here +``` + +## Questions +1. +2. + +## Screenshots + + +--- + +**💡 TIP:** Before opening a support ticket, check: +- [Documentation](https://docs.evercatch.dev) +- [API Reference](https://docs.evercatch.dev/api) +- [Existing Issues](../../issues) +- [Status Page](https://status.evercatch.dev) diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0be5d15..0000000 --- a/.gitignore +++ /dev/null @@ -1,47 +0,0 @@ -# Environment -.env -.env.* -!.env.example - -# Python -__pycache__/ -*.py[cod] -*.pyo -*.pyd -.Python -*.egg-info/ -dist/ -build/ -.venv/ -venv/ -*.log - -# Node / Angular -node_modules/ -dist/ -.angular/ -*.tsbuildinfo - -# Docker -.docker/ - -# IDE -.vscode/ -.idea/ -*.swp -*.swo -.DS_Store -Thumbs.db - -# Coverage -.coverage -htmlcov/ -coverage/ -*.lcov - -# Secrets -*.pem -*.key -*.p12 -*.pfx -secrets/ diff --git a/CODEOWNERS b/CODEOWNERS deleted file mode 100644 index 225c647..0000000 --- a/CODEOWNERS +++ /dev/null @@ -1,5 +0,0 @@ -# Evercatch Code Owners -# These users are automatically requested for review on PRs. -# Format: path @username - -* @psmattas diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..6ee6bbf --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,80 @@ +# Code of Conduct + +## Our Pledge + +We are committed to providing a welcoming, inclusive, and harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +### ✅ Expected Behavior + +- Be respectful and professional +- Use welcoming and inclusive language +- Accept constructive feedback gracefully +- Focus on what's best for the community +- Show empathy towards others +- Help others when you can + +### ❌ Unacceptable Behavior + +- Harassment, discrimination, or hate speech +- Trolling, insulting, or inflammatory comments +- Personal or political attacks +- Publishing others' private information +- Spam or excessive self-promotion +- Any conduct that would be inappropriate in a professional setting + +## Scope + +This Code of Conduct applies to: + +- Issue tracker discussions +- Pull request comments +- Community forums +- Email communications +- Social media interactions +- Any Evercatch community space + +## Enforcement + +### Reporting + +If you experience or witness unacceptable behavior: + +**Email:** [conduct@evercatch.dev](mailto:conduct@evercatch.dev) + +Include: +- Description of the incident +- Date and time +- Links to evidence (if applicable) +- Your contact information + +### Response + +We will: + +1. **Acknowledge** - Respond within 24 hours +2. **Investigate** - Review the incident +3. **Act** - Take appropriate action +4. **Follow-up** - Update you on the outcome + +### Consequences + +Violations may result in: + +- **Warning** - First offense, minor violation +- **Temporary Ban** - Repeated violations +- **Permanent Ban** - Severe or repeated violations +- **Legal Action** - For threats, harassment, or illegal activity + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1. + +## Questions? + +Email [conduct@evercatch.dev](mailto:conduct@evercatch.dev) + +--- + +**Thank you for helping make Evercatch a welcoming community!** ❤️ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 475de33..6796f31 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,63 +1,308 @@ # Contributing to Evercatch -Thank you for contributing. Please read this guide before opening issues or PRs. +Thank you for your interest in contributing to Evercatch! 🎉 + +While Evercatch is currently **closed-source**, we welcome community contributions in several ways. --- -## 🌿 Branching +## 🐛 Bug Reports -Branch from `main` using the format `EC-ID-short-description`. +Found a bug? Please report it! -```bash -git checkout -b EC-12-implement-stripe-inbound -``` +**Before reporting:** +1. Search [existing issues](../../issues) to avoid duplicates +2. Check [docs.evercatch.dev](https://docs.evercatch.dev) for solutions +3. Verify it's reproducible + +**How to report:** +1. Use our [Bug Report Template](../../issues/new?template=bug_report.md) +2. Include clear steps to reproduce +3. Provide environment details (tier, timestamps, event IDs) +4. **Never include** API keys or sensitive data + +**What happens next:** +- We'll acknowledge within 24-48 hours +- We'll add appropriate labels +- We'll investigate and provide updates +- Critical bugs are prioritized --- -## ✨ Commit Messages +## ✨ Feature Requests -Follow the Conventional Commits standard prefixed with the issue ID. +Have an idea? We'd love to hear it! -**Format:** `EC-00: (scope): message` +**Before requesting:** +1. Check the [Public Roadmap](https://roadmap.evercatch.dev) +2. Search [existing requests](../../issues?q=is%3Aissue+label%3Afeature) +3. Think about the use case and impact -| Type | Description | -| :--- | :--- | -| `feat` | New feature | -| `fix` | Bug fix | -| `docs` | Documentation | -| `style` | Formatting | -| `refactor` | Refactor | -| `perf` | Performance | -| `test` | Tests | -| `build` | Build system | -| `ci` | CI/CD config | -| `chore` | Maintenance | +**How to request:** +1. Use our [Feature Request Template](../../issues/new?template=feature_request.md) +2. Explain the problem it solves +3. Describe your ideal solution +4. Share your use case +5. Mention which tier would benefit -**Examples:** -- `EC-12: feat(webhooks): implement stripe inbound endpoint` -- `EC-18: fix(relay): resolve double-delivery on retry` +**What happens next:** +- We'll review and discuss with you +- Popular requests get upvoted +- We'll add to roadmap if aligned with our vision +- You'll be notified when we start building it --- -## 🔍 Pull Requests +## 📚 Documentation -- Link the issue in your PR description -- All CI checks must pass before requesting review -- Minimum one approval required to merge -- Keep PRs focused — one feature or fix per PR +Help us improve our docs! + +**Ways to contribute:** +- Report unclear or missing documentation +- Suggest better examples +- Point out broken links +- Fix typos or grammar + +**How to contribute:** +1. Use our [Documentation Template](../../issues/new?template=documentation.md) +2. Link to the specific docs page +3. Explain what's wrong +4. Suggest improvements --- -## 🏷️ Labels +## 🧪 Beta Testing -Apply the appropriate labels to your issue or PR: +Want early access to new features? -- `type:` — what kind of change is this -- `priority:` — how urgent is it -- `status:` — current state of the issue or PR +**Join our beta program:** +1. Sign up at [evercatch.dev/beta](https://evercatch.dev/beta) +2. Get invited to private beta releases +3. Test new features before they're public +4. Provide feedback directly to the team + +**Beta testers get:** +- ✨ Early access to features +- 🎯 Direct line to product team +- 🎁 Swag and perks +- 🏆 Recognition in release notes --- -## ❓ Questions +## 💬 Community Support -Open an issue with the `type: chore` label or reach out via the org README. +Help other users in the community! + +**Ways to help:** +- Answer questions in issues +- Share your integration examples +- Write blog posts about Evercatch +- Create video tutorials + +**Recognition:** +Top contributors get: +- 🎖️ "Community Helper" badge +- 💎 Free tier upgrades +- 🎁 Swag package +- 🌟 Featured in our newsletter + +--- + +## 🔐 Security + +**Found a security vulnerability?** + +**DO NOT** open a public issue. Instead: + +📧 **Email:** [security@evercatch.dev](mailto:security@evercatch.dev) + +See our [Security Policy](SECURITY.md) for details. + +--- + +## 🎯 Integration Examples + +Share how you're using Evercatch! + +**We're looking for:** +- Code examples in different languages +- Integration guides for specific providers +- Creative use cases +- Performance optimizations + +**How to share:** +1. Open a [Feature Request](../../issues/new?template=feature_request.md) +2. Label it as "integration-example" +3. Share your code (sanitized of secrets!) +4. Explain the use case + +**We'll feature the best examples on:** +- [docs.evercatch.dev](https://docs.evercatch.dev) +- Our blog +- Social media + +--- + +## 📝 Blog Posts & Tutorials + +Written about Evercatch? + +**Let us know!** We'll: +- Share it on our blog +- Promote it on social media +- Link to it from our docs +- Send you swag 🎁 + +**Email:** [community@evercatch.dev](mailto:community@evercatch.dev) + +**Include:** +- Link to your post +- Brief summary +- Your name/company +- Preferred social handle + +--- + +## 🎨 Design Feedback + +Got UI/UX suggestions? + +**We love design feedback:** +- Dashboard improvements +- API response formats +- Documentation layout +- Error messages + +**How to share:** +1. Open a [Feature Request](../../issues/new?template=feature_request.md) +2. Include screenshots or mockups +3. Explain the improvement +4. Share design rationale + +--- + +## 💡 Best Practices + +### Writing Good Issues + +**Do:** +- ✅ Use clear, descriptive titles +- ✅ Include all requested template information +- ✅ Provide context and examples +- ✅ Be respectful and professional +- ✅ Follow up on questions + +**Don't:** +- ❌ Create duplicate issues +- ❌ Ask multiple unrelated questions in one issue +- ❌ Bump issues without new information +- ❌ Include API keys or sensitive data +- ❌ Demand features or fixes + +### Communication Guidelines + +**Be:** +- 🤝 Respectful and professional +- 📝 Clear and concise +- 💭 Open to discussion +- 🙏 Patient with response times +- ❤️ Kind to other community members + +**Remember:** +- We're a small team +- Enterprise users get priority support +- Free tier users may wait longer +- Some features may not align with our roadmap +- We appreciate your understanding + +--- + +## 🏆 Recognition + +### Hall of Fame + +Top contributors get featured in our: +- Monthly newsletter +- Annual report +- About page +- Conference talks + +### Contributor Tiers + +**🥉 Bronze** (1-5 contributions) +- Thank you in release notes +- Digital badge + +**🥈 Silver** (6-15 contributions) +- Free Indie plan (1 year) +- Swag package +- Featured in newsletter + +**🥇 Gold** (16+ contributions) +- Free Studio plan (1 year) +- Premium swag +- Video call with founders +- Listed as "Top Contributor" + +--- + +## 📅 Release Process + +**Our schedule:** +- 🚀 **Major releases** - Quarterly +- 🔄 **Minor releases** - Monthly +- 🐛 **Bug fixes** - Weekly +- 🔥 **Hotfixes** - As needed + +**Stay updated:** +- [Changelog](https://changelog.evercatch.dev) +- [Twitter](https://twitter.com/evercatch) +- [Newsletter](https://evercatch.dev/newsletter) + +--- + +## 🤝 Code of Conduct + +All contributors must follow our [Code of Conduct](CODE_OF_CONDUCT.md). + +**Summary:** +- Be respectful and inclusive +- No harassment or discrimination +- Focus on constructive feedback +- Help create a welcoming community + +**Violations:** Report to [conduct@evercatch.dev](mailto:conduct@evercatch.dev) + +--- + +## ❓ Questions? + +**Not sure where to start?** + +- 📚 Read the [docs](https://docs.evercatch.dev) +- 💬 Ask in [issues](../../issues) +- 📧 Email [community@evercatch.dev](mailto:community@evercatch.dev) +- 🐦 Tweet [@evercatch](https://twitter.com/evercatch) + +--- + +## 🎁 Thank You! + +Every contribution matters, no matter how small: +- 🐛 Bug reports help us improve +- ✨ Feature ideas shape our roadmap +- 📚 Documentation helps other users +- 💬 Community support makes everyone's experience better + +**We appreciate you!** ❤️ + +--- + +

+ Built with ❤️ by developers, for developers +
+ Website • + Docs • + Roadmap • + Status +

diff --git a/README.md b/README.md index 788863e..642325d 100644 --- a/README.md +++ b/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 | ![Build Status](https://img.shields.io/badge/build-pending-lightgrey) | -| Lint | ![Lint Status](https://img.shields.io/badge/lint-pending-lightgrey) | -| Test | ![Test Status](https://img.shields.io/badge/tests-pending-lightgrey) | +**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) + +--- + +

+ Evercatch - No webhook left behind +
+ Website • + Docs • + Dashboard • + Status +

diff --git a/SECURITY.md b/SECURITY.md index 088a2c2..de25d83 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,23 +2,98 @@ ## Reporting a Vulnerability -If you discover a security vulnerability in any Evercatch repository, -please do **not** open a public issue. +**We take security seriously.** If you discover a security vulnerability, please report it responsibly. -Report it privately to: **security@evercatch.io** +### 🔒 How to Report -Include: -- A description of the vulnerability -- Steps to reproduce -- Potential impact -- Any suggested fixes if available +**Email:** [security@evercatch.dev](mailto:security@evercatch.dev) -We will acknowledge receipt within 48 hours and aim to release a fix -within 14 days depending on severity. +**DO NOT:** +- ❌ Open a public GitHub/Gitea issue +- ❌ Disclose the vulnerability publicly +- ❌ Exploit the vulnerability -## Supported Versions +**DO:** +- ✅ Email us with detailed information +- ✅ Give us reasonable time to fix it +- ✅ Follow responsible disclosure practices -| Version | Supported | -| :--- | :---: | -| Latest `main` | ✅ | -| Older releases | ❌ | +### 📧 What to Include + +Please include as much information as possible: + +- **Description** - What is the vulnerability? +- **Impact** - What could an attacker do? +- **Steps to Reproduce** - How can we reproduce it? +- **Proof of Concept** - Code, screenshots, or examples +- **Suggested Fix** - If you have ideas +- **Your Contact Info** - For follow-up questions + +### ⏱️ Our Response Process + +1. **Acknowledgment** - We'll respond within 24 hours +2. **Assessment** - We'll evaluate severity and impact +3. **Updates** - We'll provide updates every 48 hours +4. **Fix** - We'll develop and test a patch +5. **Disclosure** - We'll coordinate public disclosure with you +6. **Credit** - We'll credit you in our security advisory (if desired) + +### 🎯 Severity Levels + +| Level | Description | Response Time | +|-------|-------------|---------------| +| **Critical** | Data breach, RCE, privilege escalation | 24 hours | +| **High** | Auth bypass, SQL injection, XSS | 48 hours | +| **Medium** | CSRF, info disclosure, DoS | 1 week | +| **Low** | Security misconfigurations | 2 weeks | + +### 💰 Bug Bounty Program + +We currently don't have a formal bug bounty program, but we may provide: + +- 🎁 Swag (t-shirts, stickers) +- 💳 Free subscription upgrades +- 💵 Monetary rewards for critical vulnerabilities (case-by-case) +- 🏆 Public recognition (if desired) + +### ✅ In Scope + +- API endpoints (api.evercatch.dev) +- Web dashboard (app.evercatch.dev) +- Authentication/authorization +- Data storage and access controls +- Webhook forwarding logic +- Billing system + +### ❌ Out of Scope + +- Social engineering attacks +- Physical attacks +- DoS/DDoS attacks +- Spam or abuse of service +- Issues in third-party services (Stripe, SendGrid, etc.) +- Theoretical vulnerabilities without proof of concept + +### 🛡️ Security Measures We Take + +- **Encryption** - TLS 1.3 in transit, AES-256 at rest +- **Authentication** - API keys hashed with bcrypt +- **Rate Limiting** - Per-tier limits prevent abuse +- **Input Validation** - All inputs sanitized +- **Monitoring** - 24/7 monitoring for suspicious activity +- **Audits** - Regular security audits +- **Compliance** - SOC2 Type II (planned Q2 2026) + +### 📜 Security Advisories + +Past security advisories: [evercatch.dev/security](https://evercatch.dev/security) + +### 📞 Contact + +- **Security Team:** security@evercatch.dev +- **PGP Key:** [Download](https://evercatch.dev/pgp) +- **Status Page:** [status.evercatch.dev](https://status.evercatch.dev) + +--- + +**Thank you for helping keep Evercatch and our users safe!** 🔐 diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 0000000..7b8f3ce --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,244 @@ +# Getting Support + +Need help with Evercatch? We're here for you! 🙋 + +--- + +## 🚀 Quick Links + +- 📚 **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) +- 🗺️ **Roadmap**: [roadmap.evercatch.dev](https://roadmap.evercatch.dev) +- 📝 **Changelog**: [changelog.evercatch.dev](https://changelog.evercatch.dev) + +--- + +## 📚 Self-Service Resources + +**Before contacting support, try these:** + +### Documentation +- [Getting Started Guide](https://docs.evercatch.dev/getting-started) +- [Integration Guides](https://docs.evercatch.dev/integrations) +- [API Reference](https://docs.evercatch.dev/api) +- [Troubleshooting](https://docs.evercatch.dev/troubleshooting) +- [FAQ](https://docs.evercatch.dev/faq) + +### Common Issues +- [Webhook not being received?](https://docs.evercatch.dev/troubleshooting/webhook-not-received) +- [Forwarding failed?](https://docs.evercatch.dev/troubleshooting/forwarding-failed) +- [Rate limited?](https://docs.evercatch.dev/troubleshooting/rate-limits) +- [Authentication errors?](https://docs.evercatch.dev/troubleshooting/auth-errors) + +--- + +## 💬 Community Support + +**Free for all users** + +### Issue Tracker +Search or create issues for: +- 🐛 [Bug Reports](../../issues?q=label%3Abug) +- ✨ [Feature Requests](../../issues?q=label%3Afeature) +- ❓ [Questions](../../issues?q=label%3Aquestion) + +**[→ Search Issues](../../issues)** · **[→ Ask a Question](../../issues/new?template=support_request.md)** + +### Community Forum +- Ask questions +- Share tips and tricks +- Connect with other users +- **[→ Join Community](https://community.evercatch.dev)** + +--- + +## 📧 Email Support + +### General Support +**Email:** [support@evercatch.dev](mailto:support@evercatch.dev) + +**Response times by tier:** +- **Sandbox**: 3-5 business days +- **Indie**: 2-3 business days +- **Studio**: 1-2 business days +- **Enterprise**: 4 hours (SLA) + +**What to include:** +- Your account email or user ID +- Subscription tier +- Clear description of the issue +- Steps to reproduce +- Event IDs or timestamps (if applicable) +- What you've already tried + +### Billing Support +**Email:** [billing@evercatch.dev](mailto:billing@evercatch.dev) + +For questions about: +- Invoices and receipts +- Payment methods +- Subscription changes +- Overage charges +- Refund requests + +**Response time:** 1-2 business days + +### Account Issues +**Email:** [accounts@evercatch.dev](mailto:accounts@evercatch.dev) + +For issues with: +- Login problems +- Password resets +- Email changes +- Account deletion +- Data exports + +**Response time:** 1 business day + +--- + +## 🚨 Urgent Issues + +### Service Outage +1. Check [status.evercatch.dev](https://status.evercatch.dev) +2. Subscribe to status updates +3. Email [urgent@evercatch.dev](mailto:urgent@evercatch.dev) (Enterprise only) + +### Security Vulnerability +**DO NOT use public support channels** + +**Email:** [security@evercatch.dev](mailto:security@evercatch.dev) + +See [SECURITY.md](SECURITY.md) for full policy. + +--- + +## 🏢 Enterprise Support + +**For Enterprise customers only** + +### Dedicated Support +- 🎯 Dedicated Slack channel +- 📞 Phone support +- ⚡ 4-hour response SLA +- 🔧 Custom integration help +- 📊 Quarterly business reviews + +### Contact Your Team +- **Account Manager**: Your dedicated contact +- **Enterprise Support**: [enterprise@evercatch.dev](mailto:enterprise@evercatch.dev) +- **Slack**: #evercatch-yourcompany (invite sent on onboarding) + +--- + +## 📞 Contact Methods by Issue Type + +| Issue Type | Best Channel | Response Time | +|------------|--------------|---------------| +| Bug Report | [Issue Tracker](../../issues/new?template=bug_report.md) | 24-48 hours | +| Feature Request | [Issue Tracker](../../issues/new?template=feature_request.md) | Review within 1 week | +| How-to Question | [Documentation](https://docs.evercatch.dev) or [Support Email](mailto:support@evercatch.dev) | Varies by tier | +| Billing | [billing@evercatch.dev](mailto:billing@evercatch.dev) | 1-2 business days | +| Account Issue | [accounts@evercatch.dev](mailto:accounts@evercatch.dev) | 1 business day | +| Service Outage | [Status Page](https://status.evercatch.dev) | Real-time updates | +| Security | [security@evercatch.dev](mailto:security@evercatch.dev) | 24 hours | +| Enterprise | Slack or [enterprise@evercatch.dev](mailto:enterprise@evercatch.dev) | 4 hours (SLA) | + +--- + +## 🎓 Learning Resources + +### Video Tutorials +- [Getting Started (5 min)](https://evercatch.dev/tutorials/getting-started) +- [Setting up Stripe Webhooks (3 min)](https://evercatch.dev/tutorials/stripe-setup) +- [Event Replay (4 min)](https://evercatch.dev/tutorials/event-replay) + +### Blog Posts +- [Best Practices for Webhook Reliability](https://blog.evercatch.dev/webhook-reliability) +- [Debugging Failed Webhooks](https://blog.evercatch.dev/debugging-webhooks) +- [Scaling Webhook Infrastructure](https://blog.evercatch.dev/scaling-webhooks) + +### Integration Guides +- [Stripe](https://docs.evercatch.dev/integrations/stripe) +- [SendGrid](https://docs.evercatch.dev/integrations/sendgrid) +- [GitHub](https://docs.evercatch.dev/integrations/github) +- [Shopify](https://docs.evercatch.dev/integrations/shopify) +- [More...](https://docs.evercatch.dev/integrations) + +--- + +## 💡 Tips for Better Support + +### Before Contacting Us +1. ✅ Check the [Status Page](https://status.evercatch.dev) +2. ✅ Search [existing issues](../../issues) +3. ✅ Review [documentation](https://docs.evercatch.dev) +4. ✅ Gather relevant information (event IDs, timestamps) + +### When Contacting Us +1. ✅ Use descriptive subject lines +2. ✅ Include your subscription tier +3. ✅ Provide steps to reproduce +4. ✅ Share error messages or screenshots +5. ✅ Tell us what you've already tried +6. ❌ Don't include API keys or secrets + +### Follow-Up +1. ✅ Respond promptly to our questions +2. ✅ Test suggested solutions +3. ✅ Confirm when issue is resolved +4. ✅ Share feedback on the support experience + +--- + +## 🌟 Other Ways to Get Help + +### Twitter +- Tweet [@evercatch](https://twitter.com/evercatch) +- DM us for quick questions +- Not for urgent issues + +### Newsletter +- Monthly tips and best practices +- **[Subscribe](https://evercatch.dev/newsletter)** + +### Office Hours (Enterprise Only) +- Monthly video call with product team +- Q&A and roadmap discussions + +--- + +## 🗺️ Support Roadmap + +**Coming Soon:** +- 💬 Live chat support (Studio+) +- 📞 Phone support (Enterprise) +- 🎥 Expanded video library +- 🤖 AI-powered docs search +- 🎓 Certification program + +**Want early access?** Email [beta@evercatch.dev](mailto:beta@evercatch.dev) + +--- + +## ⭐ Help Us Improve + +**Had a great support experience?** +- Leave us a review +- Share on social media +- Refer a friend + +**Support could be better?** +- Email [feedback@evercatch.dev](mailto:feedback@evercatch.dev) +- We read every message + +--- + +

+ We're here to help you succeed! +
+ Email Support • + Documentation • + Status +