Skip to content

v1.4.0

Latest

Choose a tag to compare

@fwartner fwartner released this 12 Mar 09:40
· 3 commits to main since this release

What's New

Extensible Plugin System

  • Project type registry — add new project types by implementing a single Go file with init() self-registration
  • External plugins — third parties can add types, commands, and hooks via ~/.pnp/plugins/ with a simple plugin.yaml manifest
  • Plugin protocol — stdin/stdout JSON communication for type detection, templates, Dockerfiles, and scaffolding
  • Pre/post-deploy hooks — plugins can hook into the deploy lifecycle

Project Scaffolding

  • pnp new <type> <name> — scaffold a complete project with directory structure, .cluster.yaml, Dockerfile, and CI workflow in one command
  • Supports all built-in types: laravel-web, laravel-api, nextjs-fullstack, nextjs-static, strapi

Scope-Prefixed Naming

  • Projects automatically get scope-prefixed names (e.g. agency-my-app, customer-acme-corp)
  • Smart detection prevents double-prefixing; backwards compatible with existing configs

Internal Improvements

  • Refactored all type-specific logic from monolithic switch/case blocks into self-contained type files
  • Removed ~950 lines of duplicated template/Dockerfile constants from shared files
  • Registry-based architecture makes adding new types trivial