Skip to content
PN Scripts

CMS

PN Scripts Press

A Laravel CMS with WordPress-style plugins and themes. Pages are built from blocks, menus nest, images come from a media library, and plugins and themes install from a .zip in the admin.

  • Laravel 13
  • Filament 5
  • Livewire 4
  • Spatie Permission
  • Tailwind CSS 4
  • Free
  • Open source

Source code on GitHub under the MIT license. PN Scripts can adapt it for your project.

Get it on

PN Scripts Press public blog: the Latest posts page with category filters and a featured post with its cover.

What it solves

The gap

A Laravel site that needs editable pages usually ends up with a hand-built admin, or with WordPress next to the application. Neither gives a Laravel team pages, menus, media and add-ons in one codebase they already know.

What it is

One Laravel application with a Filament admin at /admin: block pages with revisions, a blog, nested menus, a media library, SEO fields, roles, and plugins and themes that install from a .zip.

How you use it

Install it, sign in at /admin, build a page from blocks and put it in a menu. Add a plugin or switch the theme from the same admin.

PN Scripts Press is source code you install on your own server. It runs one site, has no plugin directory and never downloads code by itself: you choose every plugin and theme it runs.

Who it is for

Use it when

  • A company site with pages, a blog and a contact form that editors run themselves.
  • A Laravel project that needs CMS pages and add-ons without running WordPress beside it.

Built for

  • Laravel developers who want a CMS they can extend with plugins and themes in PHP and Blade.
  • Teams that know WordPress and want the same plugin and theme model in a Laravel codebase.

Main features

Pages from blocks, with revisions

Hero, text, image, feature list, quote, call to action and latest posts blocks, and plugins add more. Child pages, drafts, scheduled publishing, a template per page and a chosen home page. Every save keeps the previous version, and the last 25 can be restored.

Menus, media and SEO

Main and footer menus nest three levels deep and work by keyboard and without JavaScript. The media library keeps images and PDFs with alt text and captions, and image blocks pick from it with search and thumbnails. Pages carry a meta title, description, social image and a "hide from search engines" switch.

Plugins, as in WordPress

Install a plugin from a .zip or a folder, then activate, deactivate or uninstall it. A plugin brings its own migrations, routes, views and admin screens, and hooks in with add_action, do_action, add_filter and apply_filters. Included: Contact Form, with a Messages inbox and CSV export, and SEO Sitemap.

Themes, with preview and settings

Install a theme from a .zip, preview it before activating it, and edit its colours and options in the admin. Two themes are included: Folio, the default, and Nocturne, a dark one. The admin and the default site use PN Scripts Press's own design.

Roles and upload checks

Admin and editor roles with capabilities such as manage plugins and manage themes. Every uploaded .zip is checked for size, file count, compression ratio, unsafe paths, symlinks, hidden files and file types before anything is written. Uploads can be turned off so packages install only over SSH.

Specs

Vendor
PN Scripts
Type
Software
Platforms
Filament, Laravel
Pricing
Free
License
MIT
Deployment
Self-hosted
Maturity
v1.0.0, released 2026-10-14
Support
Community

Stack

  • Laravel 13
  • Filament 5
  • Livewire 4
  • Spatie Permission
  • Tailwind CSS 4

Get PN Scripts Press

Free and open source under the MIT license, on GitHub and Packagist. PN Scripts can adapt it for your project.

Source code on GitHub under the MIT license. PN Scripts can adapt it for your project.

Questions

PHP 8.4 or newer with the zip extension, Composer, and Node 18+ with npm for the Vite and Tailwind build. SQLite works by default; MySQL and PostgreSQL work if you change .env.

A plugin is a folder with a plugin.json, its own namespace and a Laravel service provider; a theme is a folder with a theme.json whose views replace the default ones. Both install from a .zip in the admin or with the press:plugin and press:theme commands. The repository has a guide for writing each.

Uploads are checked before anything is written, only users allowed to manage plugins or themes can install them, and nothing is downloaded from the internet. A plugin still runs with full access to your site, so install only code you trust.

Comments, multi-tenancy, multilingual content, a plugin or theme directory, automatic updates and remote installs.

At /admin in Filament. Only users with the admin or editor role can open the panel. Change the seeded admin login before you deploy it anywhere.

Yes. Version 1.0.0 is MIT-licensed, on GitHub and on Packagist as pnscripts/pn-press.