Docly Developers
DocsUpdated 23 Oct 2026

About schemas

All Docly documents refer a document schema. The schema defines the structure and editor for a document. There are builtin schemas and you can create custom schemas.

Schemas in a document database

In Docly (a NoSQL database) you create document schemas that provide the fields and structure of your different type of documents. It is similar to defining what columns and column types you have in a table in a SQL relational database. But it is not as strict and it allows a structure of data and not only a table. Also if you change a schema the existing documents are not automatically changed.

The editor to add and edit documents are also generated from the document schema in Docly. So you easily can provide possibility to add and edit data to your users. You can also code this yourself if you prefer that to the built-in features.

Document schemas can have a structure and contain arrays of data and structures recursively which makes it possible and easy to keep much larger and more complex data structures within one document than you would in one SQL database row.

When to create a new schema

Before designing a new schema, decide whether you actually need one. Custom schemas are powerful, but every additional schema adds maintenance — fields to keep in sync, editors to test, templates to update. The criteria below help separate cases where a new schema earns its keep from cases where an existing one will serve you better.

Create a new schema when:

  • Your documents have a distinct field structure that no existing schema captures

  • You need a dedicated editing UI for a specific content type

  • You want your own display template that renders these documents differently from anything builtin

  • You are building a reusable package that ships schema + template together

Reuse an existing schema when:

  • The content fits a schema you already have in the workspace or in a package — on this site, for example, Documentation.5 for help pages, KB article for knowledge-base entries and Docly function for function references

  • You only need a new display template — schemas can be shared across folders, and templates are scoped per folder

  • You are adding metadata fields to an existing content type — consider extending the existing schema rather than forking a new one

For the practical how-to, see Create schemas for step-by-step instructions and Example schemas for working starting points you can adapt.

Creating custom schemas

Users with granted developer access can create their own document schemas in Docly.

A schema consists of the following components:

  • HTML form - the form fields and structure

  • JavaScript - validation, user feedback and other logic

  • CSS - you can style your form either with inline styles or provide CSS separately

  • Templates - HTML, XLSX or DOCX documents that merge data from your documents into a visual representation (HTML, PDF, DOCX, XLSX or any other text format)

You can either code the entire HTML form by hand or use the Docly Schema designer, which allows you to drag and drop components and fields into your document schema.

Document schemas and data their documents store can be used to generate output files or web content, databases or configuration.

Secure form. Tick Secure form on a schema to open its documents under a strict Content-Security-Policy (no inline scripts, no eval). The form's built-in behaviour keeps working, but the schema cannot have code of its own: the save is refused, naming the fields to clear, while the JavaScript events, custom functions or external references are filled in. Folder properties always open as Secure forms.

Folder and Document schemas

Choose "Use this schema for" Documents or Folders to specify whether this schema applies to documents or folders.

Which schema is used

A document refers to its schema by name. When more than one schema has that name, Docly picks one like this:

  1. Nearest wins. Docly searches from the folder the document is in and upwards. At each level the whole folder, subfolders included, is searched, and the first level with a match wins.

  2. Oldest wins within a level. If one level has more than one match, the schema that was created first wins — a copy never takes over the name from the schema that was already there.

  3. Packages last. If nothing in the workspace matches, the workspace's packages are searched in the order they are listed.

Docly warns in the folder view and in the document editor when a name matches more than one schema, and says which one was chosen.

Docly Schema

This editor lets you code everything from scratch yourself. No limitations.

Image collection

Docly Schema (designer)

This editor lets you create forms more efficiently with a drag and drop designer. It has a lot of features and you can "opt out" with custom source code inside the form wherever you like. Making schemas with this designer is the recommended option for most cases.

Image collection

The built-in JavaScript events

Event name

Description

Global JS declarations

Any javascript code that you can add to your schema page. You can add any variables, functions etc.

AttachDocEvents($e, $form)

As the Docly schemas can add new list items dynamically, you can attach your event handlers through this function.

UpdateFormGUI()

Runs 50 ms after the last change, makes it possible to calculate values, show/hide elements etc in your form.

UpdateCalculations()

Runs immediately after a change in the form. Be careful not to create lag.

Custom functions

You can add any custom functions you would like to use in your schema.

These will be added to the DOM of the editor and removed from the DOM when the editor is closed.

Creating built-in templates

With the built-in templates you can create HTML, PDF, DOCX or XLSX versions of the data in your document. The templates can either be used for sending and downloading your document - or publishing on the web.

To create a PDF file either make a template in HTML or DOCX and add ".pdf" to the template name:

Image collection

Developer access

Coding Docly schemas means you have to act responsibly or you may be blocked.

Anyone who wants to code custom schemas will have to apply to get developer access on our official page:

Please report any abuse or suspicious activity you may see.

Once your schema is defined, see Create display templates for your schemas to render your documents as HTML pages, or Built-in schemas for templates stored inside the schema itself.