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
Sweet Alert

Sweet Alert Laravel Package

realrashid/sweet-alert

Laravel package to integrate SweetAlert2 popups: stylish alerts, confirmations, toasts, and notifications. Trigger from controllers or views with simple helpers and session flashes, customize options, and improve UX with minimal setup.

View on GitHub
Deep Wiki
Context7

realrashid/sweet-alert brings SweetAlert2 popups to Laravel with an expressive, server-driven API. Flash stylish alerts from controllers, middleware, or Livewire/Inertia flows and render them seamlessly in your views, making user feedback consistent across your app.

Designed for quick setup and clean UX, it supports common notification patterns (success, error, warning, info) while keeping customization straightforward.

  • Flash alerts via session with simple helper methods
  • Multiple types: success/error/warning/info/question
  • Configure title, text, icon, buttons, timers, and more
  • Works well with typical Laravel stacks (Blade, Livewire, etc.)
  • Optional presets and global configuration for consistent styling
Frequently asked questions about Sweet Alert
How do I replace Laravel’s flash messages (Session::flash) with SweetAlert alerts in a controller?
Use the `Alert` facade to trigger alerts directly. Replace `return redirect()->with('success', 'Message');` with `Alert::success('Message', 'Title');`. The package automatically handles the redirect and renders the alert on the next page. For non-redirect cases, call `Alert::success()` before returning the view. Example: `return view('dashboard')->withAlert(Alert::success('Task saved!'));`.
Does this package work with Laravel 13 and PHP 8.2+? Are there breaking changes?
Yes, the package supports Laravel 9–13 and PHP 8+. Version 7.3.2+ includes fixes for Laravel 12/13’s container binding changes. Always check the [release notes](https://github.com/realrashid/sweet-alert/releases) for minor adjustments, but core functionality remains stable. Test with `composer require realrashid/sweet-alert:^7.3` to ensure compatibility.
Can I customize SweetAlert’s appearance (themes, animations, buttons) without writing CSS/JS?
Absolutely. The package includes built-in themes (e.g., `dark`, `bootstrap-4`) and helper methods like `animation('slide')`, `buttonsStyling('outline')`, and `timer(3000)` for toasts. Configure these via the facade: `Alert::success('Message')->animation('slide')->timer(5000)`. For deeper customization, publish the config with `php artisan vendor:publish --tag=sweetalert-config` and modify the `sweetalert.php` file.
How do I load SweetAlert2 assets via Laravel Mix/Vite instead of the default CDN?
Disable the CDN in the config by setting `'load_sweetalert' => false` in `config/sweetalert.php`. Then manually include the SweetAlert2 JS/CSS files in your `resources/js/app.js` or Vite entry point. Use the package’s published assets as a reference: `resources/vendor/sweetalert/`. Ensure you compile assets after installation (`npm run dev` or `npm run build`).
Is there a way to show SweetAlert dialogs (confirmations) after a form submission without a redirect?
Yes, use the `Alert::confirm()` method in your controller and return a JSON response for AJAX requests. Example: `return response()->json(['alert' => Alert::confirm('Delete?', 'Are you sure?')->yes('delete')->no('cancel')]);`. On the frontend, handle the JSON response to trigger the alert dynamically. For Blade views, use `@include('sweetalert::alert')` to render the confirmation dialog.
Will SweetAlert alerts work if JavaScript is disabled? What’s the fallback?
SweetAlert2 requires JavaScript to function, so there’s no native fallback. If JS is disabled, users will see a blank space or default flash messages if you’ve configured Laravel’s session flash. For critical feedback, combine with Laravel’s built-in validation errors or use a server-side notification system (e.g., `Session::flash()`) as a fallback. Document this limitation in your app’s accessibility guidelines.
How do I integrate SweetAlert alerts with a Vue/React SPA using Laravel as the backend?
Return alert data in your API responses as JSON. Example: `return response()->json(['success' => true, 'alert' => Alert::success('Data saved!')->toArray()]);`. In your frontend, listen for this response and trigger SweetAlert2 manually using the data. Use the `toArray()` method on the Alert facade to extract the necessary parameters (title, text, type, etc.). This approach decouples the alert logic from Blade templates.
Are there performance concerns with loading SweetAlert2 on every page?
SweetAlert2 adds ~50KB to your payload (minified). To optimize, load assets conditionally using middleware or Blade directives. Example: `@if(session('alert'))` include the assets only when needed. For high-traffic pages, consider lazy-loading SweetAlert2 or using a CDN with caching headers. Monitor your Lighthouse performance scores to ensure UX isn’t impacted.
Can I use SweetAlert for multi-step forms or workflows (e.g., step-by-step confirmations)?
SweetAlert is best for simple alerts, toasts, or single-confirmation dialogs. For multi-step workflows, use Laravel Nova, custom modals, or libraries like Laravel Modal. SweetAlert lacks built-in support for dynamic steps or state management. If you need sequential confirmations, trigger SweetAlert for each step individually and handle the logic in your controller or frontend JS.
What alternatives exist if I need more advanced alert features (e.g., real-time updates, complex modals)?
For real-time alerts, consider Laravel Echo + Pusher with custom JS modals. For complex workflows, use Laravel Nova (built-in modals) or libraries like Laravel Modal, Alertify.js, or Toastr. If you need to stick with SweetAlert2 but want more control, extend the package by publishing its assets and customizing the JS directly. For SPAs, libraries like Notistack (Material-UI) or SweetAlert2’s own Vue/React wrappers offer tighter integration.
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport