open-kampus/filament-ace-editor
Ace Editor field for Filament forms, adding a full-featured code editor with syntax highlighting and themes to your admin panels. Edit JSON, HTML, CSS, PHP and more directly in Filament resources, with configurable editor options and a simple, drop-in form component.
Package: open-kampus/filament-ace-editor — a Filament form-field component that embeds the Ace code editor for editing code/JSON/markdown-style content inside admin panels.
Architecture fit. Narrow, single-purpose UI package with a very small server-side surface: a Filament form component class, a Blade view, and client-side Ace assets. It does not introduce services, queues, persistence layers, or middleware, so it sits cleanly alongside existing Filament panel architecture without shaping it. Fit is strong if we already run Filament; near-zero value if we do not.
Integration feasibility. Low effort. Typical path is composer require, optional asset/config publish, then use the field inside a form schema. The 1.1.2 change ("Laravel 12 support") is a compatibility broadening, almost certainly a widening of illuminate/* / laravel/framework constraints in composer.json rather than functional change — it unblocks adoption on Laravel 12 rather than adding capability. This removes what was previously the single biggest adoption blocker for teams already on Laravel 12.
Technical risk. Low-to-moderate, concentrated in three areas:
wire:model hydration. This is the most likely source of real defects.Key questions.
composer.json between 1.1.1 and 1.1.2 — was anything widened beyond Laravel 12?wire:model (deferred vs. live) and validation error display correctly?Stack fit. Requires Laravel + Filament + Livewire. Laravel 12 support in 1.1.2 means it now aligns with a current-generation stack; no architectural compromise is needed to adopt it.
Migration path. Greenfield within an existing Filament panel — there is no data migration, no schema change, and no backfill. Content is stored as a normal text/long-text column, so the field is swappable: replacing it later with a plain Textarea or a different editor leaves data intact. That reversibility is the main reason to accept the dependency.
Compatibility. Three-way constraint triangle to verify before committing: Laravel version × Filament major × this package. Laravel 12 support is only meaningful if the Filament major we run is also supported at that combination. Pin to ^1.1.2 explicitly rather than a loose * or caret on an older minor, so that a future patch cannot silently widen constraints beneath us. Check composer why-not / composer update --dry-run output in a scratch branch first.
Sequencing.
Maintenance. Very low carrying cost in code, but non-zero in dependency management: we inherit a third-party UI dependency pinned to Filament's release cadence. Budget a small recurring check each Filament major release — compatibility is maintained by a single small organisation, so expect to be the one filing issues during Filament upgrades. No server-side operations, no scheduled jobs, no infrastructure.
Support. Community/GitHub-issues only; no commercial SLA. Acceptable for an internal admin tool where a broken field degrades one screen, not customer-facing flows. Not acceptable for anything on a critical path. We should record an internal fallback (plain textarea) as the documented escape hatch.
Scaling. Effectively free server-side — the component renders a form field and nothing more. Cost is entirely client-side: bundle size and editor initialisation time per page view. Confirm the Ace bundle is only loaded on pages that use the field (lazy/conditional asset loading), otherwise we pay the payload cost across the whole admin panel. Large code blobs increase request payload on save; set a column size and a validation max to keep rows bounded.
Failure modes.
composer update pulls an untested Filament/Laravel pairing; pinning plus a lockfile review step mitigates.Ramp-up. Hours, not days. One engineer can integrate, document, and hand over. The only real learning is Filament form-schema conventions, which the team presumably already has. Recommend a short internal note covering how to render stored content safely and which column types to use.
How can I help you explore Laravel packages today?