Blogging in Django: Zinnia or Wagtail-Blog?

Simple answer: If you're already running Wagtail or planning to run it on your site, you'll probably benefit from an integrated blog like wagtail_blog. It may not be full of features in itself, but since Wagtail is, you can easily go where you want. I'm adding support for custom models to wagtail_blog, and after that, the blog system is IMO flexible enough for most subsequent scenarios.

I'm also in the business of migrating an existing Zinnia installation to wagtail_blog, and here's a management command for that: zinnia_to_wagtail.py (Gist).

What about django-blog-zinnia?

This project has been maintained wonderfully for so many years! The codebase is really good (seriously, look at it for inspiration), and it doesn't lack features.

It has so many features! See: django-blog-zinnia.com

It may take a little while to customize its templates and you might want a better visual editor (which is basically what Wagtail+wagtail_blog gives you). But you have all the same flexibility and more with Zinnia. These options may especially come in handy once you start to wanna build out your blog with all those little things. For instance Gravatar support, diversified feeds, pingback, spam checkers, code highlighting etc.

Zinnia also integrates well with django-cms.

Final compromise?

I haven't heard about anyone using custom models in Zinnia to integrate it with Wagtail. But in theory, this is very possible! Without any extensions, just inherit from wagtailcore.models.Page + zinnia.models_bases.entry.AbstractEntry and see where it takes you...

Oh, and btw. this blog is made with wagtail_blog.. it used to be a Wordpress blog.