jeffersongoncalves / editorialthemev3
EditorialTheme starter kit built on Laravel 13.x and Filament 3.x with a ready-to-use multi-panel structure.
Package info
github.com/jeffersongoncalves/editorialthemev3
Type:project
pkg:composer/jeffersongoncalves/editorialthemev3
Requires
- php: ^8.3
- achyutn/filament-log-viewer: ^0.5
- dutchcodingcompany/filament-developer-logins: ^1.10
- filament/filament: ^3.3
- jeffersongoncalves/filament-additional-information: ^1.0
- jeffersongoncalves/filament-admin: ^1.0
- jeffersongoncalves/filament-editorial-theme: ^1.4
- jeffersongoncalves/filament-logo: ^1.0
- jeffersongoncalves/filament-pwa: ^1.0
- jeffersongoncalves/filament-sensible-defaults: ^1.0
- jeffersongoncalves/filament-user: ^1.0
- joaopaulolndev/filament-edit-profile: *
- laravel/framework: ^13.0
- laravel/tinker: ^3.0.0
- livewire/livewire: ^3.6
Requires (Dev)
- barryvdh/laravel-debugbar: ^4.0
- barryvdh/laravel-ide-helper: ^3.5
- fakerphp/faker: ^1.23
- larastan/larastan: ^3.2
- laravel/pail: ^1.1
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.1
- pestphp/pest: ^4.4
- pestphp/pest-plugin-laravel: ^4.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
EditorialTheme Start Kit Filament 3.x and Laravel 13.x
About EditorialTheme
EditorialTheme is a robust starter kit built on Laravel 13.x and Filament 3.x, designed to accelerate the development of modern web applications with a ready-to-use multi-panel structure, styled with the Editorial Terminal theme: paper + terminal aesthetic, Fraunces / DM Sans / JetBrains Mono typography, amber palette, light and dark schemes and a terminal-style login.
Features
- Laravel 13.x - The latest version of the most elegant PHP framework
- Filament 3.x - Powerful and flexible admin framework
- Multi-Panel Structure - Includes three pre-configured panels:
- Admin Panel (
/admin) - For system administrators - App Panel (
/app) - For authenticated application users - Public Panel (frontend interface) - For visitors
- Admin Panel (
- Editorial Terminal Theme -
jeffersongoncalves/filament-editorial-themeon every panel, with the terminal login (and its light/dark toggle) on the Admin and App panels - Environment Configuration - Centralized configuration through the
config/editorialtheme.phpfile
System Requirements
- PHP 8.2 or higher
- Composer
- Node.js and PNPM
Installation
Clone the repository
laravel new my-app --using=jeffersongoncalves/editorialthemev3 --database=mysql
Using FilaKit CLI
Or use FilaKit CLI for a simplified setup:
filakit new my-app --kit=jeffersongoncalves/editorialthemev3
Install FilaKit CLI:
composer global require jeffersongoncalves/filakit-cli
Easy Installation
EditorialTheme can be easily installed using the following command:
php install.php
This command automates the installation process by:
- Installing Composer dependencies
- Setting up the environment file
- Generating application key
- Setting up the database
- Running migrations
- Installing Node.js dependencies
- Building assets
- Configuring Herd (if used)
Manual Installation
Install JavaScript dependencies
pnpm install
Install Composer dependencies
composer install
Set up environment
cp .env.example .env php artisan key:generate
Configure your database in the .env file
Run migrations
php artisan migrate
Build frontend assets
pnpm run build
Run the server
php artisan serve
Installation with Docker
Clone the repository
laravel new my-app --using=jeffersongoncalves/editorialthemev3 --database=mysql
Move into the project directory
cd my-app
Install Composer dependencies
composer install
Set up environment
cp .env.example .env
Configuring custom ports may be necessary if you have other services running on the same ports.
# Application Port (ex: 8080) APP_PORT=8080 # MySQL Port (ex: 3306) FORWARD_DB_PORT=3306 # Redis Port (ex: 6379) FORWARD_REDIS_PORT=6379 # Mailpit Port (ex: 1025) FORWARD_MAILPIT_PORT=1025
Start the Sail containers
./vendor/bin/sail up -d
You won’t need to run php artisan serve, as Laravel Sail automatically handles the development server within the container.
Attach to the application container
./vendor/bin/sail shell
Generate the application key
php artisan key:generate
Install JavaScript dependencies
pnpm install
Editorial Terminal Theme — jeffersongoncalves/filament-editorial-theme
All three panels use jeffersongoncalves/filament-editorial-theme:
EditorialThemePlugin::make()is registered in each panel provider (the App panel keeps its green accent via->primaryColor(Color::Green)).- Each panel's
resources/css/filament/{panel}/theme.cssimports Filament's theme, then the editorial theme, and itstailwind.config.jsincludes the theme's views incontentso Tailwind keeps the utilities its partials use. - The Admin and App logins (
app/Filament/{Admin,App}/Pages/Auth/Login.php) extend thefilament-admin/filament-userlogins — so inactive accounts are still rejected — and only swap in the theme's terminal view, with a light/dark toggle next to the clock.
Customize it from the plugin (footer, sidebar status, fonts, paper grain…) or by overriding the theme's CSS tokens below the
@import in each panel's theme.css — see the theme's README.
Authentication Structure
EditorialTheme comes pre-configured with a custom authentication system that supports different types of users:
Admin- For administrative panel accessUser- For application panel access
Development
# Run the development server with logs, queues and asset compilation composer dev # Or run each component separately php artisan serve php artisan queue:listen --tries=1 pnpm run dev
Customization
Panel Configuration
Panels can be customized through their respective providers:
app/Providers/Filament/AdminPanelProvider.phpapp/Providers/Filament/AppPanelProvider.phpapp/Providers/Filament/PublicPanelProvider.php
Alternatively, these settings are also consolidated in the config/editorialtheme.php file for easier management.
Themes and Colors
Each panel can have its own color scheme, which can be easily modified in the corresponding Provider files or in the
editorialtheme.php configuration file.
Configuration File
The config/editorialtheme.php file centralizes the configuration of the starter kit, including:
- Panel routes
- Middleware for each panel
- Branding options (logo, colors)
- Authentication guards
Developer Logins — dutchcodingcompany/filament-developer-logins
Quick-login buttons are enabled on the Admin and App panels for local development. The list is built dynamically from the database, restricted to active records (status = true).
- Admin panel (
app/Providers/Filament/AdminPanelProvider.php): pulls fromApp\Models\Admin. - App panel (
app/Providers/Filament/AppPanelProvider.php): pulls fromApp\Models\User. - Both panels are gated by
app()->environment('local'), so the buttons never appear in staging/production.
To change the column shown on the buttons, edit the ->users(...) closure in each provider (for example, swap pluck('email', 'name') for pluck('email', 'email')).
Reference
- Plugin repository: https://github.com/DutchCodingCompany/filament-developer-logins
Resources
EditorialTheme includes support for:
- User and admin management
- Multi-guard authentication system
- Tailwind CSS integration
- Database queue configuration
- Customizable panel routing and branding
License
This project is licensed under the MIT License.
Security headers
Every panel response carries baseline security headers from laravel-security-headers (the SecurityHeaders middleware is the first entry in each panel's ->middleware([...])):
X-Content-Type-Options: nosniff,X-Frame-Options: SAMEORIGIN,Referrer-Policy: strict-origin-when-cross-origin,Permissions-Policy,Cross-Origin-Opener-PolicyStrict-Transport-Securityover HTTPS outside thelocalenvironment (configuretrustProxiesbehind a TLS-terminating proxy)- a
Content-Security-Policythat keeps scripts, styles, fonts, frames and form posts first-party. Filament needs'unsafe-inline'and'unsafe-eval'inscript-src, so it is not an XSS defence — escape and sanitize anything user-supplied. The CSP is disabled inlocalso the Vite dev server works.
Defaults live in config/security-headers.php. Admins can change them at runtime in Settings → Security headers (filament-security-headers); saved values override the config, and Reset to config goes back. Allow any third-party origin you add (analytics, chat widgets, CDNs) in the matching directive, and try a stricter policy with report-only first.
Credits
Developed by Jefferson Gonçalves.
