PHPackages                             decodelabs/zest - 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. decodelabs/zest

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

decodelabs/zest
===============

Vite front end dev environment integration

v0.9.5(1mo ago)21.9kMITPHPPHP ^8.4CI passing

Since Nov 26Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/decodelabs/zest)[ Packagist](https://packagist.org/packages/decodelabs/zest)[ RSS](/packages/decodelabs-zest/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (10)Dependencies (35)Versions (62)Used By (0)

Zest
====

[](#zest)

[![PHP from Packagist](https://camo.githubusercontent.com/b557bb006140c5f979d982c50a5b74fdec0be890825021c48c1aa0dad4732fd3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6465636f64656c6162732f7a6573743f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/zest)[![Latest Version](https://camo.githubusercontent.com/36e1f62f3c9033f123ad94badcb48cb008661197e57ae8edb93297766b693d28/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6465636f64656c6162732f7a6573742e7376673f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/zest)[![Total Downloads](https://camo.githubusercontent.com/c912a5f98f9ceec74ccb5f6e6be173479fef1118c6efdfd085c2ee4444ecbe1b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6465636f64656c6162732f7a6573742e7376673f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/zest)[![GitHub Workflow Status](https://camo.githubusercontent.com/8464b2908ea9ad93d8c3d6990e295c85aeb2d1e2c39f8e309e132f60ef2861b4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6465636f64656c6162732f7a6573742f696e746567726174652e796d6c3f6272616e63683d646576656c6f70)](https://github.com/decodelabs/zest/actions/workflows/integrate.yml)[![PHPStan](https://camo.githubusercontent.com/e25c14ce011edabdd0fbd2e10415b41cc5d66ed11ef3e5b7edd074c5bdd35a2d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d656e61626c65642d3434434331312e7376673f6c6f6e6743616368653d74727565267374796c653d666c6174)](https://github.com/phpstan/phpstan)[![License](https://camo.githubusercontent.com/96b8398c853bb1becbf2993c39cf47644c8183ee3653c92a87255e8b8625d81b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6465636f64656c6162732f7a6573743f7374796c653d666c6174)](https://packagist.org/packages/decodelabs/zest)

### Vite front end dev environment integration

[](#vite-front-end-dev-environment-integration)

Zest provides a simplified and opinionated PHP oriented entry point to the Vite development environment.

---

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

[](#installation)

This package requires PHP 8.4 or higher.

Install via Composer:

```
composer require decodelabs/zest
```

Usage
-----

[](#usage)

Zest aims to provide a simple automated way to integrate the [Vite](https://vitejs.dev/) dev server into your PHP application.

All terminal commands assume you have [Effigy](https://github.com/decodelabs/effigy) installed and working.

```
cd my-project
effigy zest init
```

This command will initialise a Vite config file, install everything you initially need in a package.json file and run the dev server. `ctrl+c` to quit the server.

From then on:

```
# Run the dev server
effigy zest dev

# Or build the static files
effigy zest build
```

Build will trigger automatically when the dev server is closed.

### Existing projects

[](#existing-projects)

If installing in an existing vite project, make sure to install the Zest plugin:

```
npm install -D @decodelabs/vite-plugin-zest
```

Then add it to your Vite config:

```
import zest from '@decodelabs/vite-plugin-zest'
import { defineConfig } from 'vite'

export default defineConfig({
    plugins: [
        zest({
            buildOnExit: true
        })
    ],
})
```

### View consumption

[](#view-consumption)

To make use of Zest, you will need to consume the generated assets from the manifest in your views. As it stands, there are no pre-built view adapters (there are many different view libraries out there!!), however you can adapt the one you use like this:

```
use DecodeLabs\Monarch;
use DecodeLabs\Zest\Manifest;

class ViewPlugin {

    public function apply(View $view): void {
        $manifest = Manifest::load(
            Monarch::getPaths()->root . '/my-theme/manifest.json'
        );

        foreach ($manifest->getCssData() as $file => $attr) {
            /**
             * @var string $file - path to file
             * @var array $attr - array of tag attributes
             */
            $view->addCss($file, $attr);
        }

        foreach ($manifest->getHeadJsData() as $file => $attr) {
            $view->addHeadJs($file, $attr);
        }

        foreach ($manifest->getBodyJsData() as $file => $attr) {
            $view->addFootJs($file, $attr);
        }

        if ($manifest->isHot()) {
            $view->addBodyClass('zest-dev preload');
        }
    }
}
```

Licensing
---------

[](#licensing)

Zest is licensed under the MIT License. See [LICENSE](./LICENSE) for the full license text.

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance98

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~20 days

Recently: every ~53 days

Total

60

Last Release

44d ago

PHP version history (3 changes)v0.1.0PHP ^8.0

v0.2.9PHP ^8.1

v0.2.21PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/8a241d64d12b3b5ee94197862ec1ec30b82ed2efa34a0cd7f4c3565a021daddd?d=identicon)[betterthanclay](/maintainers/betterthanclay)

---

Top Contributors

[![betterthanclay](https://avatars.githubusercontent.com/u/1273586?v=4)](https://github.com/betterthanclay "betterthanclay (235 commits)")

---

Tags

front-endphpvitevitefrontend

### Embed Badge

![Health badge](/badges/decodelabs-zest/health.svg)

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

###  Alternatives

[mexitek/phpcolors

A series of methods that let you manipulate colors. Just incase you ever need different shades of one color on the fly.

5003.6M18](/packages/mexitek-phpcolors)[pentatrion/vite-bundle

Vite integration for your Symfony app

2725.3M13](/packages/pentatrion-vite-bundle)[aimeos/ai-controller-frontend

Aimeos business controller logic for frontend

966339.3k11](/packages/aimeos-ai-controller-frontend)[nystudio107/craft-vite

Allows the use of the Vite.js next generation frontend tooling with Craft CMS

55301.5k31](/packages/nystudio107-craft-vite)[arnoson/kirby-vite

Vite helper for Kirby CMS

9759.2k3](/packages/arnoson-kirby-vite)[nystudio107/craft-plugin-vite

Plugin Vite is the conduit between Craft CMS plugins and Vite, with manifest.json &amp; HMR support

13943.2k48](/packages/nystudio107-craft-plugin-vite)

PHPackages © 2026

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