About fpm

ftd is a This is the language to create web pages or documents for publishing on the web. It starts with Markdown, but adds features to create full page layouts, lets you create reusable “ftd components”, and has first class support for data modelling, so the ftd document can be used as an data exchange format as well (as a replacement of JSON/CSV etc).

fpm is “ftd package manager”, defines a package format for packaging ftd files. fpm packages can depend on other fpm packages, and fpm can install all the dependencies of a package.

fpm can also convert ftd files to static HTML files, so you can publish FTD files on github pages, S3 etc static site hosting sites.


fpm packages can be shared with others by using .tar.gz format defined by fpm or via Git repository (any version control system for that matter). fpm is capable of downloading package dependencies for packages that are hosted on version control systems or tarballs served over HTTP.

fpm has a sister project, fpm-repo (under development), which can be used for first class package hosting. You can chose if your fpm package would be natively hosted on say Github or via a fpm-repo you have created or available as SAAS.

fpm-repo has advantages over Github etc hosting as a fpm package is inherently a web site, and fpm-repo shows the site directly, without a static build step.

ftd has some dynamic features, which an be used when using fpm-repo.

fpm-repo also offers web based editing experience, with built in version control, change request based workflow (equivalent to Github Pull Request workflow).