xammie/mailbook
Mailbook is a Laravel package for inspecting your mails without triggering them in your app. Register mailables and notifications in routes/mailbook.php, then preview them at /mailbook.
/mailbook of every registered mailable and notification, rendered on demand with no triggering of real user events. As a PM, this converts email review from "ask an engineer to trigger a signup in staging and forward me the screenshot" into a self-serve loop for design, marketing, support, and localisation reviewers.routes/mailbook.php, the file becomes a living inventory of the product's outbound communication surface. That is a useful estimation input for work like "rebrand all transactional email," "add German," or "audit every touchpoint for a pricing change."::to() notifiable binding, categories/groups, and per-mail variants.->variant('1 item', ...) / ->variant('2 items', ...) lets a PM or designer enumerate the states that actually ship (empty state, single item, multi-item, over-limit, trial ending vs. expired). That surfaces missing states before engineering builds them, which is cheaper than fixing them post-launch.locales config produces a language switcher in the preview UI. This makes "can we ship this mail in Dutch/German/Spanish?" a demonstrable question rather than a speculative one, and exposes truncation and layout breakage per language before a market launch.send / send_to enabled, a reviewer can push the currently selected mail to a real inbox using the app's default mail driver and check it on real clients. This supports a lightweight sign-off step ahead of campaigns or contract-sensitive communications (invoices, dunning, legal notices).Good fit:
database_rollback makes factory-based previews safe by rolling back changes after rendering.Look elsewhere or defer:
--dev), but a PM should confirm with security before adding a browsable surface that renders real templates and, if enabled, can send live mail. The send feature in particular should default to off outside local/staging.To executives: This is a free, MIT-licensed developer tool that gives us a single, always-current catalogue of every automated email we send to customers. It costs a Composer dev dependency and roughly an afternoon of setup, adds nothing to production runtime, and removes a recurring bottleneck where an engineer must be interrupted to produce a screenshot of an email before design, marketing, or localisation can review it. In practical terms it shortens the review cycle on transactional email, gives us a demonstrable answer to "does this work in German?", and reduces the class of defect that reaches customers directly because normal QA never opens their mailbox. Recommended decision: adopt in staging/local, keep the send-to-inbox feature off by default, and revisit if we later need formal cross-client rendering or deliverability testing, which this tool does not cover.
To engineering: Install as composer require --dev xammie/mailbook, run mailbook:install, and register mailables and notifications in routes/mailbook.php. It supports dependency injection in registration closures, ::to() for notifiables, category/group scoping, per-mail variants, locale switching, and optional DB rollback so factory-created models are safe. Config and views are publishable, routes can be disabled, and it tracks Laravel 8 through 13. It is dev-only, has no production dependency graph impact, and is small enough to fork if upstream stalls. Ask: one owner to seed the route file from the current mail inventory and a decision on whether the send feature is enabled outside local.
How can I help you explore Laravel packages today?