Features

Static sites

Static websites are safer, use fewer resources, and avoid vendor and platform lock-in. You can host a Nikola website on any web server, big or small. It’s just a bunch of HTML files and assets.

Why static? »

Incremental builds

Nikola is fast. It uses doit, which provides incremental rebuilds — in other words, we rebuild only the pages that need rebuilding, saving CPU time, wall clock time and upload bandwidth.

Explore in depth »

Multiple input formats

Nikola will take input in many formats. Out of the box, we support reStructuredText, Markdown, IPython (Jupyter) Notebooks and HTML, and have plugins for many other formats.

Check list of input formats and setup documentation »

Importers for popular blog platforms

Nikola has importers for popular blog platforms, so you can switch easily and free your work.

The WordPress importer is built in (nikola import_wordpress); others are available as plugins and must be installed by using nikola plugin -i.

Built-in components

Nikola comes with everything you need to build a modern website: blogs (with comments, tags, categories, archives, RSS/Atom feeds), easy image galleries, and code listings.

Explore in depth »

Multilingual support

Nikola supports almost 40 languages out of the box, and it’s trivial to add more. You can write posts in multiple languages, and have links between the diferent versions of a post. There are even some settings (including navigation bars and site titles) that can differ between the different language versions.

Check out available languages in Transifex »

Extensible

Nikola is extensible. You can write a plugin to add any feature you want in a few lines of Python, or write your own theme in Mako or Jinja2. Or find something in the Plugin and Theme Indexes.

Read extending documentation »

Friendly CLI

Nikola has a friendly user interface that gets you up and running quickly and simplifies your work.

  • To build your site, just run nikola build.
  • You can use automatic rebuilds with nikola auto, or a simple server with nikola serve.
  • Deploy with nikola deploy or nikola github_deploy.
  • See some status information for your site with nikola status.
  • Check for broken links and missing/orphan files with nikola check.
  • Create new posts (with required metadata) nikola new_post or nikola new_page.
  • Install themes with nikola install_theme, and manage plugins with nikola plugin.
  • Import a WordPress blog with nikola import_wordpress.
  • Debug with nikola console, nikola dumpdb and a few other commands.
  • Check for Nikola updates with nikola version --check.
  • When in doubt, run nikola help to get a list of all available commands.

Automatic rebuilds

If you are working on your site, you don’t need to type nikola build and reload every time you make a change. Instead, just run nikola auto. It will detect changes and automatically rebuild your site and refresh your browser (using livereload).

Explore in depth »

Coil CMS — a CMS for Nikola

If you want to use Nikola for a website that has content authored by people who do not like command-line interfaces or who would prefer to use a WYSIWYG editor, we have a solution for you.

Coil CMS is a basic CMS (with user management and a WYSIWYG HTML editor), which uses Nikola to generate the pages, combining the best of both worlds: you (or your editors) can easily create content, while the site is based on resilient static pages. Users don’t even have to know what Nikola, Python or static websites are. They just write their content. The only difference is that they (or someone with the necessary permissions) need to click a Rebuild button to make their changes show up on the website.

Read Coil CMS documentation »