Download the PHP package kylerusby/laravel-waitlist without Composer
On this page you can find all versions of the php package kylerusby/laravel-waitlist. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kylerusby/laravel-waitlist
More information about kylerusby/laravel-waitlist
Files in kylerusby/laravel-waitlist
Package laravel-waitlist
Short Description A package for laravel to allow users to sign up to a waitlist.
License MIT
Homepage https://github.com/kylerusby/laravel-waitlist
Informations about the package laravel-waitlist
Laravel Waitlist
A beautiful, ready-to-use Laravel package for managing waitlists. Collect email addresses from interested users with a stunning, pre-built landing page styled with Tailwind CSS. Perfect for product launches, beta releases, or any project that needs to build anticipation.
Requirements
- PHP 8.4 or higher
- Laravel 11.x or 12.x
Features
- 🎨 Beautiful Pre-built UI - Modern, responsive waitlist page with Tailwind CSS
- 📧 Email Collection - Simple form with validation and unique email constraint
- ⚙️ Highly Configurable - Customize text, colors, and behavior via config
- 🛣️ Flexible Routing - Enable/disable routes or override paths and middleware
- 🎯 Easy Integration - Works out of the box with zero configuration
- 🔒 Form Validation - Built-in request validation with custom error messages
- 🎭 Customizable Views - Publish and modify the Blade template to match your brand
Installation
Via Composer
Local Development
To use this package locally in your Laravel project:
-
Add the path repository to your project's
composer.json: - Require the package:
Publish and Run Migrations
Publish Configuration (Optional)
Publish Views (Optional)
Usage
Once installed, the package works immediately with zero configuration!
Quick Start
Visit /waitlist in your Laravel application to see the pre-built waitlist page. Users can enter their email addresses, and they'll be saved to the database.
Accessing Waitlist Data
Named Routes
The package registers named routes that you can use in your application:
Custom Controller Usage
If you disable the default routes, you can use the controller in your own routes:
Configuration
After publishing the config file, you'll find it at config/waitlist.php. Here are the available options:
Enable/Disable Waitlist
Control whether the waitlist functionality is enabled:
Route Configuration
Customize the routes or disable them entirely:
Examples:
Disable routes to use your own:
Add a prefix and custom path:
Apply guest middleware:
Page Content
Customize the waitlist page text and appearance:
Note: The success message is displayed in the view template. The controller returns "Added to waitlist!" as a flash message. To customize both, publish the views and modify the template.
Form Validation
The package includes built-in form validation with custom error messages:
Complete Configuration Example
Cloudflare Turnstile (Optional)
Protect your waitlist form from bots using Cloudflare Turnstile. This package ships with a Blade component and server-side validation ready to use.
1) Enable and Configure
Add the following to your .env:
The config lives under config/waitlist.php → turnstile.
2) Use with the Package’s Built-in View
If you’re using the provided stub at GET /waitlist, Turnstile is already included. Just set your .env values above and you’re done.
3) Include in Your Own Blade View
If you aren’t using the provided stub, you can include the component inside your form:
The component automatically:
- Loads the Turnstile script
- Renders the widget
- Provides
cf-turnstile-responsefor server-side validation
Prefer to embed manually? You can, but don’t include both the component and manual embed at the same time:
4) Server-side Verification
When CLOUDFLARE_TURNSTILE_ENABLED=true, the package’s request validator automatically verifies the token for the built-in POST /waitlist route.
If you use your own controller/request, add the rule yourself:
Or in a controller/route closure:
Notes:
- Tokens are single-use and valid for ~5 minutes.
- The widget auto-populates
cf-turnstile-responseon form submit.
Customization
Customizing the View
Publish the views to customize the waitlist page:
The view will be published to resources/views/vendor/laravel-waitlist/waitlist.blade.php. You can then modify the HTML, styling, and layout to match your brand.
Using Your Own View
If you've disabled the package routes, you can create your own controller and view:
Database Model
The Waitlist model is a standard Eloquent model with the following attributes:
id- Primary keyemail- Unique email address (string, 255)created_at- Timestampupdated_at- Timestamp
You can extend or customize it by creating your own model that extends the package's model:
Usage:
Advanced Usage
Exporting Waitlist
Export all emails to a CSV:
Email Notifications
Send notifications to new signups using model observers:
Or create a custom observer:
Adding Additional Fields
If you need to collect more than just email addresses, follow these steps:
-
Publish and modify the migration:
-
Update the model's fillable attributes:
-
Extend the form request validation:
- Publish and modify the view to include the new form fields.
Testing
Run the test suite:
Run tests with coverage:
Run static analysis:
Format code:
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Kyle Rusby
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-waitlist with dependencies
spatie/laravel-package-tools Version ^1.16
illuminate/contracts Version ^11.0||^12.0