Create your own package Last updated: 17. Oct 2026

Build a reusable package — schemas, templates, code and content bundled into a workspace folder that can be installed into other workspaces.

What a package is

A package is a workspace folder whose properties use the Docly Package schema. Its contents — schemas, templates, code, libs, services, content — are what other workspaces get when they add the package.

There is no separate manifest file. The package metadata lives in the folder's properties (its .docly file), and the rest of the folder is the payload.

Step 1: Create a package workspace

  1. Create a new workspace for your package — keep packages separate from your application workspaces so the contents stay clean

  2. Install the Developer Tools package so you can edit schemas and code

  3. Open the workspace folder properties and switch its schema to Docly Package

The folder now exposes the package metadata fields described below.

Step 2: Fill in the metadata

  • Title — display name shown in package lists

  • Version — semantic version x.y.z. Required and validated when releasing.

  • Description — one-line summary of what the package provides

  • Homepage — optional URL for documentation or marketing site

  • License — optional

  • Dependencies — other packages this one needs. Docly shows the list but does not install them, so tell your users which packages to add.

  • Developers — flag the package as developer-only (hidden from non-developer package lists). Use for tooling like Docly Package Releaser.

Step 3: Add content

Anything you put in the package folder becomes part of the package. Use the standard Docly conventions:

  • Schemas/ — schema definitions (Documents & Schemas)

  • #/ — server-side code, APIs and templates (API & Services, Templates & Rendering)

  • Libs/ — shared JavaScript libraries imported by your code

  • Services/ — scheduled tasks and event handlers

  • Root/ — static assets exposed under /

  • Top-level .hash files — display templates and master pages

Docly does not copy these files into the target workspace at the same paths:

  • Added from the package list, the package is a reference. Nothing is copied. When a schema or template name is not found in the workspace itself, Docly looks for it in the workspace's packages, in the order they are listed.

  • Installed from an address (see Publishing a package), the release ZIP is unpacked under #/<encoded package address>/ in the workspace. Files that already exist there are overwritten as new versions.

Design your code with that in mind — avoid paths that assume the package's own folder layout.

Step 4: Test it locally

Before releasing, verify the package works in a clean target workspace:

  1. Create an empty test workspace

  2. Install your package

  3. Verify schemas, templates and code resolve as expected — pay attention to anything referencing absolute paths

Packages can only be added to a workspace root, and only by a user with admin access to that workspace.

Next: publish it

Once your package works end to end, publish a release so it can be installed elsewhere. See Publishing a package.