Plugins
Simple Contact Form
A lightweight, customizable contact form plugin for FilamentPHP that provides an easy-to-use alternative to Contact Form 7. Build and manage contact forms with a simple, intuitive interface directly from your Filament admin panel.
Form Builder
Form Field
Dark theme support
Yes
Multi language support
Yes
Compatible with the latest version
Supported versions: 3.x - 4.x
Documentation

Simple-Contact-Form

A lightweight, customizable contact form plugin for FilamentPHP that provides an easy-to-use alternative to Contact Form 7. Build and manage contact forms with a simple, intuitive interface directly from your Filament admin panel.

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

#Features

  • 🚀 Easy Installation - Get up and running in minutes
  • 📝 Basic Form Management - Create and manage contact forms
  • 📧 Email Notifications - Receive form submissions via email
  • 📱 Responsive Design - Mobile-friendly forms out of the box

#Coming Soon (Pro Version)

  • 📁 File Upload - Support for file attachments in forms
  • 🪝 Form Hooks - Before/after submit hooks for custom logic
  • ⚙️ Configuration Options - Adjustable settings for forms
  • 💾 Submission Storage - Save and manage form submissions

#Try Pro Version Now

https://checkout.anystack.sh/simple-contact-form-pro

#Supported Filament versions

Filament Version Plugin Version
v3 0.0.6
v4 2.0.2

#Installation

You can install the package via composer:

composer require solution-forest/simple-contact-form

For Filament v4, use the v2.0.1 version:

composer require solution-forest/simple-contact-form:^2.0.2

You can publish and run the migrations with:

php artisan vendor:publish --tag="simple-contact-form-migrations"
php artisan migrate

Register the plugin in your Panel provider:

use SolutionForest\SimpleContactForm\SimpleContactFormPlugin;
 
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugins([
SimpleContactFormPlugin::make(),
]);
}

Simple Contact Form provides a Filament form that can be used outside the Filament panel, but it requires Filament styles. There are several ways to set this up depending on your environment:

  1. Filament v3 with Tailwind v3:
    Follow the official Filament installation instructions: https://filamentphp.com/docs/3.x/forms/installation.

  2. Filament v3 with Tailwind v4:
    Publish the built-in CSS assets with the following command:

    php artisan vendor:publish --tag="simple-contact-form-assets"
  3. Filament v4 (expects Tailwind v4):
    Add the following to your app.css or your stylesheet:

    @import '../../vendor/filament/filament/resources/css/theme.css';
     
    @source '../../app/Filament/**/*';
    @source '../../resources/views/filament/**/*';

    Then build your assets:

    npm run build

#Configuration

You can customize the plugin's resources using the following options:

SimpleContactFormPlugin::make()
->modelLabel('Custom Contact Form') // Singular label for the model
->pluralModelLabel('Custom Contact Forms') // Plural label for the model
->navigationLabel('My Contact Forms') // Label in the navigation menu
->navigationIcon('heroicon-o-envelope') // Icon for navigation
->navigationGroup('Communication') // Group in the navigation
->navigationSort(100) // Sort order in navigation
->navigationParentItem(null) // Parent navigation item (if any)
->slug('contact') // Custom route slug
->shouldSkipAuth(false) // Require authentication
->shouldRegisterNavigation(true) // Show in navigation
->hasTitleCaseModelLabel(true); // Use title case for labels

#Customizing Translations

If you need to modify the translations, publish the language files:

php artisan vendor:publish --tag="simple-contact-form-lang"

This will copy the language files to your application's lang directory where you can edit them.

#Email Setting

For the plugin to send emails properly, ensure your Laravel mail configuration is set up correctly in your .env file:

MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=your-email@example.com
MAIL_PASSWORD=your-email-password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your-email@example.com
MAIL_FROM_NAME="${APP_NAME}"

#Usage

#Creating a Form

  1. Navigate to the "Contact Forms" section in your Filament admin panel
  2. Click "Create Form"
  3. Configure the basic form settings:
    • Form Name
    • Email Content
    • Success Message
    • Error Message
    • Email Subject
  4. Add fields using the form builder:
    • Text Input
    • Email Input
    • Textarea
    • Select Dropdown
    • Radio Buttons
    • Checkboxes

#Displaying Forms

Use the Blade component with form id in your views:

<x-simple-contact-form :form="1" />

#Preview

image image image image image image

#Common Issues

Emails not sending:

  • Check your mail configuration in .env
  • Verify SMTP credentials
  • Check Laravel log files
  • smtp doc

#Testing

composer test

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Contributing

We welcome contributions! Please see CONTRIBUTING.md for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

The MIT License (MIT). Please see License File for more information.

#About Solution Forest

Solution Forest Web development agency based in Hong Kong. We help customers to solve their problems. We Love Open Soruces.

We have built a collection of best-in-class products:

  • InspireCMS: A full-featured Laravel CMS with everything you need out of the box. Build smarter, ship faster with our complete content management solution.
  • Filaletter: Filaletter - Filament Newsletter Plugin
Featured Plugins