jeffersongoncalves/filament-ace-editor-field
A Laravel Filament v4 field that brings the Ace code editor into your forms, with syntax highlighting plus configurable modes, themes, height, and placeholders for a rich code editing experience.
Architecture fit: Unchanged. Purpose-built Filament form field extending Filament\Forms\Components\Field, so it fits naturally into existing Filament form schemas and Livewire state flow. Best fit is an internal admin panel already on Filament v5 that needs syntax-highlighted editing for HTML, JSON, CSS, PHP, or Markdown snippets. It is not a general-purpose editor, not portable to Nova/Inertia/non-Filament stacks, and does not provide linting, collaboration, IntelliSense, or Git integration. 2.1.0 is a maintenance release with no architectural or public-API change, so the fit assessment stands.
Integration feasibility: Still low lift — composer require, publish config, swap a Textarea for AceEditorInput::make(...) with mode(), theme(), and sizing options. No database migration; the field stores plain text. Pilot remains roughly 0.5–1 engineering day. Two 2.1.0 specifics to add to the pilot checklist: republish the config to pick up the new Ace CDN default (1.32.7 → 1.44.0), and re-check any height() usage, since the README now correctly documents that it requires a CSS unit ('200px', not 200). Teams that copied the previous example may have a latent sizing bug that only surfaces on republish or upgrade.
Technical risk:
^5.3; 1.x → ^4.8), so treat Composer as source of truth and pin an exact version. Confirm the target panel meets ^5.3, not merely "v5".base_url moved to Ace 1.44.0. Still an availability, latency, CSP, and air-gapped-environment risk, and now also a change-management item: the effective editor version silently shifts on config republish.ace-builds and npm-run-all2 removed — relevant only if the team forks or patches, in which case local build instructions must be re-learned.Key questions:
^5.3?height() calls omit a CSS unit, and would upgrading expose a layout regression?Stack fit: Fits Laravel + Filament v5 + Livewire/Alpine applications. The field maps to standard string/text/mediumtext columns and preserves Filament validation rules such as required(). Dark-mode support and editor options align with Filament panel theming, but should be visually tested against the existing panel design. 2.1.0's CI matrix is direct evidence for Laravel 11/12/13 and PHP 8.4 on the framework side; it says nothing about your panel's theme or plugin set, so visual QA is still required.
Migration path: No data migration. Replace existing Textarea or TextInput components field-by-field, keeping the same field name and database column. Introduce behind a per-form feature flag or config toggle so rollback is a component swap, not a data operation. Existing content stays plain text and remains readable if the package is removed. For teams already on 2.0.x, treat the 2.1.0 upgrade as a config-touching upgrade: publish/compare config, confirm the Ace version you intend to serve, and re-verify height() values.
Compatibility: Use 2.x for Filament ^5.3 and PHP 8.2+; 2.1.0 formally exercises PHP 8.2/8.3/8.4 against Laravel 11/12/13. Use 1.x for Filament ^4.8. Laravel 13 support was noted earlier in the 1.0.4 changelog and is now validated in CI for the 2.x line. Pin an exact or minor version and avoid unplanned major upgrades.
Sequencing:
height() with an explicit unit.Maintenance: Small code surface and MIT licensing keep maintenance low, and 2.1.0 improves the maintenance posture: automated tests, a version CI matrix, hardened changelog automation, and Dependabot with Filament majors held back per branch plus a cooldown window. The team still owns dependency monitoring; track package releases, Filament compatibility changes, the Ace CDN default and its availability, and upstream Ace maintenance. Because the license permits forking, keep a contingency plan to vendor the field or replace it — note that forking now implies a bun-based build.
Support: Still no commercial SLA and very low adoption, i.e. community/single-maintainer support. Treat it as an internal-tool dependency with an internal owner, runbook, and escalation path. The 2.1.0 hardening measurably reduces (but does not eliminate) the "quietly abandoned" scenario; it does not create a support contract. Do not place it on a critical customer-facing path without a funded support decision.
Scaling: Server-side impact is minimal because editing is client-side. Risk is concentrated in browser performance and CDN latency. Ace's client bundle is non-trivial, and multiple simultaneous editors per page can degrade load time. Limit editor instances per form, prefer lazy loading where possible, and test on low-bandwidth and mobile devices. The 1.44.0 default may differ in bundle size from 1.32.7 — re-baseline load timings during the pilot rather than assuming parity.
Failure modes:
height() without a CSS unit → unexpected editor sizing.Mitigations include a Textarea fallback, self-hosted Ace assets where policy requires it, explicit validation/sanitization, visual regression checks, pinned versions with a tested upgrade cadence, and a config diff step in the upgrade checklist.
Ramp-up: Engineering ramp-up is short: under one day for a developer familiar with Filament. Add QA, security review, and documentation for content editors. The main organizational effort is not coding but deciding trust boundaries, CDN policy, and long-term editor strategy. 2.1.0 is a low-risk, no-API-change upgrade that strengthens the compatibility and maintenance case; use the package as a low-cost, reversible productivity experiment for internal admin workflows, with adoption still gated on version compatibility, CSP decision, and security review.
How can I help you explore Laravel packages today?