nuzkito/pluma

Markdown powered static site generator with a built-in web editor

Maintainers

Package info

github.com/nuzkito/pluma

pkg:composer/nuzkito/pluma

Transparency log

Statistics

Installs: 52

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.5.0 2026-05-27 04:02 UTC

This package is auto-updated.

Last update: 2026-07-19 19:29:56 UTC


README

Pluma is a static‑site generator that converts Markdown files into a fully‑static HTML website.

It ships with a built‑in web editor, auto‑save, RSS feed generation, customizable templates, and a live preview during development.

Features

  • Markdown editor with autosave
  • RSS feed creation
  • Fully customizable HTML templates
  • Live preview while you write

Requirements

  • PHP 8.4 or newer

Installation

Install Pluma globally via Composer:

composer global require nuzkito/pluma

Make sure the Composer global vendor/bin directory is in your system’s PATH, so you can run the pluma command from any terminal.

Getting started

Create a new site

Navigate to an empty directory and run:

pluma new

This scaffolds a fresh project, creating directories for content, templates, assets, etc., along with example files.

Build the site

Once the scaffold is in place, generate the static website:

pluma generate

The output will be placed in a site/ folder.

You can run this command as part of your CI/CD pipeline to build and deploy the site automatically.

Development server & editor

To edit pages via the web interface, start the local development server:

pluma serve

By default, urls are:

You can config urls and ports in config.php file.

Any changes you make to pages with the editor are automatically rebuilt and reflected in the preview.

Local development with Docker

To try Pluma while developing it, run:

docker compose up --build

This scaffolds a test site with pluma new inside the container and starts pluma serve:

The repository is bind-mounted into the container, so code changes are picked up on the next request. Frontend changes require npm run build (or a running npm run dev) on the host.

The test site lives only inside the container: it survives docker compose stop/start and is reset to a fresh scaffold when the container is recreated (e.g. after --build or --force-recreate).