PHPackages                             lemonsqueezy/plain-ui-components - 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. lemonsqueezy/plain-ui-components

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

lemonsqueezy/plain-ui-components
================================

Plain UI Components for Laravel

v0.7.0(9mo ago)24325.1k↓84.1%8[1 PRs](https://github.com/lmsqueezy/plain-ui-components/pulls)MITPHPPHP ~8.1.0|~8.2.0|~8.3.0|~8.4.0CI passing

Since May 11Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/lmsqueezy/plain-ui-components)[ Packagist](https://packagist.org/packages/lemonsqueezy/plain-ui-components)[ Docs](https://docs.plain.com/adding-context/customer-cards)[ RSS](/packages/lemonsqueezy-plain-ui-components/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (8)Dependencies (6)Versions (9)Used By (0)

Plain UI Components
===================

[](#plain-ui-components)

 [![Build Status](https://github.com/lmsqueezy/plain-ui-components/actions/workflows/tests.yml/badge.svg)](https://github.com/lmsqueezy/plain-ui-components/actions) [![Total Downloads](https://camo.githubusercontent.com/bc48b9d8bb5f9db75340af2e6a3a3ba449fa407ddc8e4e3e8910e5280c70cbf8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c656d6f6e73717565657a792f706c61696e2d75692d636f6d706f6e656e7473)](https://packagist.org/packages/lemonsqueezy/plain-ui-components) [![Latest Stable Version](https://camo.githubusercontent.com/8507d2290e535e26b1ba9181ecc67886f04f23ed4bc051e97d9905a5b5066795/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c656d6f6e73717565657a792f706c61696e2d75692d636f6d706f6e656e7473)](https://packagist.org/packages/lemonsqueezy/plain-ui-components) [![License](https://camo.githubusercontent.com/dd7d97a4a1964e7128c18eef9fd89d10f8259438754ed708543cf7ad0c72909d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c656d6f6e73717565657a792f706c61696e2d75692d636f6d706f6e656e7473)](https://packagist.org/packages/lemonsqueezy/plain-ui-components)

A Laravel-based library to easily build [Plain UI component](https://docs.plain.com/adding-context/ui-components) cards.

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- Laravel 8.83 or higher

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

[](#installation)

Install the package with composer:

```
composer require lemonsqueezy/plain-ui-components
```

Usage
-----

[](#usage)

```
/**
 * An Plain Customer Card endpoint
 *
 * @link https://docs.plain.com/adding-context/customer-cards
 */
public function customerCards(Request $request)
{
    abort_unless($email = $request->input('customer.email'), 400, 'No email provided.');

    $user = User::where('email', $email)->firstOrFail();

    return Cards::make()
        // Adding a card directly is easy, but the data is not guaranteed to be used by Plain.
        ->add(Card::make('platform-details')->add(Text::make('Platform Version: '.config('app.version')))

        // As an alternative, you can therefore use a binding, which lazily resolves
        // only when the request asks for that card, making it way more efficient.
        ->bind('user-details', fn (Card $card) => $this->buildUserDetailsCard($card, $user))

        // Finally, we'll render the cards payload using the JSON Request made by Plain.
        ->toArray($request);
}
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

This way, we can safely discuss and resolve the issue (within a reasonable timeframe), without exposing users to the unnecessary additional risk. Once the issue is fixed and a new version is released, we'll make sure to credit you for your contribution (unless you wish to remain anonymous).

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance56

Moderate activity, may be stable

Popularity44

Moderate usage in the ecosystem

Community18

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 53.3% 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 ~129 days

Recently: every ~84 days

Total

8

Last Release

292d ago

PHP version history (3 changes)v0.1.0PHP ~8.1.0|~8.2.0

v0.1.1PHP ~8.1.0|~8.2.0|~8.3.0

v0.4.0PHP ~8.1.0|~8.2.0|~8.3.0|~8.4.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/83b54b11203100de300a7750f14ad6deed6dc364ba6854d1e992b4c65f4db846?d=identicon)[claudiodekker](/maintainers/claudiodekker)

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

---

Top Contributors

[![claudiodekker](https://avatars.githubusercontent.com/u/1752195?v=4)](https://github.com/claudiodekker "claudiodekker (8 commits)")[![jbrooksuk](https://avatars.githubusercontent.com/u/246103?v=4)](https://github.com/jbrooksuk "jbrooksuk (2 commits)")[![nunomaduro](https://avatars.githubusercontent.com/u/5457236?v=4)](https://github.com/nunomaduro "nunomaduro (2 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (1 commits)")[![lepikhinb](https://avatars.githubusercontent.com/u/17538801?v=4)](https://github.com/lepikhinb "lepikhinb (1 commits)")[![mathiasgrimm](https://avatars.githubusercontent.com/u/450069?v=4)](https://github.com/mathiasgrimm "mathiasgrimm (1 commits)")

---

Tags

customer-cardslaravelplain-supportui-components

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/lemonsqueezy-plain-ui-components/health.svg)

```
[![Health](https://phpackages.com/badges/lemonsqueezy-plain-ui-components/health.svg)](https://phpackages.com/packages/lemonsqueezy-plain-ui-components)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[spatie/laravel-export

Create a static site bundle from a Laravel app

679153.2k7](/packages/spatie-laravel-export)[api-platform/laravel

API Platform support for Laravel

58190.1k21](/packages/api-platform-laravel)[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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