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 Import Wizard Laravel Package

waad/filament-import-wizard

Queue-powered 4-step CSV and Excel import wizard for Filament with smart column mapping, relationship linking, Spatie Translatable and locale merge support, dynamic schema validation, upsert, and live progress tracking for 100K+ row imports.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for a non-differentiating capability. Import is table stakes for any B2B product that onboards customer data, but it rarely wins deals on its own. This package converts a typical 2–4 sprint "CSV upload, mapping UI, validation, chunked processing, error handling" build into roughly a week of integration and QA — a strong case for not spending core-team capacity on it.
  • Roadmap sequencing for onboarding and activation. If "time to first value" or "data migration from spreadsheets/legacy vendor" is a bottleneck in your activation funnel, this ships the enabling feature early: upload → map → review → import, with error download so failed rows don't become support tickets.
  • Enterprise and mid-market deal unblockers. The 100K+ row, queue-powered path plus upsert ("match & merge") means a customer's re-import refresh doesn't create duplicates. That is the difference between a one-time migration script and a repeatable, self-serve data onboarding story you can put in a sales playbook.
  • Scope decisions inside the import feature. The package already covers relationship linking (BelongsTo), translatable/locale-merge columns, schema-derived validation, multi-tenancy scoping across queue boundaries, and a standalone Livewire mode. That lets you decide feature-by-feature what's in v1 rather than committing to a monolith: e.g. ship admin import first, defer customer-facing import.
  • Support-cost and services economics. Self-serve import with downloadable error logs reduces "please load this file for me" ops work and paid onboarding hours; the validation-on-schema defaults set a defensible error standard without product design work.
  • Localization strategy validation. Spatie Translatable detection plus locale merge (title_en/title_ar → JSON) is a cheap way to test international data onboarding before investing in a first-class i18n data model.

When to Consider This Package

Adopt when:

  • Your stack is Filament 4.x/5.x on Laravel 10+ / PHP 8.2+, and the import surface is inside an admin panel (internal ops or tenant admins) rather than your public product.
  • Your import shape is a flat file into one model with BelongsTo lookups — the exact happy path the README optimizes for.
  • You need large-file resilience and background processing more than transformation logic: chunked queue jobs, live progress, Eloquent events/observers firing on insert, configurable chunk size and queue.
  • You need upsert-by-natural-key, translatable columns, or tenant scoping, and would otherwise build all three.
  • You're comfortable owning a fork: MIT license, small surface area, and extension points (getImportRules(), getImportFieldLabel()) rather than config sprawl.

Look elsewhere or build when:

  • You need HasMany, ManyToMany, polymorphic relations, multi-sheet workbook semantics, or cross-model orchestration — this is single-model, BelongsTo-shaped.
  • You need real ETL: computed/derived columns, transformation DSL, scheduled sync from an external system, or a mapping template library that survives schema changes.
  • The import path is revenue-critical and requires vendor-level guarantees (SLAs, security review, disclosure policy). At 12 stars, 0 dependents, and a v1.x line with thin release notes, there is no community proof and effectively a single maintainer — treat it as a high-quality head start, not a dependency you can outsource risk to.
  • You require auditing, per-field permissions, approval workflows, or row-level import governance; and check whether the queue path respects your existing policy layer.
  • You're not on Filament, or you're mid-migration between Filament majors — pin the version and confirm upgrade cadence before design depends on it.
  • Volume means streaming ingest (millions of rows) or non-file sources (API, SFTP feeds) — chunked queue jobs on web uploads won't be the right shape.

How to Pitch It (Stakeholders)

Executives: "We can ship data import — the feature that gates onboarding for most of our larger accounts — in about a week instead of a quarter. It's MIT-licensed, so no vendor cost, and it's isolated to one admin screen, so the downside if it doesn't fit is a week, not a roadmap. It directly targets time-to-first-value and removes a recurring services ask." Lead with the outcome (faster activation, fewer manual migrations, re-imports without duplicates), not the library. Be explicit about risk: a young, single-maintainer package — mitigate by pinning the version, wrapping it behind our own action/service boundary, and budgeting for a fork rather than waiting on upstream.

Engineering: "This is a working implementation of the parts of import that are tedious and easy to get subtly wrong: snake_case auto-mapping, FK resolution for relations, schema-derived validation rules, chunked queue execution with progress, upsert with fallback, and — importantly — individual save() so model events, observers and timestamps still fire instead of silent bulk inserts. It's one action in a Filament resource, extends via two model methods, and is config-driven for queue connection and chunk size. Proposal: a 3–5 day spike behind an adapter so no product code imports the package namespace directly; add contract tests around mapping, relation resolution and upsert; fork and pin if we hit gaps." Name the known limits up front — BelongsTo only, no transformation layer — so scope doesn't drift into "make it do ETL."

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.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin