Package layout

This document describes the technical details of a Nyssa package.


The default layout for Nyssa package when generated by nyssa init is as follows:

  • .blade: The default Blade pacakges directory which contains installed packages and will only be available when at least one or more package is installed.
  • app: The directory contains the main application/package code.
  • examples: Examples accompanying your package goes here and may be shown to users under the Examples section of the Nyssa website.
  • index.b: The default Blade package index file.
  • The file will be contain the main documentation for your package.
    NOTE: If your packages adheres to Blade standard multiline comment documentation format as shown in the Blade standard library documentation, your package documentation may be expanded to include such documentations.
  • nyssa.json: The Nyssa package configuration script.
  • tests: This directory contains unit, integration and all types of tests for your package.


You can create a Nyssa package without having to run nyssa init. Essentially, the only files required are the index.b and the nyssa.json files and they can be manually created without losing Nyssa's ability to install, uninstall and configure packages.


The nyssa.json file is pretty intuitive and is very similar to NodeJS NPM package.json files. A typical sample of a complete nyssa.json file looks like this:

  "name": "sample", 
  "version": "0.1.0", 
  "description": "An example package", 
  "homepage": "", 
  "tags": [
  "author": "Package Author <>", 
  "license": "MIT", 
  "sources": [
  "deps": {
    "dependecny1": "1.0.0",
    "dependecny2": "1.0.0",
    "dependecny3": "1.0.0"
  "post_install": "post-install-script.b",
  "pre_uninstall": "pre-uninstall-script.b"