Computer Nerd

My web development workflow

Get started

I made this site with PicoCMS. Setting it up is more difficult than you might think. First, you need to download it (of course). Next, install and enable PHP and mod_rewrite on your Apache server (how that works differs by Linux distro). After installation, you have to add the following to /etc/apache2/sites-enabled/000-default.conf(or whatever your site conf is), below where it says DocumentRoot /var/www/html:

<Directory /var/www/html>
AllowOverride All

You also have to edit your apache2.conf (or httpd.conf); add this at the end.

LoadModule php7_module modules/libphp7.so
<FilesMatch \.php$>
    SetHandler application/x-httpd-php

Installing PicoCMS is as simple as downloading it and extracting the archive into /var/www/html.

Managing Content

Pico is a pretty good flat file CMS once set up.

I like to mount my site as a directory with SSHFS:

sshfs -o IdentityFile=~/your/cryptographic/id root@example.org:/var/www/html /convenient-mountpoint

This way I can easily modify content on the site using my own software.

Content is in mixed Markdown and YAML, found in the content folder. I like to use Mark Text as my editor.

Themes are Twig templates found in themes/theme-name with Pico's variables, all of which can be found in the official docs. I just use an HTML editor for Twig.

Config is a mix of YAML and PHP.


To be honest, I'm actually starting to prefer Pico to major solutions like Wordpress. It's more convenient to install (being flat-file), and is secure by design.

I also like to do things myself, and Pico gives me a lot of control over things. I get to use a desktop editor instead of a webapp.