Pages: About | Home | My Jotter | PFT


Tags: [ Personal Projects ]

PFT It is yet another Static website generator written in Perl. It is Hacker-friendly, Free-as-in-freedom and Privacy-preserving.

PFT stands for Plain F. Text, where the meaning of F. is up to personal interpretation. Like Fancy or Fantastic.

I started this project from scratch because as I was not entirely satisfied with the similar products I tried, but also because I wanted to learn another language (Perl) with a side project. I got initially inspired by Dapper, which is similar in the spirit, but maybe a bit too raw, even for my needs.

If you want to see an example of PFT siteā€¦ well, this site is powered by it.

News about PFT: here


Static means that your content is compiled once and the result can be served by a simple HTTP server, without need of server-side dynamic content generation.

Hacker Friendly

PFT is designed to be Hacker Friendly: it's a command-line application which handles your website's boilerplate, hides you nothing, but stays out of the way.

It is designed as a toolkit, and comes with a number of commands:

The manual of each sub-command is available in form of Man Page, and by invoking it with the --help flag.

Content pages are simple Markdown text-files wrapped with a YAML header. Everything is transformed into HTML thanks to the Template::Alloy engine.

Free as in Freedom

PFT is Free as in Freedom and licensed as GNU GPL v3. Contributions and suggestions are welcome.

PFT is also Free as in Free Beer. Which means you can offer me a beer if you feel like doing it.

Privacy preserving:

By default, PFT comes with some simple templates, which do not rely on client-side scripts, cookies or trackers. This means a PFT site respects your privacy by default.

(Of course nothing prevents you from modifying it and provide something more fancy, or even serve it with cookies. As you would do for tea, really.)

Running PFT


PFT is currently available in Fedora:

dnf install pft

Installation from CPAN

PFT is released in CPAN as App::PFT. Unless you are running Fedora, the recommended way to install PFT is:

  1. Install cpan minus

  2. Install PFT by running cpanm App::PFT. This step might require gcc and make to be available because of transitive dependencies.


Perl must be installed on the system which generates the site, together with the App::PFT package's dependencies.

The output of PFT is a directory named build, which contains a set of inter-connected plain HTML pages. The pages are linked by relative links, so the whole output site is relocatable: It can be kept in local and used as a note taking application, or uploaded and served via any web server. No specific software is needed on the server side, and the most basic browser can visualize it.

PFT supports an automatic upload functionality. Currently only RSync over SSH is supported. In order to use it RSync must be installed on your source system, and your hosting provider should support SSH.


PFT is currently composed by:

Feel free to fork or to ping me with suggestion, proposals or pull requests.