Search by

barbasolution / filament-knowledge-base

barbasolution

A configurable multilingual knowledge base resource and browser for Filament panels.

Package info

gitlab.com/barbasolution/filament-knowledge-base

Issues

pkg:composer/barbasolution/filament-knowledge-base

Statistics

Installs: 7

Dependents: 0

Suggesters: 0

Stars: 0

1.0.0 2026-10-08 13:13 UTC

This package is auto-updated.

Last update: 2026-10-08 11:28:22 UTC


README

A multilingual knowledge base for Filament panels by BarbaSolution. Manage rich text articles with locale tabs, tags, images, and video embeds. Users can browse published articles in a searchable help modal with clickable tag filters.

Requires Laravel 12 or 13, with a compatible PHP version (the package requires PHP 8.2+). Supports Filament 4.1+ with Livewire 3, and Filament 5 with Livewire 4.

Screenshots

Article management

Article management

Searchable help modal

Searchable help modal

Article view

Article view

Installation

Install through Composer:

composer require barbasolution/filament-knowledge-base

Publish the migration, run it, and publish the frontend assets:

php artisan vendor:publish --tag=filament-knowledge-base-migrations
php artisan migrate
php artisan filament:assets

Register the plugin in your Filament panel provider:

use BarbaSolution\FilamentKnowledgeBase\KnowledgeBasePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(KnowledgeBasePlugin::make());
}

Add the plugin to your existing panel configuration. The service provider is discovered automatically.

You can now create articles through the Knowledge Bases resource. Click the help button or press F1 to browse published articles in the current application locale.

For Laravel Sail, prefix commands with vendor/bin/sail.

Publishing files

Publish only the files you want to customize:

FilesCommandDestination
Configurationphp artisan vendor:publish --tag=filament-knowledge-base-configconfig/knowledge_base.php
Migrationsphp artisan vendor:publish --tag=filament-knowledge-base-migrationsdatabase/migrations
Translationsphp artisan vendor:publish --tag=filament-knowledge-base-translationslang/vendor/filament-knowledge-base
Viewsphp artisan vendor:publish --tag=filament-knowledge-base-viewsresources/views/vendor/filament-knowledge-base

Configuration defaults and translations work without publishing. Interface translations are included for English, Bosnian, Croatian, and Serbian Latin.

If your application already has the knowledge-base table from an earlier integration, keep its existing migrations instead of publishing another table-creation migration.

After updating the package, run php artisan filament:assets and refresh the page to load the updated CSS and JavaScript. The package ships compiled styles; no npm setup is required.

Configuration

Publish the configuration and edit config/knowledge_base.php. See the default configuration for the complete file.

OptionPurpose
modelEloquent model used for articles. Defaults to the package's KnowledgeBase model.
resourceFilament resource used to manage articles. Defaults to the package's KnowledgeBaseResource.
policyYour application's policy class for resource authorization. Defaults to null, which applies no resource authorization rules.
localesArticle languages, each with a label and optional flag. An empty list uses app.locale.
shortcutA single keyboard key to open the browser. Defaults to F1; use null to disable it.
navigation_groupSidebar group label or translation key for the resource. Defaults to null for no group.
widget.enabledShow the help button and browser. Defaults to true.
widget.componentLivewire browser component. Defaults to the package's KnowledgeBaseBrowser.
widget.render_hookPlacement of the help button. Defaults to PanelsRenderHook::GLOBAL_SEARCH_BEFORE.
widget.iconHelp button icon. Defaults to heroicon-o-book-open.
widget.labelHelp button label or translation key. Defaults to the package's translated “Open knowledge base” label.
widget.tooltip_with_shortcutInclude the shortcut in the button tooltip. Defaults to true.
attachments.diskUpload disk. Defaults to null, which uses filesystems.default.
attachments.directoryUpload directory. Defaults to knowledge-base.
attachments.visibilityAttachment visibility. Defaults to public.
attachments.max_sizeMaximum upload size in kilobytes. Defaults to 8192.
custom_blocksRich editor block classes. Includes VideoEmbedBlock for YouTube and Vimeo; use [] to remove it.

For example, configure article locales and flags:

"locales" => [
    "en" => ["label" => "English", "flag" => "images/flags/en.svg"],
    "bs" => ["label" => "Bosanski", "flag" => null],
],

Flag paths are relative to public or can be absolute URLs. Locale labels can be translation keys. Each configured locale appears in a form tab, and translations are stored as linked article rows. The browser shows published entries for the current locale without falling back to another language.

To apply your application's authorization rules:

"policy" => \App\Policies\KnowledgeBasePolicy::class,

Use BarbaSolution\FilamentKnowledgeBase\Models\KnowledgeBase in the policy's record parameters. The policy controls the management resource; the browser lists published entries for the current locale independently.

Released under the MIT license.