miran/mksine
MKSine is a Laravel + Filament CMS foundation for content sites: a drag-and-drop page builder, installable plugins with lifecycle management, themes, menus, hooks, and settings. It feels native to Filament, so you skip hand-rolling pages, blocks, and plugins.
morph_commentable_on_comments_table now drops the comments_post_id_status_index index before removing post_id, fixing General error: 1 error in index comments_post_id_status_index after drop column: no such column: post_id on DB_CONNECTION=sqlite (MySQL/MariaDB installs were unaffected).theme.json supports requires.plugins; ThemeDependencyChecker resolves missing plugins; EnsureActiveThemeDependencies middleware shows a storefront warning page (HTTP 503) instead of runtime view errors when required plugins are inactive.mksine theme shows a skeleton placeholder index on empty sites until a Front Page is configured in Settings → Permalinks (marketing blocks remain available via the page builder template only).mksine theme home — home.blade.php includes only the placeholder partial instead of the full marketing landing on an empty database.lang and dir follow config('app.locale') (RTL for fa, ar, ku, he)./ route from routes/web.php; troubleshooting and validation checklist updated.AdminNavigationGroup enum — locale-stable group identity (HasLabel + HasIcon) so group icons survive UI locale changes.en / fa / ku).AdminNavigationGroup (via AdminSidebarNavigation::case()) from getNavigationGroup() instead of translated strings.AdminSidebarNavigation::panelGroups() registers groups with Closure labels resolved at render time.> LTR / < RTL) without Unicode bidi mirroring.AdminNavigationGroup / AdminSidebarNavigation::case().npm run build:styles in the package when developing from source, then php artisan filament:assets).{form}.before.{anchor}, {form}.after.{anchor}, {form}.replace.{anchor} (replace returning null / [] hides the component).FormHookManager::extendSlot(), FormSlotApplicator, and Hooks::beforeFormComponent() / afterFormComponent() / replaceFormComponent().FormSlotHookListenerInterface (hook_type = form_slot via mks:discover).media.form, menu_location.form, and geo_state.form.->key() anchors and Media disk_create / disk_edit component keys for slot targeting.extend() callbacks still run first; slot hooks apply afterward while walking the schema tree.filament/filament constraint is now ^4.0|^5.0. Filament 5 hosts resolve Livewire 4 automatically.Livewire::addNamespace('mksine', …) with a missing-component fallback for page-builder classes under Core\PageBuilder\Livewire.config/livewire.php stub aligned with Livewire 4 (component_layout, component_placeholder).#[On] instead of $listeners.wire:model.live for Livewire 4-friendly binding.setRating() instead of wire:click="$set(...)" (broken under Livewire 4).MenuBuilder no longer implements leftover HasForms (Action schemas only).onEachSide(1) (e.g. ‹ 1 2 … 56 › instead of listing every page). Modal-themed styling, dark mode, and RTL chevrons. Replaces the default Livewire Tailwind view that duplicated Previous/Next controls.docs/assets/filament/ for marketplace documentation.frontend_admin_bar.items and FrontendAdminBarItem (links and dropdowns). Feature flag: mksine.features.frontend_admin_bar (env MKS_CMS_FRONTEND_ADMIN_BAR). Themes must call [@themeDoAction](https://github.com/themeDoAction)('layout.body_start') in layouts.[tag] processing in rich text via mks_render_content(). Built-in tags: [year], [site_name]. Plugins register with Hooks::addShortcode() (optional ShortcodeCatalogEntry for the admin picker) or Hooks::addLivewireShortcode() for interactive Livewire widgets. Helpers: mks_strip_shortcodes(), mks_shortcode_context(). Filters: mksine.content.before_shortcodes, mksine.content.after_shortcodes, mksine.shortcode.{tag}, mksine.shortcodes.admin_catalog.ShortcodeRegistry::adminCatalog().mksine.shortcodes.cache.enabled, ttl, store (env MKS_CMS_SHORTCODES_CACHE, _TTL, _STORE). Skipped for Livewire shortcodes and during unit tests.StorefrontUrl; ecom.shop when registered, otherwise home).single, page) and page-builder render views (text, tabs, accordion) call mks_render_content() instead of raw HTML output.ThemeMakeCommand scaffolds include [@themeDoAction](https://github.com/themeDoAction)('layout.body_start') for admin bar compatibility.RunGeoImportJob orchestrates countries/states and batches ImportGeoCitiesCountryJob per country; progress logged to storage/logs/mksine-geo-import/geo-import-{runId}.log and Laravel log.mks:geo:import --sync — run import synchronously (previous default behaviour).mksine.geo_import.* config — queue_connection, queue_name, job_timeout, memory_limit.mks:geo:import dispatches to the queue by default; cities are imported one country per job to limit memory use.sync:mksine-tailwind on Composer installs — bin/build-styles.js no longer fails when package.json is missing from the vendor tree; skips gracefully when pre-built resources/dist/mksine.css is present. package.json is now included in Composer dist archives for optional npm install + full rebuilds.npm run build on Composer installs — sync:mksine-tailwind and sync:filament-assets now resolve vendor/miran/mksine instead of the monorepo-only packages/mksine path. Added bin/build-styles.js for cross-platform Windows support.packageRegistered), default temp disk to local, use mimes:zip instead of strict mimetypes (Windows-friendly), and rediscover plugins after a successful upload.config('mksine.plugins_path') instead of only showing a notification.PluginDiscovery honours mksine.plugins_path and scans any non-vendor plugin root directory (not only a folder literally named plugins).mksine:install publishes storefront theme assets — runs mks:theme-publish so package themes (e.g. mksine) copy dist/ and images/ to public/vendor/mksine/themes/{id}/. Fixes unstyled homepage with 404s on app.css, custom.css, and theme images after Composer install.sync:mksine-tailwind on Composer vendor installs — skip rebuilding admin CSS under vendor/miran/mksine (Filament import paths differ from the monorepo); use shipped resources/dist/mksine.css instead. Full rebuild remains for packages/mksine development only.How can I help you explore Laravel packages today?