PHPackages                             congraph/contracts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. congraph/contracts

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

congraph/contracts
==================

Interfaces for Congraph CMS

v2.0.3(1mo ago)12516MITPHPPHP ^8.3 || ^8.4 || ^8.5

Since Mar 7Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/congraphcms/contracts)[ Packagist](https://packagist.org/packages/congraph/contracts)[ RSS](/packages/congraph-contracts/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (2)Dependencies (2)Versions (9)Used By (6)

congraph/contracts
==================

[](#congraphcontracts)

`congraph/contracts` contains the shared PHP interfaces used across the Congraph package ecosystem.

What this package provides
--------------------------

[](#what-this-package-provides)

- repository contracts
- command/validation contracts
- cross-package interfaces that let packages depend on abstractions instead of concrete implementations

This package has no database schema, no Laravel service provider, and no runtime behavior by itself.

When to use it
--------------

[](#when-to-use-it)

Use this package when:

- a package needs to type-hint another package's repository or service
- you are adding a new reusable abstraction to Congraph
- you want to decouple command handlers, validators, or services from implementation details

Installation
------------

[](#installation)

```
composer require congraph/contracts
```

Package structure
-----------------

[](#package-structure)

Most interfaces live under namespaces like:

- `Congraph\Contracts\Core`
- `Congraph\Contracts\Eav`
- `Congraph\Contracts\Filesystem`
- `Congraph\Contracts\Locales`
- `Congraph\Contracts\Workflows`

Development
-----------

[](#development)

This package is intentionally small. Changes here ripple into the rest of the monorepo.

When editing contracts:

1. update the interface
2. verify all implementations in other packages still match
3. run the dependent package test suites

Testing
-------

[](#testing)

This package does not currently ship its own PHPUnit suite. Validation happens through the dependent packages.

From the monorepo root:

```
composer test
```

Contribution notes
------------------

[](#contribution-notes)

- keep interfaces minimal
- avoid framework-specific details in contracts
- prefer additive changes over breaking signature changes
- if a signature must change, update all implementing packages in the same branch

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance93

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 57.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~739 days

Total

5

Last Release

35d ago

Major Versions

v1.1.0 → v2.0.02026-04-11

PHP version history (4 changes)v1.0betaPHP &gt;=5.4.0

v1.0.0PHP ^8.1.0

v1.1.0PHP ^8.2.0

v2.0.0PHP ^8.3 || ^8.4 || ^8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/abed9bab73157b9b9d1f4a8f0ca61e49020d7fa643223364f2067586e759f8d9?d=identicon)[nikolaplavsic](/maintainers/nikolaplavsic)

---

Top Contributors

[![nikolaplavsic](https://avatars.githubusercontent.com/u/3585404?v=4)](https://github.com/nikolaplavsic "nikolaplavsic (4 commits)")[![veljamatic](https://avatars.githubusercontent.com/u/1091355?v=4)](https://github.com/veljamatic "veljamatic (3 commits)")

### Embed Badge

![Health badge](/badges/congraph-contracts/health.svg)

```
[![Health](https://phpackages.com/badges/congraph-contracts/health.svg)](https://phpackages.com/packages/congraph-contracts)
```

###  Alternatives

[guava/calendar

Adds support for vkurko/calendar to Filament PHP.

298241.0k3](/packages/guava-calendar)[tonysm/rich-text-laravel

Integrates Trix content with Laravel

46577.8k1](/packages/tonysm-rich-text-laravel)[mauricius/laravel-htmx

Laravel helper library for Htmx

364101.1k1](/packages/mauricius-laravel-htmx)[illuminate/reflection

The Illuminate Reflection package.

361.6M3](/packages/illuminate-reflection)[ralphjsmit/laravel-helpers

A package containing handy helpers for your Laravel-application.

13704.6k2](/packages/ralphjsmit-laravel-helpers)[spatie/laravel-screenshot

Take screenshots of web pages in Laravel apps

7615.9k2](/packages/spatie-laravel-screenshot)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
