Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Uploadcare Field Laravel Package

backstage/filament-uploadcare-field

Integrates Uploadcare into Filament forms for Laravel apps. This package provides a ready-made form field that lets users upload, select, and manage Uploadcare files and images inside your admin panels, saving you from writing custom components and upload logic.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

The package is a Filament form field (FileUpload-style component) that delegates file storage and delivery to Uploadcare. Architecturally it sits in the presentation layer of a Laravel app: it extends Filament's Field API and persists a scalar (Uploadcare CDN URL or file UUID) onto an Eloquent model column. That is a clean, low-coupling fit for any Laravel + Filament admin panel that already treats uploads as a string column, and it removes the app server from the file-serving path entirely. It is a narrow, single-purpose component — it does not cover Uploadcare's groups, image transformations, signed/private files, webhook-driven processing, or non-Filament upload surfaces (public API, customer-facing forms, Livewire outside Filament). Any of those needs a separate integration.

Integration feasibility

Feasible in principle: Composer install, supply an Uploadcare public key (and secret, if signed uploads are supported), register the field in a Filament form schema. The real work is verification, not implementation. Because this repo is a [READ ONLY] subtree split of backstage/cms, the artifact we consume is generated, not authored — the composer.json, autoload mapping, and dependency constraints are produced by the split process and should be inspected directly rather than assumed. Confirm which Filament major version is supported, whether credentials come from config/env or are passed per-field, and what exactly lands in the model column.

Technical risk

  • Adoption risk is the dominant risk. 3 stars, 0 dependents, and an overall score of 0.215 mean the package is effectively unexercised in the wild. The 9.35 "opportunity" score indicates an under-served niche — attractive, but it also means we would be the de facto QA function.
  • Subtree-split governance. Issues and PRs against this repo are likely to be ignored or closed in favour of backstage/cms. We cannot patch upstream through this repo. Split history can also be regenerated/force-pushed, which is a supply-chain concern for VCS-based installs (dist installs are safer).
  • Single-vendor, single-maintainer. No visible test suite, no SLA, no security disclosure path in this artifact.
  • Filament version churn. Filament's v3→v4 transition has already broken third-party field packages broadly; this one has no evident maintenance depth to absorb it.
  • Third-party SaaS dependency. Uploadcare is a subprocessor: data residency, GDPR/DPA, retention, and per-file cost all become procurement questions, not engineering ones. Stored records become dangling if files are deleted or signed URLs expire.
  • Vendor lock-in at the data layer. If the column holds a raw Uploadcare CDN URL, migrating off means rewriting every stored value and re-hosting every asset.

Key questions

  1. Which Filament major(s) are supported, and is that constraint declared in the split's composer.json?
  2. What is the persisted state — URL, UUID, or a JSON blob? Does it survive an Uploadcare project migration?
  3. Are private/authenticated files (signed URLs) supported, or only public CDN files?
  4. Where do keys live — global config or per-field? Can we keep secrets out of the panel bundle?
  5. Does the field expose validation (MIME/type, max size, required) at the Filament layer, or is that delegated entirely to Uploadcare?
  6. Is there any test coverage, CI, or a changelog we can trust?
  7. Is Uploadcare already an approved vendor, or does this trigger a new DPA/security review?

Integration Approach

Stack fit

Best fit: an existing Laravel + Filament admin where the team already accepts Filament third-party fields. It slots into resource forms, custom pages, and Filament actions with no architectural change. It is a poor fit if uploads also need to happen outside Filament, if the app must own file bytes (compliance, on-prem, air-gapped), or if we already have a working S3-backed FileUpload — in that case the value is CDN delivery + transformations, which can be had without adopting an unproven field package.

Migration path

Treat this as additive, not substitutive. Do not retrofit it over existing FileUpload columns, because the persisted value format differs (CDN URL/UUID vs disk path) and every read site — accessors, API resources, image renderers, exports — would need to change in lockstep. The safe path: introduce it on one greenfield resource, keep existing uploads on the current disk, and only consider back-filling assets after a successful pilot. If adoption proceeds broadly, plan a data migration that copies bytes into Uploadcare and writes the new value shape, with a rollback that retains the original paths.

Compatibility

  • Pin the Filament major explicitly and re-verify on every Filament minor bump in CI.
  • Confirm PHP/Laravel constraints from the split's composer.json before estimating.
  • Check whether registration is via a PanelProvider plugin or a bare field class — this changes the upgrade surface.
  • Verify CSP posture: the Uploadcare widget loads remote JS; a strict script-src will silently break the field.
  • Confirm dist vs source installs in composer.lock so a split rewrite cannot alter our resolved artifact.

Sequencing

  1. Spike (1–2 days): install in a scratch branch, wire one field, confirm key handling and stored value shape.
  2. Risk gate: security/procurement review of Uploadcare as a subprocessor; confirm DPA and retention.
  3. Pilot: one low-traffic, greenfield resource in a non-critical panel; capture bundle-size and admin-page-load impact.
  4. Head-to-head: evaluate against native FileUpload + S3 + a CDN in front. If the only differentiator is the Uploadcare widget, prefer the native path.
  5. Decide: adopt as-is, fork under our namespace behind a thin adapter, or drop. Do not leave it in a half-adopted state across multiple resources.

Operational Impact

Maintenance

Ongoing maintenance cost is likely to be ours, not upstream's. With 0 dependents and a read-only split, assume no timely fixes. The pragmatic posture if we adopt: wrap the field in a first-party adapter class (or fork into our own namespace) so the package is swappable in one file, and budget explicitly for a Filament v4 migration and for Uploadcare API/widget deprecations. Vendor the dist artifact rather than tracking a VCS branch.

Support

Community-only, single maintainer, no SLA, no documented escalation. Uploadcare support is a separate contract and will not help with the Filament component. Internally, we need a named owner — this package is small enough to become orphaned knowledge in a sprint or two.

Scaling

Uploads and delivery scale well by construction: bytes never touch our app servers, and the CDN handles read traffic. Cost scales with Uploadcare plan tiers (bandwidth + transformations), so growth is a finance conversation rather than an infrastructure one. The app-side cost is per-render: the widget JS loads on every form page containing the field, which is measurable on slow admin connections and worth capturing in the pilot. Eloquent-side load is negligible (one string column).

Failure modes

  • Uploadcare outage → admin uploads fail; forms may render but cannot submit successfully.
  • Widget blocked by CSP/adblocker → field renders empty and upload silently fails; needs a visible error state, which we should not assume exists.
  • Missing/invalid public key → render-time exception on the whole panel page.
  • File deleted or expired upstream → stored records reference dead URLs; broken images in listings and exports. No referential integrity exists between our DB and Uploadcare.
  • Signed-URL expiry (if supported) → previously-working links rot without any code change.
  • Filament minor upgrade → field class breaks, panel-wide form rendering fails.
  • Split-history rewrite → VCS-based installs break on composer update; dist installs are insulated.

Mitigations worth building ourselves: a health check that asserts the key is configured, an <img>/link fallback for dead assets, and a documented "remove the package" runbook.

Ramp-up

Low for anyone fluent in Filament custom fields — the component itself is an afternoon. The steeper curve is Uploadcare's model (groups, transformations, signed uploads, webhooks, retention), which is where the real design decisions live. Two knowledge silos to avoid: (1) one developer being the only person who has wired a Filament custom field, and (2) one developer being the only person who understands our Uploadcare project config. Given the package's immaturity, the honest ramp-up estimate for safe adoption — including vendor review, pilot, and fallback design — is closer to one to two weeks of part-time effort than the one-day install implies.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource