civicrm/civicrm-core
CiviCRM is open-source CRM software for nonprofits, NGOs, and civic organizations. The core package manages contacts, contributions, memberships, events, cases, campaigns, and reporting, integrates with Drupal, WordPress, and Joomla, and supports extensive customization.
Architecture fit
civicrm/civicrm-core is not a Laravel package and should not be scoped as one in a roadmap. There is no ServiceProvider, no facade, no publishable config, no container bindings. It ships its own bootstrap (CRM_Core_Config), DAO layer (CRM_Core_DAO), entity metadata, ACL system, and API layers (APIv3 legacy, APIv4 current).Integration feasibility
/civicrm/ajax/api4/{Entity}/{action}), plus webhooks/civicrm_post hooks and the cv CLI for provisioning and scripted ops.composer require civicrm/civicrm-core inside a Laravel app is unsupported — the repo's composer.json serves its own dev/CI tooling. A "successful" install still needs civicrm.settings.php, filesystem paths, a CMS host, and a database installer run. Correcting this premise is the single highest-value thing a TPM can do before estimation.authx extension for JWT/OAuth-style flows. It determines whether the Laravel client is a service account or a per-user delegated model — a security and audit decision.lab.civicrm.org); GitHub is effectively a mirror. Adoption must be validated through the extension ecosystem and community channels, not repo metrics.Technical risk
ang/, Karma specs, lodash avoidance, esversion: 11). Any UI-adjacent customisation has a defined obsolescence horizon.crmApi/APIv3. That implies a long, uneven tail we would be operating through — budget for it rather than assume a clean contract.cv and needs an installed site on PATH; PHPUnit needs a provisioned database. Pipelines are slow and onboarding is non-trivial.Key questions
Stack fit
CrmClient adapter interface in Laravel with a CiviCRM implementation behind it. This is the only real hedge against AGPL and upgrade risk, and it lets tests stub the CRM instead of provisioning one.civicrm_-prefixed schema with views, triggers and its own migration cadence. Cross-system SQL reads are a latent outage, not a shortcut.civicrm_post require a small in-CMS extension we own — scope it as a first-class deliverable with its own maintenance line, not a script.Migration path
authx tokens; validate the API surface for the top 5 entities; confirm PHP version parity. Go/no-go on data-model fit, extension cost vs. build cost, and AGPL compatibility.external_identifier convention and map to contact_id.Compatibility
Sequencing
Maintenance
cv, verify the API surface we depend on.Support
job.execute, mail queue, payment processor reconciliation, dedupe rule tuning.Scaling
Failure modes
Ramp-up
cv, the extension scaffold and civicrm.settings.php.lab.civicrm.org) as the real home of issues and discussion; GitHub familiarity is misleading.How can I help you explore Laravel packages today?