PHPackages                             gilbitron/pico - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. gilbitron/pico

ActiveLibrary[Templating &amp; Views](/categories/templating)

gilbitron/pico
==============

Pico is a flat file CMS, this means there is no administration backend and database to deal with. You simply create .md files in the "content" folder and that becomes a page.

v2.1.4(5y ago)3.9k126609[6 PRs](https://github.com/gilbitron/pico/pulls)MITPHPPHP &gt;=5.3.6CI passing

Since Apr 27Pushed 4mo ago152 watchersCompare

[ Source](https://github.com/gilbitron/pico)[ Packagist](https://packagist.org/packages/gilbitron/pico)[ Docs](http://picocms.org/)[ Fund](https://www.bountysource.com/teams/picocms)[ RSS](/packages/gilbitron-pico/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (4)Versions (40)Used By (0)

> ❗ ❗ **END OF LIFE NOTICE** ❗ ❗
>
> Development of Pico has stopped a very long time ago. **We strongly advise against using Pico for new websites.** You can keep using Pico for existing websites though, it has **no known security issues**. However, please note that you will ultimately run into issues, because Pico wasn't designed for modern PHP versions. You can try the last [`v3.0.0-alpha.2` release](https://github.com/picocms/Pico/releases/tag/v3.0.0-alpha.2), or use the [`pico-3.0` branch](https://github.com/picocms/Pico/tree/pico-3.0). They are as stable as the last "stable" releases, but just didn't make it through the release process before development was abandoned.
>
> If you're about to create a new website and want to use a flat file CMS, check out some of Pico's amazing alternatives, like [Grav CMS](https://getgrav.org/), [HTMLy](https://www.htmly.com/), [Automad](https://automad.org/), or [Typemill](https://typemill.net/).
>
> If you're interested in taking over Pico's development, please don't hesitate to contact us by creating a [new Issue](https://github.com/picocms/Pico/issues/new) here on GitHub. Please provide some *brief* information about the extent of your commitment, your motivation, and your experience with Pico, PHP programming, and Open Source Software development in general. We're happy to help you take over the baton, but unfortunately are no longer able to maintain this project.
>
> ❗ ❗ **END OF LIFE NOTICE** ❗ ❗

Pico
====

[](#pico)

[![License](https://camo.githubusercontent.com/e0167cd1dff0866d67a39d3d37430761e7b33e9becd07afe0bc945be1b6c4801/68747470733a2f2f7069636f636d732e6769746875622e696f2f6261646765732f7069636f2d6c6963656e73652e737667)](https://github.com/picocms/Pico/blob/master/LICENSE.md)[![Version](https://camo.githubusercontent.com/2b5ccb31e0ae49b8a36cf1e27dc0e0d81d175609cf3d472c4fedee307a07cae0/68747470733a2f2f7069636f636d732e6769746875622e696f2f6261646765732f7069636f2d76657273696f6e2e737667)](https://github.com/picocms/Pico/releases/latest)[![Libera.Chat](https://camo.githubusercontent.com/2048c5bb63009b7958757bf0a09653f6bc9af53652f1601f2acf6fdd8bdde0d1/68747470733a2f2f7069636f636d732e6769746875622e696f2f6261646765732f7069636f2d636861742e737667)](https://web.libera.chat/#picocms)

Pico is a stupidly simple, blazing fast, flat file CMS.

Visit us at  and see  for more info.

Screenshot
----------

[](#screenshot)

[![Pico Screenshot](https://camo.githubusercontent.com/3ad6eae11d8390709278bd8fa0227ea353c75f4b705f20bb61de2e1b34fa253d/68747470733a2f2f7069636f636d732e6769746875622e696f2f73637265656e73686f74732f7069636f2d32312e706e67)](https://camo.githubusercontent.com/3ad6eae11d8390709278bd8fa0227ea353c75f4b705f20bb61de2e1b34fa253d/68747470733a2f2f7069636f636d732e6769746875622e696f2f73637265656e73686f74732f7069636f2d32312e706e67)

Install
-------

[](#install)

Installing Pico is dead simple - and done in seconds! If you have access to a shell on your server (i.e. SSH access), we recommend using [Composer](https://getcomposer.org/). If not, use a pre-bundled release. If you don't know what "SSH access" is, head over to the pre-bundled release. 😇

Pico requires PHP 5.3.6+ and the PHP extensions `dom` and `mbstring` to be enabled.

### I want to use Composer

[](#i-want-to-use-composer)

Starting with Pico 2.0 we recommend installing Pico using Composer whenever possible. Trust us, you won't regret it when it comes to upgrading Pico! Anyway, if you don't want to use Composer, or if you simply can't use Composer because you don't have access to a shell on your server, don't despair, installing Pico using a pre-bundled release is still easier than everything you know!

###### Step 1

[](#step-1)

Open a shell and navigate to the `httpdocs` directory (e.g. `/var/www/html`) of your server. Download Composer and run it with the `create-project` option to install it to the desired directory (e.g. `/var/www/html/pico`):

```
$ curl -sSL https://getcomposer.org/installer | php
$ php composer.phar create-project picocms/pico-composer pico
```

###### Step 2

[](#step-2)

What second step? There's no second step. That's it! Open your favorite web browser and navigate to your brand new, stupidly simple, blazing fast, flat file CMS! Pico's sample contents will explain how to create your own contents. 😊

### I want to use a pre-bundled release

[](#i-want-to-use-a-pre-bundled-release)

Do you know the feeling: You want to install a new website, so you upload all files of your favorite CMS and run the setup script - just to find out that you forgot about creating the SQL database first? Later the setup script tells you that the file permissions are wrong. Heck, what does this even mean? Forget about it, Pico is different!

###### Step 1

[](#step-1-1)

[Download the latest Pico release](https://github.com/picocms/Pico/releases/latest) and upload all files to the desired install directory of Pico within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server.

###### Step 2

[](#step-2-1)

Okay, here's the catch: There's no catch. That's it! Open your favorite web browser and navigate to your brand new, stupidly simple, blazing fast, flat file CMS! Pico's sample contents will explain how to create your own contents. 😊

### I want to manage my website using a Git repository

[](#i-want-to-manage-my-website-using-a-git-repository)

Git is a very powerful distributed version-control system - and it can be used to establish a nice workflow around your Pico website. Using a Git repository for your website aids content creation and deployment, including collaborative editing and version control. If you want to manage your website in a Git repository, you use a Composer-based installation.

1. Fork [Pico's Composer starter project](https://github.com/picocms/pico-composer) using [GitHub's fork button](https://help.github.com/en/github/getting-started-with-github/fork-a-repo). If you don't want to use GitHub you aren't required to, you can choose whatever Git server you want. Forking manually just requires some extra steps: First clone the Git repository locally, add your Git server as a remote and push the repository to this new remote.
2. Clone your fork locally and add your contents and assets. You can edit Pico's `composer.json` to include 3rd-party plugins and themes, or simply add your own plugins and themes to Pico's `plugins` resp. `themes` directories. Don't forget to commit your changes and push them to your Git server.
3. Open a shell on your webserver and navigate to the `httpdocs` directory (e.g. `/var/www/html`). Download Composer, clone your Git repository to the desired directory (e.g. `/var/www/html/pico`) and install Pico's dependencies using Composer's `install` option:

    ```
    $ curl -sSL https://getcomposer.org/installer | php
    $ git clone https://github.com// pico
    $ php composer.phar --working-dir=pico install
    ```
4. If you update your website's contents, simply commit your changes and push them to your Git server. Open a shell on your webserver and navigate to Pico's install directory within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server. Pull all changes from your Git server and update Pico's dependencies using Composer's `update` option:

    ```
    $ git pull
    $ php composer.phar update
    ```

### I'm a developer

[](#im-a-developer)

So, you're one of these amazing people making all of this possible? We love you folks! As a developer we recommend you to clone [Pico's Git repository](https://github.com/picocms/Pico) as well as the Git repositories of [Pico's default theme](https://github.com/picocms/pico-theme) and the [`PicoDeprecated` plugin](https://github.com/picocms/pico-deprecated). You can set up your workspace using [Pico's Composer starter project](https://github.com/picocms/pico-composer) and include all of Pico's components using local packages.

Using Pico's Git repositories is different from using one of the installation methods elucidated above. It gives you the current development version of Pico, what is likely *unstable* and *not ready for production use*!

1. Open a shell and navigate to the desired directory of Pico's development workspace within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server. Download and extract Pico's Composer starter project into the `workspace` directory:

    ```
    $ curl -sSL https://github.com/picocms/pico-composer/archive/master.tar.gz | tar xz
    $ mv pico-composer-master workspace
    ```
2. Clone the Git repositories of all Pico components (Pico's core, Pico's default theme and the `PicoDeprecated` plugin) into the `components` directory:

    ```
    $ mkdir components
    $ git clone https://github.com/picocms/Pico.git components/pico
    $ git clone https://github.com/picocms/pico-theme.git components/pico-theme
    $ git clone https://github.com/picocms/pico-deprecated.git components/pico-deprecated
    ```
3. Instruct Composer to use the local Git repositories as replacement for the `picocms/pico` (Pico's core), `picocms/pico-theme` (Pico's default theme) and `picocms/pico-deprecated` (the `PicoDeprecated` plugin) packages. Update the `composer.json` of your development workspace (i.e. `workspace/composer.json`) accordingly:

    ```
    {
        "repositories": [
            {
                "type": "path",
                "url": "../components/pico",
                "options": { "symlink": true }
            },
            {
                "type": "path",
                "url": "../components/pico-theme",
                "options": { "symlink": true }
            },
            {
                "type": "path",
                "url": "../components/pico-deprecated",
                "options": { "symlink": true }
            }
        ],
        "require": {
            "picocms/pico": "dev-master",
            "picocms/pico-theme": "dev-master",
            "picocms/pico-deprecated": "dev-master",
            "picocms/composer-installer": "^1.0"
        }
    }
    ```
4. Download Composer and run it with the `install` option:

    ```
    $ curl -sSL https://getcomposer.org/installer | php
    $ php composer.phar --working-dir=workspace install
    ```

You can now open your web browser and navigate to Pico's development workspace. All changes you make to Pico's components will automatically be reflected in the development workspace.

By the way, you can also find all of Pico's components on [Packagist.org](https://packagist.org/): [Pico's core](https://packagist.org/packages/picocms/pico), [Pico's default theme](https://packagist.org/packages/picocms/pico-theme), the [`PicoDeprecated` plugin](https://packagist.org/packages/picocms/pico-deprecated) and [Pico's Composer starter project](https://packagist.org/packages/picocms/pico-composer).

Upgrade
-------

[](#upgrade)

Do you remember when you installed Pico? It was ingeniously simple, wasn't it? Upgrading Pico is no difference! The upgrade process differs depending on whether you used [Composer](https://getcomposer.org/) or a pre-bundled release to install Pico. Please note that you should *always* create a backup of your Pico installation before upgrading!

Pico follows [Semantic Versioning 2.0](http://semver.org) and uses version numbers like `MAJOR`.`MINOR`.`PATCH`. When we update the `PATCH` version (e.g. `2.0.0` to `2.0.1`), we made backwards-compatible bug fixes. If we change the `MINOR` version (e.g. `2.0` to `2.1`), we added functionality in a backwards-compatible manner. Upgrading Pico is dead simple in both cases. Simply head over to the appropiate Upgrade sections below.

But wait, we forgot to mention what happens when we update the `MAJOR` version (e.g. `2.0` to `3.0`). In this case we made incompatible API changes. We will then provide a appropriate upgrade tutorial, so please head over to the ["Upgrade" page on our website](http://picocms.org/in-depth/upgrade/).

### I've used Composer to install Pico

[](#ive-used-composer-to-install-pico)

Upgrading Pico is dead simple if you've used Composer to install Pico. Simply open a shell and navigate to Pico's install directory within the `httpdocs` directory (e.g. `/var/www/html/pico`) of your server. You can now upgrade Pico using just a single command:

```
$ php composer.phar update
```

That's it! Composer will automatically update Pico and all plugins and themes you've installed using Composer. Please make sure to manually update all plugins and themes you've installed manually.

### I've used a pre-bundled release to install Pico

[](#ive-used-a-pre-bundled-release-to-install-pico)

Okay, installing Pico was easy, but upgrading Pico is going to be hard, isn't it? I'm afraid I have to disappoint you. It's just as simple as installing Pico!

First you'll have to delete the `vendor` directory of your Pico installation (e.g. if you've installed Pico to `/var/www/html/pico`, delete `/var/www/html/pico/vendor`). Then [download the latest Pico release](https://github.com/picocms/Pico/releases/latest) and upload all files to your existing Pico installation directory. You will be prompted whether you want to overwrite files like `index.php`, `.htaccess`, ... - simply hit "Yes".

That's it! Now that Pico is up-to-date, you need to update all plugins and themes you've installed.

### I'm a developer

[](#im-a-developer-1)

As a developer you should know how to stay up-to-date... 😉 For the sake of completeness, if you want to upgrade Pico, simply open a shell and navigate to Pico's development workspace (e.g. `/var/www/html/pico`). Then pull the latest commits from the Git repositories of [Pico's core](https://github.com/picocms/Pico), [Pico's default theme](https://github.com/picocms/pico-theme) and the [`PicoDeprecated` plugin](https://github.com/picocms/pico-deprecated). Let Composer update your dependencies and you're ready to go.

```
$ git -C components/pico pull
$ git -C components/pico-theme pull
$ git -C components/pico-deprecated pull
$ php composer.phar --working-dir=workspace update
```

Getting Help
------------

[](#getting-help)

#### Getting Help as a user

[](#getting-help-as-a-user)

If you want to get started using Pico, please refer to our [user docs](http://picocms.org/docs/). Please read the [upgrade notes](http://picocms.org/in-depth/upgrade/) if you want to upgrade from Pico 1.0 to Pico 2.0. You can find officially supported [plugins](http://picocms.org/plugins/) and [themes](http://picocms.org/themes/) on our website. A greater choice of third-party plugins and themes can be found in our [Wiki](https://github.com/picocms/Pico/wiki) on the [plugins](https://github.com/picocms/Pico/wiki/Pico-Plugins) or [themes](https://github.com/picocms/Pico/wiki/Pico-Themes) pages respectively. If you want to create your own plugin or theme, please refer to the "Getting Help as a developer" section below.

#### Getting Help as a developer

[](#getting-help-as-a-developer)

If you're a developer, please refer to the "Contributing" section below and our [contribution guidelines](https://github.com/picocms/Pico/blob/master/CONTRIBUTING.md). To get you started with creating a plugin or theme, please read the [developer docs on our website](http://picocms.org/development/).

#### You still need help or experience a problem with Pico?

[](#you-still-need-help-or-experience-a-problem-with-pico)

When the docs can't answer your question, you can get help by joining us on [\#picocms on Libera.Chat](https://web.libera.chat/#picocms) ([logs](http://picocms.org/irc-logs)). When you're experiencing problems with Pico, please don't hesitate to create a new [Issue](https://github.com/picocms/Pico/issues) on GitHub. Concerning problems with plugins or themes, please refer to the website of the developer of this plugin or theme.

**Before creating a new Issue,** please make sure the problem wasn't reported yet using [GitHubs search engine](https://github.com/picocms/Pico/search?type=Issues). Please describe your issue as clear as possible and always include the *Pico version* you're using. Provided that you're using *plugins*, include a list of them too. We need information about the *actual and expected behavior*, the *steps to reproduce* the problem, and what steps you have taken to resolve the problem by yourself (i.e. *your own troubleshooting*).

Contributing
------------

[](#contributing)

You want to contribute to Pico? We really appreciate that! You can help make Pico better by [contributing code](https://github.com/picocms/Pico/pulls) or [reporting issues](https://github.com/picocms/Pico/issues), but please take note of our [contribution guidelines](https://github.com/picocms/Pico/blob/master/CONTRIBUTING.md). In general you can contribute in three different areas:

1. Plugins &amp; Themes: You're a plugin developer or theme designer? We love you folks! You can find tons of information about how to develop plugins and themes at . If you have created a plugin or theme, please add it to our [Wiki](https://github.com/picocms/Pico/wiki), either on the [plugins](https://github.com/picocms/Pico/wiki/Pico-Plugins) or [themes](https://github.com/picocms/Pico/wiki/Pico-Themes) page. You may also [Submit](http://picocms.org/in-depth/submission_guidelines) it to our website, where it'll be displayed on the official [plugin](http://picocms.org/plugins/) or [theme](http://picocms.org/themes/) pages!
2. Documentation: We always appreciate people improving our documentation. You can either improve the [inline user docs](https://github.com/picocms/Pico/edit/master/content-sample/index.md) or the more extensive [user docs on our website](https://github.com/picocms/picocms.github.io/tree/master/_docs). You can also improve the [docs for plugin and theme developers](https://github.com/picocms/picocms.github.io/tree/master/_development). Simply fork our website's Git repository from , change the Markdown files and open a [pull request](https://github.com/picocms/picocms.github.io/pulls).
3. Pico's Core: The supreme discipline is to work on Pico's Core. Your contribution should help *every* Pico user to have a better experience with Pico. If this is the case, fork Pico from  and open a [pull request](https://github.com/picocms/Pico/pulls). We look forward to your contribution!

By contributing to Pico, you accept and agree to the *Developer Certificate of Origin* for your present and future contributions submitted to Pico. Please refer to the ["Developer Certificate of Origin" section in our `CONTRIBUTING.md`](https://github.com/picocms/Pico/blob/master/CONTRIBUTING.md#developer-certificate-of-origin).

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance51

Moderate activity, may be stable

Popularity41

Moderate usage in the ecosystem

Community38

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 80.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~79 days

Recently: every ~67 days

Total

36

Last Release

1967d ago

Major Versions

v0.9 → v1.0.0-beta.12015-11-06

v1.0.6 → v2.0.0-beta.12017-11-05

v2.1.1 → v3.0.0-alpha.12020-03-29

v2.1.4 → v3.0.0-alpha.22020-12-24

PHP version history (3 changes)v0.9PHP &gt;=5.2.4

v1.0.0-beta.1PHP &gt;=5.3.6

v3.0.0-alpha.1PHP &gt;=7.0.8

### Community

Maintainers

![](https://www.gravatar.com/avatar/20011de485eeea26b5582c75daaab217937832762b5d5f551d34d07f74138bb0?d=identicon)[gilbitron](/maintainers/gilbitron)

---

Top Contributors

[![PhrozenByte](https://avatars.githubusercontent.com/u/920356?v=4)](https://github.com/PhrozenByte "PhrozenByte (711 commits)")[![theshka](https://avatars.githubusercontent.com/u/640217?v=4)](https://github.com/theshka "theshka (73 commits)")[![gilbitron](https://avatars.githubusercontent.com/u/203882?v=4)](https://github.com/gilbitron "gilbitron (37 commits)")[![picocms](https://avatars.githubusercontent.com/u/7042563?v=4)](https://github.com/picocms "picocms (17 commits)")[![dmelo](https://avatars.githubusercontent.com/u/89710?v=4)](https://github.com/dmelo "dmelo (10 commits)")[![cmattoon](https://avatars.githubusercontent.com/u/3005498?v=4)](https://github.com/cmattoon "cmattoon (6 commits)")[![smcdougall](https://avatars.githubusercontent.com/u/58093272?v=4)](https://github.com/smcdougall "smcdougall (2 commits)")[![mangeld](https://avatars.githubusercontent.com/u/6747546?v=4)](https://github.com/mangeld "mangeld (2 commits)")[![dstreet](https://avatars.githubusercontent.com/u/1950982?v=4)](https://github.com/dstreet "dstreet (2 commits)")[![mayamcdougall](https://avatars.githubusercontent.com/u/12779160?v=4)](https://github.com/mayamcdougall "mayamcdougall (2 commits)")[![caseycs](https://avatars.githubusercontent.com/u/76095?v=4)](https://github.com/caseycs "caseycs (2 commits)")[![pschmitt](https://avatars.githubusercontent.com/u/37886?v=4)](https://github.com/pschmitt "pschmitt (2 commits)")[![g12i](https://avatars.githubusercontent.com/u/7079786?v=4)](https://github.com/g12i "g12i (2 commits)")[![gregfedorov](https://avatars.githubusercontent.com/u/4005260?v=4)](https://github.com/gregfedorov "gregfedorov (2 commits)")[![TheTechRobo](https://avatars.githubusercontent.com/u/52163910?v=4)](https://github.com/TheTechRobo "TheTechRobo (1 commits)")[![asdfuser](https://avatars.githubusercontent.com/u/984638?v=4)](https://github.com/asdfuser "asdfuser (1 commits)")[![wgrzebieniowki-kontakt](https://avatars.githubusercontent.com/u/11919929?v=4)](https://github.com/wgrzebieniowki-kontakt "wgrzebieniowki-kontakt (1 commits)")[![beheh](https://avatars.githubusercontent.com/u/929769?v=4)](https://github.com/beheh "beheh (1 commits)")[![bitmarte](https://avatars.githubusercontent.com/u/16324896?v=4)](https://github.com/bitmarte "bitmarte (1 commits)")[![dav-m85](https://avatars.githubusercontent.com/u/1519726?v=4)](https://github.com/dav-m85 "dav-m85 (1 commits)")

---

Tags

cmscontent-managementflat-filemarkdownmarkdown-to-htmlphppicopico-cmspicocmssimpletwigwebsiteyamlphptwigyamlmarkdownSimplewebsitecmscontent managementflat filemarkdown-to-htmlpicopicocmspico-cms

### Embed Badge

![Health badge](/badges/gilbitron-pico/health.svg)

```
[![Health](https://phpackages.com/badges/gilbitron-pico/health.svg)](https://phpackages.com/packages/gilbitron-pico)
```

###  Alternatives

[picocms/pico

Pico is a flat file CMS, this means there is no administration backend and database to deal with. You simply create .md files in the "content" folder and that becomes a page.

3.9k37.8k11](/packages/picocms-pico)[picocms/pico-composer

Pico is a flat file CMS, this means there is no administration backend and database to deal with. You simply create .md files in the "content" folder and that becomes a page.

2020.6k](/packages/picocms-pico-composer)[craftcms/cms

Craft CMS

3.6k3.6M2.6k](/packages/craftcms-cms)[spress/spress

Static site generator with blogs support

37436.2k](/packages/spress-spress)[twig/markdown-extra

A Twig extension for Markdown

12114.3M83](/packages/twig-markdown-extra)[getherbie/herbie

Herbie is a simple, modern, fast and highly customizable flat-file Content Management System (CMS) powered by PHP, Twig, Markdown, Textile, reStructuredText and other human-readable text files.

892.2k20](/packages/getherbie-herbie)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
