PHPackages                             kahusoftware/filament-ckeditor-field - 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. kahusoftware/filament-ckeditor-field

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

kahusoftware/filament-ckeditor-field
====================================

A basic CKEditor 5 form field configured with non-premium features.

v1.0.4(5mo ago)1513.1k—4.8%9[10 PRs](https://github.com/Kahu-Software-LLC/filament-ckeditor-field/pulls)MITBladePHP ^8.1CI passing

Since Sep 30Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/Kahu-Software-LLC/filament-ckeditor-field)[ Packagist](https://packagist.org/packages/kahusoftware/filament-ckeditor-field)[ Docs](https://github.com/kahu-software-llc/filament-ckeditor-field)[ RSS](/packages/kahusoftware-filament-ckeditor-field/feed)WikiDiscussions 1.x Synced 3d ago

READMEChangelog (10)Dependencies (8)Versions (28)Used By (0)

Filament CKEditor Field
=======================

[](#filament-ckeditor-field)

[![Latest Version on Packagist](https://camo.githubusercontent.com/1f7717b58c687b4c2e9de6c9fae0311e4b16ee2385081c2f8ecaaa1fb46ca44e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b616875736f6674776172652f66696c616d656e742d636b656469746f722d6669656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/kahusoftware/filament-ckeditor-field)[![GitHub Tests Action Status](https://camo.githubusercontent.com/ff060df3e7ef7fc6f44a96e7b08ab5a4170595ebe4dd6d0bf10864577490e3d5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6b6168752d736f6674776172652d6c6c632f66696c616d656e742d636b656469746f722d6669656c642f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/kahu-software-llc/filament-ckeditor-field/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/d972a683a5b6042d772453895a6e2818a3ac63a18508d2dea212e56ce614528c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6b616875736f6674776172652f66696c616d656e742d636b656469746f722d6669656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/kahusoftware/filament-ckeditor-field)[![License](https://camo.githubusercontent.com/c304ef6f0c04f361e9e00b041eb546e2fb8677ec991ae2a2b28542e4233bb7f9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6b616875736f6674776172652f66696c616d656e742d636b656469746f722d6669656c642e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)

> **Note:** This branch (`1.x`) is specifically for FilamentPHP 3.x. If you're using FilamentPHP 4.x, please use the [`2.x` branch](https://github.com/kahu-software-llc/filament-ckeditor-field/tree/2.x).

[![](https://camo.githubusercontent.com/e2f216affecd03b9baa89db07593414468b02198efaa45a6bbba2898a2ca0b17/68747470733a2f2f63646e2e6b616875736f6674776172652e636f6d2f75706c6f6164732f6b6168752d736f6674776172652d6c6c632d636b656469746f722d6669656c642e6a7067)](https://camo.githubusercontent.com/e2f216affecd03b9baa89db07593414468b02198efaa45a6bbba2898a2ca0b17/68747470733a2f2f63646e2e6b616875736f6674776172652e636f6d2f75706c6f6164732f6b6168752d736f6674776172652d6c6c632d636b656469746f722d6669656c642e6a7067)

Features
--------

[](#features)

- CKEditor 5 integration for FilamentPHP 3 forms
- Image upload support with configurable upload URLs
- Full control over image upload handling - you implement your own upload endpoint
- Highly customizable with fluent API
- Non-premium features only (free and open-source)
- Easy to configure and use

Table of contents
-----------------

[](#table-of-contents)

- [Filament CKEditor Field](#filament-ckeditor-field)
- [Features](#features)
- [Table of contents](#table-of-contents)
- [Installation](#installation)
- [Usage](#usage)
- [Configuration](#configuration)
    - [Available methods](#available-methods)
        - [uploadUrl(`string` | `Closure` | `null` $uploadUrl)](#uploadurlstring--closure--null-uploadurl)
        - [name(`string` $name)](#namestring-name)
        - [placeholder(`string` $placeholder)](#placeholderstring-placeholder)
- [Testing](#testing)
- [Changelog](#changelog)
- [Contributing](#contributing)
- [Security Vulnerabilities](#security-vulnerabilities)
- [Credits](#credits)
- [License](#license)

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

[](#installation)

You can install the field via composer:

```
composer require kahusoftware/filament-ckeditor-field
```

You can publish the config file with:

```
php artisan vendor:publish --tag="filament-ckeditor-field-config"
```

Usage
-----

[](#usage)

Basic usage:

```
use Kahusoftware\FilamentCkeditorField\CKEditor;

CKEditor::make('content')
    ->uploadUrl(null)
```

Configuration
-------------

[](#configuration)

This is the contents of the published config file:

```
return [
    /**
     * Image upload enabled
     */
    'upload_enabled' => true,

    /**
     * Image URL to upload to if one is not specified on the form field's ->uploadUrl() method
     */
    'upload_url' => null,
];
```

### Available methods

[](#available-methods)

#### uploadUrl(`string` | `Closure` | `null` $uploadUrl)

[](#uploadurlstring--closure--null-uploadurl)

Sets the URL endpoint for image uploads. If not specified, the default upload URL from the config file will be used.

`uploadUrl` (Default: `null`)

> **Note:** This field gives you freedom to handle image uploads yourself. You are responsible for creating your own upload endpoint that handles file validation, storage, and returns the appropriate response format. This design allows you to implement your own business logic, security measures, and storage solutions (local filesystem, S3, cloud storage, etc.).

This field uses CKEditor's [Custom Upload Adapter](https://ckeditor.com/docs/ckeditor5/latest/framework/deep-dive/upload-adapter.html), which requires your upload endpoint to return a JSON response containing the uploaded image URL(s).

**Expected Response Format:**

Your upload endpoint must return a JSON response with one of the following formats:

**Single image response:**

```
{
    "url": "https://example.com/uploads/image.jpg"
}
```

**Responsive images response:**

```
{
    "urls": {
        "default": "https://example.com/uploads/image.jpg",
        "500": "https://example.com/uploads/image1.jpg",
        "1000": "https://example.com/uploads/image2.jpg"
    }
}
```

**Example Laravel Controller:**

```
use Illuminate\Http\Request;

public function uploadImage(Request $request)
{
    $request->validate([
        'upload' => 'required|image|max:2048',
    ]);

    $path = $request->file('upload')->store('uploads', 'public');
    $url = asset('storage/' . $path);

    return response()->json([
        'url' => $url
    ]);
}
```

For more details, see the [CKEditor Custom Upload Adapter documentation](https://ckeditor.com/docs/ckeditor5/latest/framework/deep-dive/upload-adapter.html#passing-additional-data-to-the-response).

#### name(`string` $name)

[](#namestring-name)

Sets the name of the field. This will be used as the form field name.

`name` (Default: `'ckeditor'`)

#### placeholder(`string` $placeholder)

[](#placeholderstring-placeholder)

Sets the placeholder text displayed in the editor when it's empty.

`placeholder` (Default: `'Type or paste your content here...'`)

Testing
-------

[](#testing)

```
composer test
```

The test suite uses PestPHP and includes unit tests for field instantiation, method chaining, and configuration, as well as feature tests for rendering the field within Livewire components.

Changelog
---------

[](#changelog)

Please see [CHANGELOG](https://github.com/Kahu-Software-LLC/filament-ckeditor-field/blob/1.x/CHANGELOG.md) for more information on what has changed recently.

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

[](#contributing)

Please see [CONTRIBUTING](https://github.com/Kahu-Software-LLC/filament-ckeditor-field/blob/1.x/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please email  any security vulnerabilities to ensure they're promptly addressed.

Credits
-------

[](#credits)

- [Thomas Johnson](https://github.com/tominal)
- [All Contributors](https://github.com/Kahu-Software-LLC/filament-ckeditor-field/graphs/contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](https://github.com/Kahu-Software-LLC/filament-ckeditor-field/blob/1.x/LICENSE.md) for more information.

---

\* *This open-source plugin is not affiliated with, endorsed, or sponsored by CKSource, and any references to CKEditor are solely for descriptive purposes under their respective copyrights and trademarks.*

We do encourage you to check out CKEditor's premium features for your own implementation of CKEditor as the developers have worked hard to bring us a wonderful rich editor.

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance71

Regular maintenance activity

Popularity37

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95% 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 ~29 days

Recently: every ~13 days

Total

17

Last Release

169d ago

Major Versions

v0.0.7-alpha → v2.0.0-beta2025-11-13

v1.0.2 → v2.0.1-beta2025-11-24

PHP version history (2 changes)v0.0.1-alphaPHP ^8.1

v2.0.1-betaPHP ^8.2|^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8497308?v=4)[tom](/maintainers/tominal)[@tominal](https://github.com/tominal)

---

Top Contributors

[![tominal](https://avatars.githubusercontent.com/u/8497308?v=4)](https://github.com/tominal "tominal (151 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (8 commits)")

---

Tags

ckeditor5filamentphpfilamentphp-pluginhacktoberfestlaravelKahu-Software-LLCkahusoftwarefilament-ckeditor-field

###  Code Quality

TestsPest

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kahusoftware-filament-ckeditor-field/health.svg)

```
[![Health](https://phpackages.com/badges/kahusoftware-filament-ckeditor-field/health.svg)](https://phpackages.com/packages/kahusoftware-filament-ckeditor-field)
```

###  Alternatives

[codewithdennis/filament-select-tree

The multi-level select field enables you to make single selections from a predefined list of options that are organized into multiple levels or depths.

329530.5k29](/packages/codewithdennis-filament-select-tree)[awcodes/richer-editor

A collection of extensions and tools to enhance the Filament Rich Editor field.

3913.0k9](/packages/awcodes-richer-editor)[rawilk/filament-password-input

Enhanced password input component for filament.

52263.4k14](/packages/rawilk-filament-password-input)[schmeits/filament-character-counter

This is a Filament character counter TextField and Textarea form field for Filament v4 and v5

34226.4k13](/packages/schmeits-filament-character-counter)[biostate/filament-menu-builder

An Elegant Menu Builder for FilamentPHP

6528.1k2](/packages/biostate-filament-menu-builder)[codebar-ag/laravel-filament-json-field

A Laravel Filament JSON Field integration with CodeMirror support

1126.6k](/packages/codebar-ag-laravel-filament-json-field)

PHPackages © 2026

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