bambamboole/filament-blog

A blog package for Filament, built on top of filament-pages with blocks, SEO, tags, and RSS feed support

Maintainers

Package info

github.com/bambamboole/filament-blog

pkg:composer/bambamboole/filament-blog

Fund package maintenance!

bambamboole

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 2

0.1.0 2026-03-29 14:29 UTC

README

A blog package for Filament, built on top of filament-pages. Posts are block-based content with SEO, tags, RSS feeds, and live preview out of the box.

Requirements

Installation

composer require bambamboole/filament-blog

Publish and run the migrations:

php artisan vendor:publish --tag="filament-blog-migrations"
php artisan migrate

Optionally publish the config:

php artisan vendor:publish --tag="filament-blog-config"

Setup

Register the plugin in your Filament panel provider:

use Bambamboole\FilamentBlog\FilamentBlogPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            FilamentBlogPlugin::make(),
        ]);
}

Register the frontend routes in routes/web.php:

use Bambamboole\FilamentBlog\Facades\FilamentBlog;

FilamentBlog::routes();

Configuration

Set your application's layout so blog views inherit your site's header, footer, and styles:

// config/filament-blog.php
'layout' => 'layouts.app',

Other configuration options:

Option Default Description
model Post::class Override with a custom Post model
tag_model Tag::class Override with a custom Tag model
layout null Blade layout the blog views extend
routing.prefix blog URL prefix for blog routes
routing.tag_prefix tags URL prefix for tag routes
pagination.per_page 10 Posts per page
feed.enabled true Enable RSS/Atom feed
cache.enabled false Enable response caching

Plugin Options

FilamentBlogPlugin::make()
    ->navigationGroup('Content')
    ->navigationIcon('heroicon-o-document-text')
    ->navigationSort(1);

Importing Posts

Posts can be imported from YAML files using the filament-pages import command:

php artisan filament-pages:import --type=post --path=resources/posts

YAML format:

title: My Post Title
slug: my-post-title
published_at: '2026-01-15 00:00:00'
excerpt: A brief summary of the post.
blocks:
  -
    type: markdown
    content: |
      The post content in markdown.

Testing

composer test

License

The MIT License (MIT). Please see License File for more information.