- How do I install solution-forest/simple-contact-form in a Laravel app?
- Install it with composer require solution-forest/simple-contact-form, then publish the config and views with php artisan vendor:publish and wire up your mail transport and recipient address. Because it is a FilamentPHP plugin, you also need Filament installed with an admin panel to manage the forms. Read the service provider and controller source before merging, since the package has a single release and no downstream users to surface issues.
- Which Laravel and PHP versions does this contact form package support?
- It is presumed to target a conventional monolith on Laravel 10, 11 or 12 with PHP 8.1 or newer, but there is no visible CI matrix proving those combinations are tested. Check the composer.json constraints and the plugin requirements against your Filament panel version before upgrading a Laravel major. Pin the version and run it on a scratch branch first, because mail, validation and routing middleware all shift between majors.
- How do I configure recipients and customize the contact email?
- Recipients and mail copy are configured through the published config file and, in Filament, through the admin interface where forms are managed. Publish the assets so the config and Blade views live in your app and can be overridden rather than edited in vendor. Confirm in the source that the controller actually reads those values instead of hard-coding a single destination.
- Does this package include spam protection and rate limiting?
- The overview claims spam protection out of the box, but honeypots, IP throttling and CAPTCHA are the real engineering content here and must be verified in the source before you rely on them. If mitigation is thin or missing, add throttling middleware and a honeypot field yourself. Test submission behavior in staging, because contact forms fail silently when spam or mail delivery breaks.
- Can I create multiple contact forms with different recipients?
- The Filament admin approach suggests multiple forms may be supported, but confirm the package is not limited to one hard-coded destination before committing. Multi-tenant setups needing per-tenant routing and recipients are not a documented use case. If you need that flexibility, a small in-house route, FormRequest and Mailable slice is usually less risk than adapting a thin package.
- Are the views and config publishable so I can customize the form markup?
- Yes, the package follows the Laravel convention of publishable config and Blade views, so you can override markup and styling inside your own app. Diff the published files against your house conventions instead of adopting them blindly. Anything hard-coded in the controller should be treated as a fork candidate rather than something to depend on.
- Does it store submissions in the database and what about GDPR?
- If the package persists submissions it introduces a table containing PII, along with retention and privacy obligations you own. Review the migration before running it and decide whether persistence is needed at all, since most contact forms only require mail plus a log entry. If you keep the table, add a pruning job and document a retention window.
- Does it queue emails or send them synchronously during the request?
- Check whether the Mailable implements ShouldQueue or whether the package dispatches mail inside the request, which puts SMTP latency directly in front of the user. If it sends synchronously, wrap the send in a queued job or add ShouldQueue before going live. Also verify that failures are logged rather than swallowed, since silent non-delivery is the classic contact form failure mode.
- Is this package actively maintained and what are the alternatives?
- The repository shows roughly 12 stars, 0 dependents, a single release dated 2025-06-23 and a bus factor of one, which is thin evidence of production use. Treat it as a starting point you own rather than a maintained library, and expect to read the source during due diligence. Alternatives are a hand-rolled route, FormRequest and Mailable slice, or a more established forms package if you need long-term support.
- Can I use this contact form package in a headless or multi-tenant Laravel app?
- It is Blade and Filament centric and assumes a conventional Laravel monolith, so headless or API-only services are a poor fit. Multi-tenant SaaS needing per-tenant routing, recipients and storage is also outside its documented scope. If your application already has a forms or notifications module, skip this package entirely because it duplicates an existing path.