New "SEO" tabs on products, categories and custom pages. Empty fields use values generated from the page.
New "SEO Editor" settings page for the remaining pages, plus templates for product, category, vendor and custom pages with placeholders like {product_name}.
New "SEO Defaults" settings page for the home page, store-wide defaults, search engine verification and a switch to hide the whole store from search engines.
Every page has JSON-LD structured data, including price, availability and ratings on product pages.
Filtered catalog pages, hidden or disabled products and account pages are no longer indexed.
The sitemap skips non-indexed pages and now includes custom pages, vendor stores and product images.
Every page has exactly one H1 heading. The site name in the navigation bar, the cookie banner, product cards, the product page's reviews and versions sections and the home page's reviews section no longer use H1, while sign in, sign up and the other account pages, and vendor stores, now have one.
Every image has an alt text. Decorative images or images that repeat text have an empty alt attribute.
Creator Panel
New "Analytics" page under Dashboard with detailed store analytics: revenue, orders, average order value, units sold, impressions, add to cart and conversion rates, compared to the previous period. It also shows charts of the revenue, traffic (impressions, add to cart clicks, sales & downloads) and revenue by country. The range can be any preset or a custom date range and/or narrowed to a single product.
Admin Panel
New "What's new" modal appears in the admin panel upon upgrading to a newer Light Store version, showing an excerpt of what has changed, and what new features have been added.
Added a Maintenance mode. Maintenance can be configured to always on, or password-protected. During maintenance, admins can still view the page and log in.
Added shortcut links to the admin header for the theme manager and settings.
Changed "Translations" manager page icon to be more intuative.
Several configuration related pages have been moved into one "Settings" page, with subpages (Filament clusters) to access them.
Products
The "Details" tab is now split to allow easier access to the "Features" and "Custom Links" fields. On large displays, this also means the description is more accurately sized to show how it's displayed on the product page.
Stores
Members of a store can always access the creator panel, even when "Allow normal users to create shops" is turned off.
Admins can pick a store's owner when creating or editing it in the admin panel. A previous owner stays in the store as a Team Manager.
New "Can create stores" toggle on a user's admin page lets that user open stores while "Allow normal users to create shops" is turned off.
Theming
New "Logo Shape" setting under Branding in the theme manager. "Original" shows wide logos as uploaded without rounded corners, sized by height in the navigation bar and scaled down to fit on mobile.
Page titles and meta tags now come from the SEO settings. In custom themes, a page that sets @section('title') keeps that title over the admin panel's.
The site-logo and user-avatar components accept an alt prop, and version rows carry a changelog with alt texts filled in for custom themes to render instead of $row->version->changelog.
Addons
php artisan addon:create refuses an identifier that another addon already uses, instead of scaffolding a second addon that clashes with it.
Helpdesk addon requires v27.2.0.
Storefront
The mobile nav now slides out from the right as a drawer, instead from the top.
The top bar now offers options to change the background color in light mode individually. Text color is now also editable.
Fixed lack of inherited text color contrast in custom pages on light mode.
Theme Manager
The theme manager has categories, instead of showing all options in a continuous list. This change applies automatically for existing 3rd party themes, and nothing needs migrating.
Installer
While installing / upgrading, the store is now pulled as a Docker image directly, from an OCI registry, instead of downloading the full tarball (.tar.gz packed image file) each time and docker load-ing it. This should drastically improve performance, and in certain cases reduce the download size, since only required layers of an image are now downloaded.
The .tar.gz files are no longer left over. Instead, you may list the downloaded image with docker image ls, and prune it if need be.