Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Email Crm Bundle Laravel Package

libre-informatique/email-crm-bundle

Email CRM bundle for PHP applications, offering reusable components to connect email interactions with customer records and support lightweight CRM workflows. Designed for straightforward integration into existing projects and adaptable to common contact-management needs.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framing correction (blocking): libre-informatique/email-crm-bundle is a Symfony bundle, not a Laravel package. It registers via config/bundles.php and YAML configuration, ships Doctrine entities and mappings, and has no service provider, facade, or config/*.php. Against a Laravel target, architecture fit is effectively zero without a port — and porting an unmaintained, undocumented bundle is almost always costlier than building the equivalent feature natively. The first TPM action is to reclassify this item out of the Laravel dependency backlog and into the "reference material" bucket.

Architecture fit: The bundle belongs to Libre Informatique's open-source ERP/CRM family (Blast and related bundles), historically composed on Symfony with Sylius-derived components (ResourceBundle, GridBundle, Registry) and Doctrine ORM. Expect coupling to Symfony form types, event dispatchers, and the mail transport abstractions of the PHP 7.x / Symfony 3.4–4.4 era. The functional scope — contacts, lists/segmentation, campaign tracking, email logging — is a credible domain sketch (email ↔ contact ↔ organization ↔ activity), which is where its value sits for a TPM.

Integration feasibility: Composer-installable in principle, but with 1 star, 0 dependents, no tagged releases, and no discoverable documentation, feasibility must be established by reading source, not the README. Expect swiftmailer/swiftmailer (EOL since late 2021) rather than symfony/mailer, which caps the integration surface: it is incompatible with modern Symfony mailer/notifier and with PHP 8.2+ security maintenance. Pulling it in likely drags an unintended CRM stack as transitive surface.

Technical risk:

  • License — highest severity. NOASSERTION means the license is not machine-identifiable: possibly no LICENSE file, a custom notice, or a broken header. Shipping into a commercial or client-facing product without written clarification is a legal exposure that outweighs any engineering benefit. This alone is often a stop condition.
  • Maintenance. No release cadence, no visible CI, single-vendor provenance. Functionally abandoned; you inherit full ownership on day one.
  • Security and privacy. An email CRM means stored PII (names, addresses, message bodies, tracking data) plus outbound sending. An unmaintained dependency on that path is a GDPR/retention and deliverability liability.
  • Upgrade lock-in. A SwiftMailer-era dependency can become the reason the host application cannot move to a supported framework/PHP version.

Key questions for the author (Libre Informatique): What is the exact license, in writing? Which Symfony/PHP versions are supported today? SwiftMailer or Symfony Mailer? What is the full transitive dependency set and are any abandoned? Does it own bounce/complaint/unsubscribe handling or defer to the transport? Where is PII stored and is there retention/erasure support? Is there paid support, and is there a maintained successor bundle?

TPM recommendation: Evaluate as a reference implementation for domain modeling, not as a dependency. Proceed to any hands-on work only if the target stack is Symfony ≤4.4 and a license clarification is obtained; otherwise close the item out with a documented rationale.

Integration Approach

Stack fit — two scenarios, one decision. (1) Laravel target — do not integrate. Extract the data model concepts (contact, list/segment, campaign, template, send record, suppression list, activity log) and implement against Laravel's mailer, queue, notifications, and Eloquent relations. (2) Symfony target on 3.4/4.4 — technically viable behind an adapter, but you inherit the SwiftMailer-to-Symfony-Mailer migration immediately.

Migration path: Treat it as a fork, not a package. Vendor the source into a private repository under an internal namespace, resolve the license, generate an SBOM, and wrap the public surface (service interfaces, entity repositories) behind your own domain interfaces so the bundle can be replaced later without touching call sites. Because the entities may be shared with Blast-style bundles, isolate them in a separate bounded context rather than importing them into the core domain. For Laravel, translate the Doctrine annotations into Eloquent models and relations; do not attempt to run Symfony's container beside Laravel's.

Compatibility: Check composer.json platform constraints against your PHP runtime and framework LTS. Audit every transitive package for PHP 8 compatibility and active maintenance. Replace the mail transport at the adapter boundary — no SwiftMailer types in application code. Add PHPStan and a test harness, since upstream tests are unlikely to be runnable.

Sequencing (time-boxed, gated):

  1. Legal review of the license — gate all further work on this. No code, no spike, until cleared.
  2. Dependency and security audit (composer audit, SBOM, abandoned-package scan) to size the transitive tree.
  3. Spike, 1–2 weeks, in an isolated Symfony service (or as a pure schema/domain exercise if the target is Laravel): wire one campaign, send through a sandbox transport, measure real coupling and missing features (bounce handling, unsubscribe, retention).
  4. Build-vs-buy-vs-borrow decision: compare spike output against a native implementation on Symfony Mailer/Notifier or Laravel Mail — realistically 2–4 weeks for the equivalent feature set, with full ownership and a clean license.
  5. If proceeding, fork, wrap, and document before writing product code.

Given 0 dependents and 1 star, plan for the spike to confirm that integration cost exceeds native build cost. Report that outcome either way — it is a reusable data point for future "should we adopt this OSS package" calls.

Operational Impact

Maintenance: You become the maintainer. There is no upstream to patch; every framework upgrade, security advisory, and mailer change is yours to absorb. Budget a standing allocation, not a one-time integration cost. The unresolved license also complicates contributing fixes upstream and any future relicensing.

Support: No community, no issue triage, no documented support contract by default. The only realistic route is a commercial arrangement with Libre Informatique directly — confirm the bundle is still maintained internally before assuming that option exists at all.

Scaling: Assume synchronous sending. Campaign fan-out needs a queue, per-provider rate limiting, and idempotent send records to survive retries. Recipients/campaigns/send-log tables grow without built-in archival, so plan partitioning or retention jobs for the send log and tracking tables from the start. Tracking pixels and link rewriting add their own scaling and privacy obligations.

Failure modes:

  • Silent send failures or duplicate sends on retry without idempotency keys.
  • Deliverability damage from missing bounce/complaint feedback loops and suppression-list handling.
  • PII exposure via unencrypted columns, verbose logs, or an unmaintained dependency with a known CVE.
  • Doctrine schema drift breaking migrations during framework upgrades.
  • Framework/PHP end-of-life blocking security patches — the bundle becomes the reason the host app cannot upgrade.

Ramp-up: Requires Symfony fluency plus reverse-engineering an undocumented bundle, and familiarity with Libre Informatique's CRM conventions if companion bundles are pulled in. Realistic estimate: 1–2 weeks for a competent Symfony engineer to reach a working spike, and considerably longer to reach production confidence with tests and documentation upstream never provided. On a Laravel team, add the cost of learning the Symfony bundle model for no durable payoff — a strong argument for building the equivalent natively or buying a supported CRM integration.

Portfolio takeaway for the TPM: this package's highest-value use is as a feature checklist and schema reference for a CRM-lite roadmap item, plus a framework-standardization data point (Symfony vs. Laravel dependencies). The decision it most directly supports is "build a thin internal module or buy a supported CRM/email platform" — not "adopt this." Close it as a dependency candidate; keep the domain notes.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast