Changelog


All notable changes to Slotara are documented here. Versioning follows Semantic Versioning โ€” MAJOR.MINOR.PATCH.

  • v1.8.4 โ€” Verified Sign-Up Payments & Checkout Holds
  • v1.8.3 โ€” Booking Approval, Payment & Reschedule Fixes
  • v1.8.1 โ€” Plan Changes, Two-Factor Sign-In & Verified Payment Webhooks
  • v1.8.0 โ€” Add-on Modules, Free Invoices & In-Panel Licensing
  • v1.7.1 โ€” License Activation & reCAPTCHA v3 Fix
  • v1.7.0 โ€” Translation Management & Multi-Language Editor
  • v1.6.0 โ€” Custom Domains, Payments & Group Bookings
  • v1.5.0 โ€” Google Meet & Virtual Sessions
  • v1.4.0 โ€” Subdomain Booking URLs & Billing UI
  • v1.3.0 โ€” SMS, Payments & Google Calendar
  • v1.2.0 โ€” Multi-Language & Rebrand
  • v1.1.0 โ€” Client Portal & UX
  • v1.0.0 โ€” Initial Release
Type Meaning
New New feature added
Improved Enhancement to existing feature
Fixed Bug fix
Breaking Change that requires manual action on upgrade
Security Security patch

v1.8.4 โ€” Verified Sign-Up Payments & Checkout Holds

Released 2026-10-13
  • Paid plans can no longer be taken without paying โ€” a business account on a paid plan is created only after the gateway confirms the payment for that sign-up (Stripe, Razorpay, PayPal, Paddle, Paystack). Security
  • Unpaid checkouts no longer hold time slots โ€” released after 30 minutes, or immediately when the customer leaves the gateway. Late payments put the booking back when the slot is free. See Booking Payments. Improved
  • Exact prices โ€” small prices are no longer rounded up to a gateway's minimum charge. Fixed
  • Razorpay sign-ups complete โ€” the subscription is authorised on your site with Razorpay Checkout. Fixed
  • Paddle sign-up checkout opens โ€” on your site with Paddle.js; add the Client-side token in Admin โ†’ Settings โ†’ Payments โ†’ Paddle. See Settings. Fixed
  • Update no longer stops at a migration with "Can't DROP 'slot_reservations_provider_id_foreign'" on databases that never had that key. Fixed
  • Client cancellation rules โ€” the email cancel link respects Allow client cancellation, and past appointments can't be cancelled online (email link or My Bookings). Fixed
  • My Bookings cancellations free the seat and notify add-ons like Invoices; the business's cancellation email links to the dashboard again. Fixed
  • Accurate review step โ€” it mentions the confirmation email or the approval wait, and the cancellation note only when allowed. Fixed
  • "No preference" bookings show the assigned provider on the success screen. Fixed
  • Business owners can manage staff and providers โ€” add, edit and delete on the Staff and Providers pages. Fixed
  • Calendar files use the business's timezone and mark bookings awaiting approval as tentative. Fixed
  • Seat numbers show only for group slots. Fixed

Includes everything in v1.8.3.

{warning} Upgrade: update from Admin โ†’ System โ†’ License & Updates. If an earlier update stopped at the slot_reservations migration, just run it again (nothing was changed by the failed attempt). Make sure the cron job runs (bookings:release-unpaid frees unpaid checkouts every five minutes). Platforms that take sign-up payments with Paddle must add the Client-side token in Admin โ†’ Settings โ†’ Payments โ†’ Paddle and approve their domain in Paddle.


v1.8.3 โ€” Booking Approval, Payment & Reschedule Fixes

Released 2026-10-10

Bookings

  • Require approval for new bookings โ€” turn it on under Form Builder โ†’ General โ†’ Notifications. Bookings start as Pending, the customer gets a "booking request received" email, and the confirmation email, SMS and webhook go out when you confirm (new Confirm action on Pending bookings). Off by default. See Bookings โ†’ Booking Statuses. New
  • Reschedule shows the right slots โ€” the same slots as the booking page, including providers who use your business hours instead of Working Shifts. The new booking keeps its payment and gets a working cancellation link. Fixed
  • Correct provider everywhere โ€” the bookings list and details, dashboard widget, calendar popup, analytics and webhook now show the provider the customer chose. Fixed

Payments

  • "Pay now" never skips payment โ€” if the gateway can't start a checkout, the booking is released and the customer sees a message on the review step. Fixed
  • Paddle checkout โ€” opens on your site with Paddle.js; add the new Client-side token and approve your domain in Paddle. See Booking Payments. Fixed
  • Recording an offline payment no longer re-sends booking emails. Fixed

