Isha Labs Support

Changelog

Updated Oct 18, 2026

All notable changes to Slotara are documented here. Versioning follows Semantic Versioning — MAJOR.MINOR.PATCH.

  • 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.0 — Add-on Modules, Free Invoices & In-Panel Licensing {#v180}

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 {#v171}

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

Note: 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 {#v170}

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/.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 {#v160}

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 {#v150}

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 {#v140}

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 {#v130}

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 {#v120}

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 {#v110}

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 {#v100}

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 Filament 5 Livewire 3 Alpine.js Tailwind CSS PHP 8.2+ MySQL 8+