tomatophp/filament-cms-github
Filament CMS GitHub integration for managing repository-backed content from your admin panel. Connect GitHub repositories, browse and edit files, and keep CMS content synced with version control without leaving Filament. Built for TomatoPHP Filament CMS workflows.
Architecture fit. This is a Filament admin-panel plugin that layers CMS capabilities (content types, entries, media, plus an opt-in GitHub content import action) onto an existing panel. It sits at the UI/back-office edge of the architecture rather than owning domain logic, which makes it a low-surface-area addition: it does not force a service boundary, queue topology, or data-ownership change in the host app. Fit is strong if we standardize admin on Filament v5; it is a poor fit if the admin surface is Nova, plain Blade, or Filament v3/v4, because adopting the plugin then implies a panel framework migration first.
Integration feasibility. The constraints are hard and externally imposed: Filament v5, Laravel 12/13, PHP 8.2+, and tomatophp/filament-cms ^5.0. These are peer locks, not preferences — Composer will enforce them at install time, so feasibility is really a question of whether our target app is already on that track. The release adds a tested install command, which improves first-run confidence, and the README now documents the allowContentImport() gate needed to surface the GitHub import action — a sign of maturing onboarding, not of hardening.
Technical risk.
filament-cms ^5.0, which in turn tracks Filament. That is a two-level major lock: every Filament major likely forces a filament-cms major and then a plugin major. We inherit their release cadence.allowContentImport() gates an action that writes external content into the CMS. Credential handling, scoping, rate limits, and provenance are unaddressed by the notes.Key questions.
allowContentImport() gate, what GitHub credentials does the import require, where are they stored, and is the import queued or synchronous?filament-cms tables — and who owns migration/rollback responsibility?Stack fit. Target is Laravel 12/13, PHP 8.3, Filament v5, Livewire/Tailwind as Filament requires, plus tomatophp/filament-cms ^5.0. If the admin roadmap is already Filament v5, this is a plugin registration and a panel config change. If not, the plugin is downstream of that decision and should not drive it.
Migration path. There is no prior assessment and no dependency inventory, so step zero is an audit: current Laravel, Filament, PHP, and whether filament-cms is already present. Three outcomes:
Compatibility. Four locks must align simultaneously: PHP (≥8.2, choose 8.3), Laravel (12/13), Filament (v5), filament-cms (^5.0). Composer enforces this, but the failure surfaces at install rather than design time, so validate on a spike branch before it enters a plan. Also verify Livewire and Vite/Tailwind build tooling against Filament v5's requirements — that is the usual hidden breakage.
Sequencing.
Maintenance. The real cost is a major-version treadmill coupled to Filament's cadence. Budget one planned upgrade window per Filament major, with filament-cms and this plugin moving together. Pin ^5.0 and avoid careting past the major; do not float dev branches to chase Laravel 13.
Support. Community/small-vendor support via GitHub issues, no SLA. A single maintainer is implied by the notes. Record bus factor and average issue response time in the dependency register before this becomes load-bearing for editors.
Scaling. Admin-panel traffic is low relative to the app, so the plugin is not a throughput concern. The scaling questions are elsewhere: GitHub API rate limits if import runs synchronously in a request, queue and storage capacity for large media sets, and query performance on entry listings if the content model is unindexed at volume. Confirm import is queued before enabling it broadly.
Failure modes.
allowContentImport() misconfigured in either direction — feature invisible when needed, or a broad-scoped token enabling an ungated write path into content.filament-cms-owned tables strand plugin data, since table ownership is unclear.Ramp-up. For developers already comfortable with Filament, this is a low-cost plugin: registration, install command, panel config, and a permissions/policy pass. The non-trivial work is editorial and operational — content modelling conventions, the import workflow, and permission boundaries — and needs a short internal runbook. Estimate roughly one sprint for a two-person team to spike, validate, document, and hand over; add a full cycle if the Filament v5 upgrade rides in the same window.
How can I help you explore Laravel packages today?