Need help with leafpub?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

646 Stars 80 Forks GNU General Public License v3.0 768 Commits 11 Opened issues


Simple, beautiful, open source publishing.

Services available


Need anything else?

Contributors list


Simple, beautiful publishing.

Website   Documentation  

Gitter   Twitter Follow

Created by Cory LaViska

Maintained by Marc Apfelbaum



  • PHP 7.1+ with curl, gd lib, mbstring, openssl & pdo
  • MySQL 5.5.3+


This is the development repo! You'll need to build Leafpub using the instructions below before running it.

Download the latest ready-to-use version from:


Leafpub uses Composer and NPM to manage dependencies and Gulp as its task runner. To contribute to this project, you'll need to clone the repository and install the required development tools listed below.

Please read through our contributing guidelines.

Something is wrong with a translation? Your language isn't available? Please read through the language section


Once you have the necessary development tools installed:

  1. Open a terminal
  2. Navigate to the root directory of your cloned repo
  3. Run the following command:
composer install

Composer will install its own dependencies and then run

npm install
. This may take a few minutes as packages are downloaded. Once complete, Composer will trigger
gulp build
which will generate all the assets you need to run Leafpub.

Important: You'll also need to add the default theme to

manually. This will happen automatically once Leafpub is out of beta.

Using Gulp

From the root directory, you can use

gulp help
to see all available tasks:
    gulp [TASK] [OPTIONS...]

Available tasks build Run all build tasks. [build:fonts, build:images, build:prune, build:scripts, build:styles] build:fonts Build font assets. [clean:fonts] build:images Optimize images. [clean:images] build:prune Prune unused files from vendor packages. build:scripts Build scripts. [jshint, clean:scripts] build:styles Build styles. [clean:styles] clean Clean up generated files. [clean:fonts, clean:images, clean:scripts, clean:styles] clean:fonts Delete generated fonts. clean:images Delete generated images. clean:scripts Delete generated scripts. clean:styles Delete generated styles. default Run the default task. [watch] help Display this help text. jshint Lint source scripts with JSHint. release:clean Delete all generated releases. release:make Generate a release. watch Watch for script and style changes.

For development, use

gulp watch
to automatically compile Sass/JavaScript as you work.


You can run Leafpub on PHP's built in web server using the following command:

php -S localhost:8080 -t app

Then open http://localhost:8080 in your browser.

Note: You might need to use
instead of
in your database config!


Leafpub is maintained under the Semantic Versioning guidelines and we adhere to them as closely as possible.


Marc Apfelbaum



©2018 Marc

This software is copyrighted. You may use it under the terms of the GNU GPLv3 or later. See for licensing details.

All code is copyright 2016-2018 by Marc except where noted. Third-party libraries are copyrighted and licensed by their respective owners.

Theme & Plugin Policy

We do not consider Leafpub themes and plugins to be derivative works, as they are used to extend and enhance the software's functionality strictly through its API and they do not in any way modify Leafpub's core codebase. Therefore, in our opinion, themes and plugins may be licensed completely at the author's discretion.


Please visit for support.

“The starting point of all achievement is desire.” — Napoleon Hill

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.