filament-blog
Frontend for CMS Builder to build a blog and personal websites
Extends filament
composer require tomatophp/filament-blogReadme

Filament Blog Template
Frontend for CMS Builder to build a blog and personal websites
Screenshots

Features
- Tailwind CSS Blog Template
- Blog
- Open Source projects
- Portfolios
- Services
- Contact Us
- User Dashboard
- Comments
- Likes
- SEO Friendly
- Multi Language
- Dark/Light Mode
- Social Login
- RSS Feed
- Sitemap
Compatibility
| Filament Blog | Filament | Laravel | PHP |
|---|---|---|---|
| 5.x | 5.x | 12 / 13 | 8.2+ |
| 1.x | 3.x | 10 / 11 | 8.1+ |
The frontend is built on filament-cms, filament-accounts, filament-menus, filament-seo, filament-settings-hub and filament-types (all ^5.0), they are installed with this package.
Installation
publish the media library migration (used by the CMS and accounts)
now run the install command, it runs the install commands of the packages above, migrates, publishes the frontend assets and creates the header menu
the command never overwrites your package.json, vite.config.js or resources/css/app.css. Add the blog stylesheet to your Vite input and build it
pages still render before the build, they only miss the styles.
Admin panel
register the plugin on app/Providers/Filament/AdminPanelProvider.php, it also registers the CMS, settings hub, SEO, menus and accounts plugins (a plugin you already registered on the panel keeps your own configuration)
User panel
visitors sign in to like and comment. Create a panel for them
and use the accounts guard with the blog user panel plugin (comments, likes and a stats widget)
outside the local environment Filament only lets models that implement FilamentUser into a panel, so publish the account model (php artisan vendor:publish --tag="filament-accounts-model", then set filament-accounts.model) and allow the user panel only
the accounts guard is registered by the package with the filament-accounts.model model (TomatoPHP\FilamentAccounts\Models\Account by default) when your config/auth.php does not define it, so you do not need to add it yourself. If you use another panel id, change user-panel in config/filament-blog.php.
Frontend routes
the frontend is served per locale: /en, /en/blog, /en/blog/{slug}, /en/open-source, /en/portfolios, /en/services, /en/contact and CMS pages on /en/{slug}. / redirects to the default locale.
Laravel apps ship a / route in routes/web.php and it wins over the blog redirect, so either remove it or mount the blog under a prefix
the content comes from the CMS posts: type post for the blog, open-source, portfolio, service and page; only published posts are shown.
Publish Assets
you can publish config file by use this command
you can publish views file by use this command
you can publish languages file by use this command
you can publish migrations file by use this command
you can publish the frontend css and js by use this command
Upgrading from v1
- comments now use
TomatoPHP\FilamentBlog\Models\Commenton the samecommentstable, existing comments keep working. - the
InteractsWithBlogtrait on your account model is optional now; likes and comments go throughTomatoPHP\FilamentBlog\Services\Interactions. - the stylesheet moved to
resources/css/filament-blog/app.css(Tailwind v4), see the installation steps above.
Testing
Other Filament Packages
Checkout our Awesome TomatoPHP