Integrations

  • Google Calendar Connect / Disconnect work for business owners, not only super admins. See Google Calendar for Google-side errors. Fixed

{warning} Upgrade: update from Admin โ†’ System โ†’ License & Updates (one click). Two migrations run: slot_reservations.provider_id now references providers (older rows saved with a user id are converted), and a new Booking Request Received email template is added. Businesses using Paddle must add their Client-side token on the Payments page and approve their domain in Paddle; until then Paddle is treated as not configured.


v1.8.1 โ€” Plan Changes, Two-Factor Sign-In & Verified Payment Webhooks

Released 2026-10-09

Billing

  • Businesses change their own plan โ€” the Subscription page in the business panel has a plan picker with a monthly / yearly toggle and Upgrade, Downgrade and Current labels. Before confirming, the business sees the price difference, any proration and when the change takes effect. Works with Stripe and Paystack. New
  • Safe downgrades โ€” a downgrade that would go over the new plan's limits (staff, services and so on) is blocked with an explanation. Moving to a free plan is scheduled for the end of the paid period and shown in a banner with Keep current plan. New
  • Stripe changes are prorated and never left half-done when a payment fails or needs 3-D Secure; a subscription that was set to cancel is reactivated when the plan changes. Improved

See Subscription Plans โ†’ Plan changes by the business.

Sign-in & Accounts

  • One sign-in page โ€” everyone, super admins included, signs in at /login. Old /admin/login links redirect there. Improved
  • Two-factor authentication โ€” set up 2FA from Profile with an authenticator app (QR code and recovery codes). After the password, users with 2FA enter a code or a recovery code. New
  • Profile page for businesses โ€” owners and staff get Profile in the user menu: name, email, photo, password, two-factor and active sessions. New
  • No 403 when switching accounts โ€” after signing out of one account and in as another, each user lands on their own home page. Staff land on Bookings. Fixed

Payments

  • Booking payment webhooks are verified โ€” Stripe, Razorpay, Paddle and Paystack webhooks are checked against the signing secret of the business that owns the booking; forged or unsigned events are rejected. The payment success page confirms the payment with the gateway, and PayPal orders are captured before the booking is marked paid. Security
  • Webhook setup on the Payments page โ€” each gateway shows numbered steps, the full webhook URL with a Copy button, the events to select, the signing secret field and a status badge. A warning appears when the site runs on a local address gateways can't reach. Improved

Email

  • SMTP Encryption works as chosen โ€” None, SSL and TLS are now applied exactly (SSL on any port, not only 465), so port-25 relays work. A new Verify the server's SSL certificate toggle allows internal relays with self-signed certificates. Send Test Email uses the values on screen, gives up after 15 seconds and explains what went wrong. Fixed

