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 »

Easy to use with a CMS

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 some solutions for you.

Nikola can work with many static-site CMS solutions, including Dato CMS, Netlify CMS and Contentful. You can get a user-friendly admin panel for your Nikola site in just a few minutes.

Read a blog post about CMS integration »