Python static site generator that builds websites from Markdown, reStructuredText, and HTML source files without databases.
getnikola/nikola
A Python static site and blog generator that turns content files into a deployable website.
Open-source alternative to:WordPress
- Stars
- 2,748
- Forks
- 473
- Open issues
- 94
- Last commit
- 14 days ago
What is it?
Nikola is a static site and blog generator written in Python. It takes content written in reStructuredText or Markdown, along with other supported formats such as Wiki, BBCode, Textile, and HTML, and builds a complete website that can be deployed to any static host.
Because the output is plain static files, sites built with Nikola avoid the security surface, resource use, and platform lock-in of database-driven content management systems. Blogs include tags, feeds, archives, and comments, and the look of the site is controlled by swappable themes. Builds are driven by the doit task runner, and functionality can be extended through a library of plugins.
Nikola also supports multilingual sites and image galleries created by placing files in a folder. The core codebase is kept small enough for a programmer to read in a day, and the project reuses existing tools rather than reimplementing them.
Key features
- 01Blog support with tags, feeds, archives, and comments
- 02Swappable themes for controlling site appearance
- 03Accepts reStructuredText, Markdown, and several other input formats
- 04Multilingual sites and automatic image galleries
- 05Extensible through a large library of plugins
- 06Syntax highlighting for many languages and markup formats
Use cases
- Running a personal or technical blog without a database or server-side runtime
- Publishing a multilingual documentation or project website
- Creating photo galleries by dropping image files into a folder
- Hosting a site on static hosting services to reduce maintenance and attack surface
Quick start
- 1
Install Nikola with pip
pip install Nikola - 2
Optionally install extras for optional features
pip install "Nikola[extras]"
In collections
Topics
FAQ
- What is nikola?
- A Python static site and blog generator that turns content files into a deployable website. Nikola is a static site and blog generator written in Python. It takes content written in reStructuredText or Markdown, along with other supported formats such as Wiki, BBCode, Textile, and HTML, and builds a complete website that can be deployed to any static host.
- Is nikola free to use? What license does it have?
- nikola is open source under the MIT license. Check the license terms before using it in commercial products.
- Is nikola still maintained?
- Actively maintained. The last commit to nikola was on Oct 24, 2026.
- What can I use nikola for?
- Running a personal or technical blog without a database or server-side runtime Publishing a multilingual documentation or project website Creating photo galleries by dropping image files into a folder Hosting a site on static hosting services to reduce maintenance and attack surface
- How do I install nikola?
- Install Nikola with pip: pip install Nikola Optionally install extras for optional features: pip install "Nikola[extras]"
- Where can I get nikola?
- The source code and installation instructions are on GitHub: https://github.com/getnikola/nikola
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A fast, simple Node.js blog framework that generates static sites from Markdown posts.
A blog-aware static site generator written in Ruby that turns Markdown and Liquid templates into a complete website.
Open-source Hugo framework of Tailwind blocks for building landing pages, portfolios, blogs and docs from plain Markdown files.
A desktop Markdown client for writing and publishing static blogs to GitHub Pages or Coding Pages.
An online manager for static blog frameworks like Hexo, Hugo and Valaxy, for editing posts, images and site settings from the browser.