Other fixes

  • Clients list no longer fails with a GROUP BY error on MySQL. Fixed
  • Regional settings in the Form Builder offer every currency (or the admin's Allowed Currencies) and Allowed Timezones in searchable dropdowns. Improved
  • Outbound webhook help text shows your site name; requests also carry an X-Webhook-Signature header (same value as X-Slotara-Signature, which is still sent). Improved
  • Embedded booking widget shows the business branding in the card. Fixed
  • Sign-in and password pages no longer request deleted theme files, and their field icons are back in place. Fixed

{info} Update with one click from System โ†’ License & Updates. A new migration adds the scheduled plan columns to tenants. Super admins now sign in at /login. If reCAPTCHA ever locks you out, see Disabling reCAPTCHA.


v1.8.0 โ€” Add-on Modules, Free Invoices & In-Panel Licensing

Released 2026-10-02

Add-on Modules

  • Extend Slotara with add-ons โ€” new Admin โ†’ System โ†’ Modules page. Install official add-ons in one click (paid ones ask for their purchase code), switch them on and off, update and uninstall them, all without FTP, SSH or Composer. New
  • Sell add-ons to your businesses โ€” tick a module under Subscription Plans โ†’ Modules included, or give it to one business under Tenants โ†’ Extra modules. Businesses on other plans don't see its pages, and its public pages return "not included in your plan". New
  • Upload a module โ€” install a signed .licentra-module.zip package without going through the store. In developer mode you can also upload your own unsigned modules. New
  • A broken module never breaks your site โ€” only modules signed by the author install. If a module fails (an error while starting, repeated crashes, or errors on Slotara's own pages), only that module is switched off and the reason is shown on the Modules page; bookings and every other page keep working. Modules can't replace Slotara's pages, and a module's hooks can never stop a booking from being saved. Security
  • Emergency switch โ€” LICENTRA_MODULES_SAFE=true in .env loads no modules at all; php artisan module:disable --all switches them all off. New
  • Build your own โ€” Modules โ†’ More โ†’ Download example module gives you a complete, commented module (business and admin pages, a public page, a booking hook, a daily task). php artisan module:make creates a new one. See Module Development. New

See Add-on Modules.

Invoices (free add-on)

  • Professional invoices for every business โ€” the first official add-on, free for all Slotara owners. New bookings are invoiced automatically (marked paid when paid online), businesses can create invoices by hand with tax and live totals, and customers get a clean, print-ready invoice page at a private link. Outstanding, overdue and paid-this-month totals at a glance. New

See Invoices.

License & Updates

  • Everything inside the admin panel โ€” activate your license, move it to another domain and install updates from Admin โ†’ System โ†’ License & Updates, with live update progress. The standalone /license pages still work. Improved
  • Modules summary โ€” the License & Updates page shows how many modules are installed, running, or need attention. New
  • Updates and module installs never overlap โ€” a module can't be installed while Slotara is updating, and the other way round. Module files, data and migrations are never touched by a Slotara update. Improved
  • Demo mode locks every module and license change. Improved

{warning} Upgrading from 1.7.x: one-click updates start with this version, so install 1.8.0 once by hand: upload the new files (keep your .env), then run php artisan migrate --force and php artisan optimize:clear (see Upgrading). Your license activation and all data carry over, and every later update is one click from System โ†’ License & Updates. A new migration adds the plan and business module settings (subscription_plans.modules, tenants.extra_modules). If you edited config/licentra.php, copy the new modules block from the release.


v1.7.1 โ€” License Activation & reCAPTCHA v3 Fix

Released 2026-09-30

License Activation

  • Activate with your purchase code โ€” the first time a super admin opens /admin, Slotara shows a License page (/license) asking for your Envato purchase code and a contact email. The code is verified with Envato and tied to your domain; after that the license is checked offline, with a quiet daily background check. New
  • Your customers are never locked out โ€” only the Super Admin panel needs a license. Business panels, staff, clients and all public booking pages keep working whatever the license state. New
  • Local and staging installs are free โ€” localhost, .test / .local domains and similar don't use up your production domain. New
  • Move to a new domain yourself โ€” release the current domain from /license, then activate on the new site. New

See License Activation for step-by-step instructions and exactly what is sent.

reCAPTCHA v3

  • reCAPTCHA no longer blocks sign-in โ€” the bundled reCAPTCHA loader was pinned to a Google release that has been retired, so with reCAPTCHA enabled the script never loaded and Login, Register, Forgot Password and Contact always failed with "Please complete the reCAPTCHA verification." These pages now load Google's api.js directly, so they always use the current release. Fixed
  • Clear error when reCAPTCHA cannot run โ€” if the script fails to load or the site key is invalid (for example a v2 key, or a domain not added in the Google reCAPTCHA console), the form stays on the page and shows an error instead of submitting without a token. Improved

{info} Locked out by the reCAPTCHA issue? Sign in at /admin/login โ€” the admin panel login does not use reCAPTCHA โ€” and either update to 1.7.1 or turn reCAPTCHA off under Settings โ†’ Google reCAPTCHA v3. After updating, run php artisan optimize:clear, then open /admin and enter your purchase code.


v1.7.0 โ€” Translation Management & Multi-Language Editor

Released 2026-08-03

Translation Dashboard

  • New admin screen โ€” Admin โ†’ System โ†’ Translations (/admin/translations) gives super admins a single place to manage every UI string: per-language coverage percentages, an inline editor grouped by file with Missing / Translated filters, and per-file search. New
  • Search across every language โ€” the global search box matches on the key, the English text, and the translated text across all files at once, so you can find an entry by typing a phrase in the target language (e.g. Hindi or Arabic) and edit it right from the results. New
  • Add or remove languages from the UI โ€” the Add Language button scaffolds a new locale from the English source (preset list or any ISO code) and can enable it in the switcher in one step; languages can be enabled, disabled, or deleted from the same page โ€” no config file editing. New

Consolidated Translation Store

  • One source of truth per language โ€” every interface string is now consolidated into a single JSON file per locale (lang/en.json, lang/es.json, โ€ฆ) keyed by the English source text. The many legacy per-locale PHP files (booking.php, nav.php, pages.php, โ€ฆ) were merged in and removed. Improved
  • Duplicates removed โ€” hundreds of duplicated and case-variant strings (e.g. Save Changes vs Save changes) were merged to a single canonical entry across all 8 languages. Fixed
  • Stranded translations recovered โ€” strings whose translations were trapped in files the app never loaded (and therefore always displayed in English) are now served correctly in every language. Fixed

{warning} If you previously customised translations by editing the per-locale PHP files (lang/fr/booking.php, etc.), re-apply those edits in the corresponding lang/<code>.json file or via the Translation Dashboard.

Fixes & Coverage

  • Correct language in global search editor โ€” after switching the selected language, the search results now load that language's values instead of keeping the previously selected language's text. Fixed
  • Wider translation coverage โ€” many additional strings across the Admin, Business, and booking-page UIs were wrapped for translation. Improved

v1.6.0 โ€” Custom Domains, Payments & Group Bookings

Released 2026-07-07

Group Bookings & Slot Capacity

  • Capacity per slot โ€” a single time slot can now hold multiple bookings (e.g. a 10:00 AM yoga class with 12 seats). Set Capacity per slot on a provider's Working Shift, or the tenant-wide value in Form Builder โ†’ General. 1 keeps classic one-to-one appointments โ€” existing bookings are unaffected. New
  • Count-based availability โ€” the booking page shows seats remaining ("3 spots left") per group slot and marks it Full once every seat is taken. New
  • Per-provider capacity โ€” each provider/instructor has their own seat pool at a given time; group bookings bind to a chosen provider rather than scattering across providers. New
  • Admin roster โ€” the Bookings table shows a per-attendee Seat number so staff can read a class roster. New
  • Duplicate-booking guard โ€” the same email can't take two seats in one slot (case-insensitive). New
  • Safe concurrency โ€” a database seat-uniqueness constraint prevents overbooking under simultaneous requests; seats freed by cancellations are reused. Improved

Availability Precedence

  • Working Shifts now take priority over the tenant-wide Form Builder availability. A provider with shifts is fully shift-driven; the Form Builder schedule applies only to providers without shifts. Both screens show an inline notice explaining which is active. Breaking

Custom Domains

  • Custom domain per tenant โ€” businesses can serve their booking page from their own domain (e.g. book.yoursalon.com) in addition to the subdomain URL. See Custom Domains. New

Paystack Payment Gateway

  • Paystack for booking payments โ€” Paystack joins Stripe, Razorpay, PayPal, and Paddle as a fifth pay-at-booking gateway for tenants (Nigeria, Ghana, South Africa & pan-African payments). Configure it from Manage โ†’ Integrations โ†’ Payments. New
  • Paystack for platform billing โ€” Paystack can also be selected as the platform gateway for tenant subscriptions (Admin โ†’ Settings โ†’ Payments), with a full subscription-lifecycle webhook that activates, renews, and suspends tenants (subscription.create, charge.success, invoice.payment_failed, subscription.disable). New
  • Verified returns & signed webhooks โ€” Paystack transactions are verified server-side on the customer's return, and every webhook is authenticated with an HMAC-SHA512 signature (per-tenant secret for bookings, platform secret for subscriptions). Security
  • Card-based gateway picker in Admin โ€” the Admin โ†’ Settings โ†’ Payments tab now uses the same card picker as the tenant booking-payments page; only the selected gateway's credential fields are shown. Improved
  • "Pay now" button โ€” when payment is required at booking and a gateway is configured, the booking wizard's confirm button reads Pay now and shows the order total. Improved

Service & Provider Images

  • Service cover images โ€” upload a cover image per service (Manage โ†’ Services); it appears as a thumbnail on the booking page service card. New
  • Provider photos โ€” upload a profile photo per provider (Manage โ†’ Providers); it replaces the initials avatar on the booking page provider card and in the admin table. New

Fixes

  • Provider relation panels now render โ€” the Services, Working Shifts, and Blocked Dates panels on the provider edit page were previously not displayed (wrong method name); they now appear correctly. Fixed
  • Blocked Dates modal โ€” fixed a class-not-found error when opening the slot-override form. Fixed
  • Cancelled slots are re-bookable โ€” a cancelled booking no longer permanently blocks its slot; the seat is released on cancellation. Fixed

v1.5.0 โ€” Google Meet & Virtual Sessions

Released 2026-06-27

Google Meet Integration

  • Virtual services โ€” services now have an is_virtual toggle and an optional static video call URL field. New
  • Auto-generate Google Meet link โ€” when a virtual booking is confirmed and the provider has Google Calendar sync connected, a unique Google Meet link is auto-created per booking via the Calendar API and stored on the booking record. New
  • Meet link in emails โ€” a "Join Video Call" button is injected into both the customer confirmation email and the provider new-booking notification email. New
  • Meet link in iCal โ€” the .ics attachment and iCal download endpoint include an X-GOOGLE-CONFERENCE line when a Meet link exists, surfacing it natively in Google Calendar and Apple Calendar. New
  • Meet link in Filament โ€” the Booking detail view shows the Meet link as a clickable URL when present. New
  • Custom video link support โ€” tenants can disable Meet auto-generation per service and paste a static Zoom, Teams, or any https:// URL instead. The email falls back to this URL automatically. New
  • Immutable Meet links โ€” once generated, a Meet link is never overwritten on reschedule or update, preventing broken links for booked clients. Improved
  • i18n โ€” "Join Video Call" label translated in all 8 supported languages. Improved

Settings & Currency

  • Global currency selector โ€” the currency dropdown in Business Panel โ†’ Settings now shows the full global currency list with search, replacing the previous 7-option hardcoded list. Improved

Installer

  • Locale middleware guard โ€” SetLocale middleware now skips DB queries when .installed flag is absent, preventing a crash on fresh installs before the database is configured. Fixed
  • Safe migration โ€” the drop_custom_domain_columns migration is now idempotent; it checks column existence before dropping, preventing errors on databases set up without those columns. Fixed

v1.4.0 โ€” Subdomain Booking URLs & Billing UI

Released 2026-06-23

Subdomain Booking URLs

Businesses can now be reached via their own subdomain in addition to the default path-based URL.

  • Subdomain URL mode โ€” super-admin can switch from path-based to subdomain-based booking URLs in Admin โ†’ Settings โ†’ System โ†’ Booking URL Mode. New
  • Wildcard routing โ€” subdomain requests resolve automatically to the correct tenant booking page. New
  • Consistent URLs across the app โ€” booking URLs in Quick Actions, email templates, Businesses list, and Form Builder all respect the selected mode. Improved

Billing Page

  • Redesigned subscription page โ€” new plan hero card shows the active plan name, status badge (active, trialing, past-due, cancelled) and billing cycle at a glance. Improved
  • Change Plan & upgrade flow โ€” businesses can switch plans or billing cycles directly from the billing page without leaving the panel. Improved
  • Past-due banner โ€” clear prompt is shown when a subscription is past due, directing the business to update their payment method. Improved

SEO

  • Front page SEO โ€” added Open Graph tags, Twitter Card meta, canonical URLs, and robots directives to all public front pages (home, for-clients, contact). Improved

UX

  • Custom 404 page โ€” visitors who enter a non-existent business slug now see a friendly "Business not found" page with the attempted URL highlighted, a clear message, and action buttons to search again or return home. Fully translated into all 8 supported languages. New

v1.3.0 โ€” SMS, Payments & Google Calendar

Released 2026-06-10

SMS Notifications (Twilio)

  • Twilio SMS โ€” tenants configure their own Twilio credentials and send booking event SMS to clients. New
  • 4 SMS events โ€” confirmation, appointment reminder, cancellation, and reschedule notices. New
  • Per-event toggles โ€” tenants independently enable or disable each event type; super-admin sets platform-wide permissions. New
  • Idempotent reminders โ€” reminder guard prevents duplicate SMS when the scheduler runs more than once. New

Pay-at-Booking

  • Require payment at booking โ€” clients pay before confirmation emails and SMS are dispatched. New
  • 4 payment gateways โ€” Stripe Checkout, Razorpay Orders API, PayPal Orders v2, and Paddle Billing. New
  • Offline payment recording โ€” staff mark cash, card terminal, or bank transfer payments from Bookings โ†’ Payment. New
  • Print receipts โ€” public printable receipt at /booking/{token}/receipt; no login required. New

Google Calendar Sync

  • Outbound sync โ€” bookings are created, updated, and deleted as Google Calendar events in real time. New
  • Inbound busy-block sync โ€” calendar:sync-busy (hourly) pulls provider calendar events and blocks those slots in the booking engine. New
  • Per-provider OAuth โ€” each provider connects their own Google account from Manage โ†’ Integrations โ†’ Calendar Sync. New

v1.2.0 โ€” Multi-Language & Rebrand

Released 2026

Multi-Language Support

  • 8-language UI โ€” complete translation for English, Spanish, German, French, Arabic, Russian, Chinese (Simplified), and Hindi across all panels (Super Admin, Business, and public booking pages). New
  • Language switcher โ€” one-click locale selector in the top-right header; selection persists in the user's session. New
  • RTL support โ€” Arabic is rendered right-to-left automatically. New
  • Extensible โ€” new locales can be added by dropping translation files into lang/{locale}/ and registering the code in config/app.php. New

Rebrand

  • SlotLine โ†’ Slotara โ€” platform renamed to Slotara. Improved

v1.1.0 โ€” Client Portal & UX

Released 2026

Client Portal

  • My Bookings page (/my-bookings) โ€” cross-business dashboard showing all upcoming and past appointments for the logged-in client, grouped by business brand. New
  • In-app cancellation modal โ€” clients cancel from My Bookings without leaving the page; a modal captures an optional reason. New
  • Cancellation reason stored โ€” reason is saved on the booking and shown in Business Panel โ†’ Bookings โ†’ View, and in italic on cancelled cards in My Bookings. New
  • Allow/disallow client cancellations โ€” per-business toggle in Booking Behaviour settings. New
  • Cancellation notification โ€” staff receive an in-app notification when a client cancels, including the reason. New
  • Booking form pre-fill โ€” when a logged-in client visits any booking page, their name, email, and phone are auto-filled from their account; email is locked to prevent mismatch. Improved

Navigation

  • User dropdown in nav โ€” logged-in users on public pages see a role-aware dropdown (avatar + name) with a link to their dashboard or My Bookings and a Sign Out button. New
  • Multi-service total on Confirm step โ€” total price now correctly sums all selected services instead of showing only the first service's price. Fixed

v1.0.0 โ€” Initial Release

Released 2025

Platform & Architecture

  • Multi-tenant SaaS architecture โ€” single-database tenancy with automatic Eloquent query scoping via TenantScope. New
  • Super Admin Panel (/admin) โ€” Filament 5-powered admin for managing tenants, users, plans, templates, and settings. New
  • Business Panel (/manage) โ€” Filament 5-powered tenant panel for day-to-day operations. New
  • Public Booking Pages โ€” customer-facing booking flow at /{slug}. New

Booking & Services

  • Service management โ€” create services with name, description, duration, price, image, and provider assignment. New
  • Provider management โ€” bookable team members with per-day working hours, bio, and avatar. New
  • Staff management โ€” restricted-access panel users who can manage bookings but not services or settings. New
  • Booking management โ€” full lifecycle (Pending โ†’ Confirmed โ†’ Completed / Cancelled / No-Show). New
  • Manual booking creation โ€” staff can create bookings on behalf of clients. New
  • iCal export โ€” clients receive an .ics link in their confirmation email. New
  • Client tracking โ€” auto-built CRM from bookings: lifetime spend, top service, booking history. New

Payments

  • Stripe Checkout integration โ€” pay-before-book flow for paid services. New
  • Webhook handling โ€” checkout.session.completed and checkout.session.expired events. New
  • Subscription plans โ€” tiered plans shown on the registration page, linked to Stripe Price IDs. New

Email & Notifications

  • Email template system โ€” customisable transactional emails with layout/template separation and {{PLACEHOLDER}} syntax. New
  • Booking confirmation email โ€” sent to client on booking. New
  • Booking cancellation email โ€” sent to client when booking is cancelled. New
  • Contact inbox โ€” admin receives, tracks, and replies to contact form messages. New
  • Admin notification preferences โ€” per-user, per-event, per-channel (Email / In-App) opt-ins. New

Security

  • Role & permission system โ€” Spatie-based with 5 roles: super_admin, tenant_owner, provider, staff, client. New
  • Password policy โ€” configurable complexity, history, and expiry. New
  • reCAPTCHA v3 โ€” invisible bot protection on the contact form. New
  • IP restrictions โ€” allow/deny rules for the admin panel. New
  • Security headers โ€” X-Frame-Options, X-Content-Type-Options, Referrer-Policy, X-XSS-Protection. New
  • Activity logs โ€” every create/update/delete action recorded via Spatie Activity Log. New
  • Login activity โ€” all authentication attempts logged with IP, user agent, and outcome. New
  • Impersonation logs โ€” permanent audit trail for all super admin impersonation sessions. New

Developer

  • LaRecipe documentation โ€” built-in developer documentation at /documentation. New

Stack

Laravel 12