Product Decisions This Supports
- Feature scoping: "notify a Trello board" without building an integration. This package is a single Laravel
NotificationChannel that turns a notification into a Trello card. It is the smallest possible unit of Trello integration — not a platform commitment. The real decision is adopt vs. write ~150–250 lines ourselves, not build vs. buy a vendor.
- Roadmap fit for Trello-native teams. Worth considering when the receiving audience (support triage, ops, sales intake, QA) already lives in Trello and Slack/email notifications are being ignored. The high opportunity score reflects an under-served channel niche, not package quality.
- Use cases that make sense: internal, human-in-the-loop queues — new lead → card on Sales board, escalated ticket → Support board, failed job summary → Ops board, bug report from an internal form → QA board. Best-effort, low-to-moderate volume.
- Use cases that do not: customer-facing or transactional messaging, high-volume alerting, anything requiring delivery guarantees, read receipts, or two-way sync (comments, card moves, webhooks back into the app). This channel is outbound-only.
- Cheap experimentation. Because the surface is one channel class plus a
toTrello() route, it can ship behind a config flag and be A/B'd against your existing Slack/email channels at near-zero cost.
- Ongoing ownership decision. With 25 stars, 0 dependents, and a last release in September 2020, adopting this is effectively adopting a fork you will maintain. Budget for that explicitly rather than treating it as a dependency.
When to Consider This Package
Consider it when:
- You are already on Laravel's notification system and want a Trello card per event with one class and one route method.
- The receiving team is Trello-native and the board is already the system of record for that queue.
- Volume is modest (hundreds per day) and delivery is best-effort — Trello's API rate limits (roughly 100 requests/10s per token, 300/10s per key) are the practical ceiling, and this package won't manage them for you.
- You can absorb the maintenance: pin the version, run a compatibility spike against your Laravel release, and be ready to fork or replace.
- You wrap it in your own thin channel/adapter so swapping to a direct Trello REST call is a drop-in change.
Look elsewhere when:
- You need two-way sync, webhooks, or board state read back into the app — use the Trello REST API directly.
- You are on a recent Laravel version and Composer resolution or the notification contract has drifted; verify before committing.
- You need retries, dead-letter handling, or guaranteed delivery beyond what Laravel's queue gives you.
- A generic webhook or Slack channel already solves the underlying need — Trello-specific formatting is the only thing you'd gain.
- You want vendor support or an SLA; a community channel with no releases in ~5 years will not provide one.
- Volume is high enough that rate limiting becomes a product problem rather than an edge case.
How to Pitch It (Stakeholders)
To executives: This is a small, MIT-licensed adapter that lets our application drop cards into Trello boards automatically — useful for routing internal work (leads, tickets, bugs) to teams that already work in Trello. There is no vendor contract, no per-seat cost, and no data lock-in; the integration surface is a single notification channel. The caveat is maturity: it is a community package with 25 stars, zero dependents, and no release since 2020, so we should treat it as a starting point we may need to maintain ourselves. Recommendation: a 1–2 day spike behind a feature flag, with a pre-agreed fallback of building the channel in-house (~1 day of engineering) if compatibility or maintenance looks bad. Low cost, bounded risk, real signal on whether a Trello channel gets used.
To engineering: It implements Laravel's existing NotificationChannel contract, configured via services.trello (API key + token) and routed through a toTrello() method on the notification. Outbound only — no webhooks, no state sync, no rate-limit handling. The primary risk is dependency drift: pin the version, confirm compatibility with our Laravel release in the spike, and wrap it in our own adapter class so a fork or a direct Trello REST call is a one-file swap. Keep it on the queue, keep volume low, and log failures rather than assuming delivery.