PHPackages                             ajaydhakal/filament-story - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. ajaydhakal/filament-story

ActiveLibrary[Admin Panels](/categories/admin)

ajaydhakal/filament-story
=========================

All in one Blog CMS Filament Plugin!

v1.1(2w ago)018↑66.7%MITPHPPHP ^8.3

Since May 25Pushed 2w agoCompare

[ Source](https://github.com/ajaydhakal1/filament-story)[ Packagist](https://packagist.org/packages/ajaydhakal/filament-story)[ RSS](/packages/ajaydhakal-filament-story/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (4)Versions (3)Used By (0)

Filament Story
==============

[](#filament-story)

All-in-one blog CMS plugin for Filament. It adds blog post management, blog categories, frontend blog pages, API endpoints, and optional AI-assisted blog content generation.

Features
--------

[](#features)

- Filament blog post resource
- Blog categories and tags
- Featured image upload
- Draft and published status
- Scheduled publishing
- Frontend blog listing, category, and detail pages
- API endpoints for posts
- SEO fields for title, description, and keywords
- Optional AI generation for title, slug, content, excerpt, and SEO metadata

Requirements
------------

[](#requirements)

- PHP 8.3 or higher
- Laravel 12 or 13
- Filament 5.3 or higher

Installation
------------

[](#installation)

Install the package with Composer:

```
composer require ajaydhakal/filament-story
```

Run the installer:

```
php artisan filament-story:install
```

The installer will:

- Check whether Filament is installed
- Offer to install Filament if it is missing
- Detect available Filament panels
- Ask which panel should display the blog resource when multiple panels exist
- Register the package plugin in the selected panel
- Publish the package config
- Publish and optionally run migrations
- Ask whether frontend pages, API routes, and AI features should be enabled
- Install Laravel API scaffolding and Sanctum when API routes are enabled

Manual Panel Registration
-------------------------

[](#manual-panel-registration)

If you prefer to register the plugin manually, add it to your Filament panel provider:

```
use AjayDhakal\FilamentStory\FilamentStoryPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FilamentStoryPlugin::make());
}
```

Publishing
----------

[](#publishing)

Publish the config:

```
php artisan vendor:publish --tag=filament-story-config
```

Publish migrations:

```
php artisan vendor:publish --tag=filament-story-migrations
```

Run migrations:

```
php artisan migrate
```

Configuration
-------------

[](#configuration)

The config file is published to `config/filament-story.php`.

```
return [
    'panel_id' => null,
    'ai_enabled' => true,
    'ai_provider' => env('FILAMENT_STORY_AI_PROVIDER', 'openrouter'),
    'ai_model' => env('FILAMENT_STORY_AI_MODEL', 'openai/gpt-4o'),
    'ai_api_key' => env('FILAMENT_STORY_AI_API_KEY'),
    'ai_generation_timeout' => env('FILAMENT_STORY_AI_GENERATION_TIMEOUT', 180),
    'frontend_enabled' => true,
    'api_enabled' => true,
    'routes_prefix' => 'blogs',
    'pagination' => 10,
];
```

AI Generation
-------------

[](#ai-generation)

Filament Story uses the official Laravel AI SDK. Add your provider settings to `.env`:

```
FILAMENT_STORY_AI_PROVIDER=openrouter
FILAMENT_STORY_AI_MODEL=openai/gpt-4o
FILAMENT_STORY_AI_API_KEY=your-api-key
FILAMENT_STORY_AI_GENERATION_TIMEOUT=180
```

In the blog post form, click **Generate with AI** near the content editor. If the title is empty, the modal asks for a blog idea and generates the title and slug too.

The AI generator fills:

- Title
- Slug
- Content
- Excerpt
- SEO title
- SEO description
- SEO keywords

Scheduled Publishing
--------------------

[](#scheduled-publishing)

Set a post status to `Scheduled` and choose a publish date/time. Filament Story registers a scheduler task that runs every minute and publishes due posts automatically.

Due scheduled posts are also checked during normal web/API requests, so local development still works even when the scheduler is not running continuously.

Make sure the Laravel scheduler is running in production:

```
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
```

You can also run the publish command manually:

```
php artisan filament-story:publish-scheduled
```

Frontend Routes
---------------

[](#frontend-routes)

When `frontend_enabled` is true, the package registers frontend routes using `routes_prefix`.

Default routes:

```
/blogs
/blogs/{slug}
/blogs/category/{category}

```

If you change `routes_prefix`, these URLs change accordingly.

API Routes
----------

[](#api-routes)

When `api_enabled` is true, the package registers:

```
GET /api/posts
GET /api/posts/{slug}

```

License
-------

[](#license)

The MIT License.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance97

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

15d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/375e4fe320bda82f873fbad3ffb77f2faea3121689307b364792d9cad89d2ad0?d=identicon)[mr-ajay](/maintainers/mr-ajay)

---

Top Contributors

[![ajaydhakal1](https://avatars.githubusercontent.com/u/131642635?v=4)](https://github.com/ajaydhakal1 "ajaydhakal1 (10 commits)")

### Embed Badge

![Health badge](/badges/ajaydhakal-filament-story/health.svg)

```
[![Health](https://phpackages.com/badges/ajaydhakal-filament-story/health.svg)](https://phpackages.com/packages/ajaydhakal-filament-story)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.1k2.2k](/packages/unopim-unopim)[awcodes/filament-quick-create

Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items.

249203.6k11](/packages/awcodes-filament-quick-create)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3913.7k](/packages/rawilk-profile-filament-plugin)[guava/filament-knowledge-base

A filament plugin that adds a knowledge base and help to your filament panel(s).

207140.2k1](/packages/guava-filament-knowledge-base)[mradder/filament-logger

Audit logging, activity tracking, exports, alerts, and dashboards for Filament admin panels.

2210.5k](/packages/mradder-filament-logger)[a2insights/filament-saas

Filament Saas for A2Insights

171.5k](/packages/a2insights-filament-saas)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
