Weave Code
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 Survey Laravel Package

tapp/filament-survey

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Filament-Centric Design: The package is a Filament plugin, meaning it extends the admin panel with survey management resources (Surveys, Questions, Entries, Answers). This is ideal for internal tools, B2B SaaS admin panels, or market research dashboards where backend management is prioritized over frontend forms.
  • Laravel Survey Backend: Leverages matt-daneshvar/laravel-survey (with Tapp’s translatable/sortable fork), providing a structured survey engine for:
    • Multi-language surveys (via spatie/eloquent-sortable + translatable fields).
    • Sortable questions/sections (drag-and-drop reordering).
    • Excel import/export for bulk operations.
  • Modularity: Plugin-based architecture allows feature-flagging or optional integration without monolithic changes. Suitable for phased rollouts (e.g., start with admin tools, later add frontend forms).
  • Translatability: Critical for global applications or localized user feedback. The forked laravel-survey adds this natively, reducing i18n boilerplate.

Integration Feasibility

  • Stack Compatibility:
    • Laravel 10+: Hard requirement; no downgrade path.
    • Filament 3/4: Version-specific branches exist (2.x also supported but deprecated). Filament 4.x requires explicit branch selection.
    • Dependencies:
      • maatwebsite/excel: Adds ~5MB to vendor; ensure CI/CD can handle Excel-related tests.
      • spatie/eloquent-sortable: Lightweight but may conflict with existing sortable models.
  • Database Schema:
    • Assumes laravel-survey tables (surveys, questions, entries, answers). Pre-migration audit required if:
      • The app already uses surveys or similar models.
      • Custom survey logic exists (e.g., soft deletes, archiving).
    • Migration Strategy: Publish and run laravel-survey migrations before installing the Filament plugin.
  • Filament Resource Conflicts:
    • Adds resources for Surveys, Entries, and optionally Questions/Sections (via config).
    • Risk: Duplicate UI if the app already has custom Filament resources for similar entities (e.g., QuestionResource).
    • Mitigation: Use Filament’s resource naming conventions or prefix (e.g., SurveyQuestionResource).

Technical Risk

Risk Severity Impact Mitigation
Filament Version Mismatch High Plugin breaks if Filament major version changes. Pin to exact Filament version (e.g., ^3.0 or ^4.0). Test upgrades early.
Schema Conflicts Medium Existing survey models/table names clash. Audit DB schema pre-integration; use php artisan survey:install carefully.
Translatability Performance Medium Many translations may slow queries. Benchmark with sample data; consider caching translated fields.
Excel Dependency Bloat Low Adds ~5MB to vendor; CI/CD test overhead. Only a risk if Excel is unused elsewhere.
Plugin Maintenance Low TappNetwork is active (2026 release), but long-term support unclear. Monitor GitHub issues; fork if critical bugs arise.
Frontend Form Gaps High No frontend survey forms (only admin tools). Plan to pair with laravel-survey views or a separate package (e.g., Livewire).

Key Questions

  1. Does the app require frontend survey forms, or is admin management sufficient?
    • If frontend forms are needed, this package alone is insufficient (requires additional integration with laravel-survey views or a frontend framework).
  2. Are there existing survey models or similar data structures in the database?
    • Schema conflicts may arise; a pre-integration audit is critical.
  3. Will surveys support multiple languages?
    • If yes, the translatable fork is a major advantage; if no, the overhead may not be justified.
  4. Is Excel import/export a priority?
    • The package includes this via maatwebsite/excel, but it adds dependency bloat if unused.
  5. What’s the Filament upgrade path?
    • If Filament 4 is planned, ensure the plugin’s 4.x branch is tested early.
  6. How will survey data be analyzed?
    • Basic analytics are included, but advanced use cases (e.g., real-time dashboards) may require extensions (e.g., Filament Charts).
  7. Are there compliance requirements (e.g., GDPR, CCPA) for survey data?
    • The package doesn’t include built-in compliance features; these must be added manually (e.g., anonymization, retention policies).

Integration Approach

Stack Fit

  • Primary Use Case: Filament admin panels for survey management (not frontend forms).
    • Ideal for:
      • B2B SaaS: Customer feedback tools for internal teams.
      • Market Research: Self-service survey dashboards for non-technical users.
      • Internal Tools: Employee/partner feedback systems.
  • Secondary Use Case: Backend survey engine paired with custom frontend forms (using laravel-survey views or a separate package).
  • Anti-Patterns:
    • Public-facing surveys: Use laravel-survey standalone or with Livewire/Inertia.
    • Highly dynamic surveys: Conditional logic beyond Laravel Survey’s scope may require custom extensions.

Migration Path

  1. Prerequisites:
    • Upgrade to Laravel 10+ and Filament 3/4 (if not already).
    • Ensure PHP 8.1+ is used.
  2. Installation Sequence:
    # 1. Add Tapp’s fork of laravel-survey to composer.json
    composer require matt-daneshvar/laravel-survey:dev-translatable
    composer update
    
    # 2. Publish and run migrations
    php artisan vendor:publish --provider="MattDaneshvar\Survey\SurveyServiceProvider" --tag="migrations"
    php artisan migrate
    
    # 3. Install the Filament plugin
    composer require tapp/filament-survey:"^3.0"  # or ^4.0 for Filament 4
    
    # 4. Publish optional assets (views/translations/config)
    php artisan vendor:publish --tag="filament-survey-views"
    php artisan vendor:publish --tag="filament-survey-translations"
    php artisan vendor:publish --tag="filament-survey-config"
    
  3. Filament Panel Integration:
    • Register the plugin in app/Providers/Filament/AdminPanelProvider.php:
      public function panel(Panel $panel): Panel {
          return $panel
              ->plugins([
                  FilamentSurveyPlugin::make(),
                  SpatieLaravelTranslatablePlugin::make(), // Required for translatable fields
              ]);
      }
      
  4. Enable Section/Question Resources (Optional):
    • Publish the config and add QuestionResource/SectionResource to the resources array in config/filament-survey.php.

Compatibility

  • Filament 3 vs. 4:
    • Use ^3.0 for Filament 3.x.
    • Use ^4.0 for Filament 4.x (check the 4.x branch).
  • Laravel Survey Fork:
    • The package requires Tapp’s translatable fork (dev-translatable). Do not use the upstream matt-daneshvar/laravel-survey.
  • Existing Survey Logic:
    • If the app has custom survey logic (e.g., event listeners, observers), test thoroughly after integration.
  • Excel Dependency:
    • Ensure maatwebsite/excel is compatible with the Laravel version (e.g., Laravel 10 may require ~3.1).

Sequencing

  1. Phase 1: Backend Setup (1–2 days):
    • Install laravel-survey fork and migrations.
    • Test basic survey creation/responses.
  2. Phase 2: Filament Integration (1 day):
    • Install the plugin and register it in the panel.
    • Verify resources appear in the sidebar.
  3. Phase 3: Customization (1–3 days):
    • Publish views/translations/config for overrides.
    • Extend resources (e.g., add custom fields, filters).
  4. Phase 4: Frontend (Optional):
    • Integrate laravel-survey views or build custom frontend forms (Livewire/Inertia).

Operational Impact

Maintenance

  • Dependency Updates:
    • Critical: laravel-survey fork is
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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity