Skip to main content


Project description

A simple Django-based CMS which supports pages published on multiple sites.

This is a fairly opinionated CMS as it is designed for a specific and fairly niche use case: to publish the same CMS pages across multiple sites. As such, there are some design decisions that you might find surprising:

  • Shared content across sites: All sites have access to the same set of pages. A site can not have customised versions of pages, but you can choose which pages are published on which sites.
  • Variables in body text: Similar to django templates, you can include variables in your CMS body text, passing through a context from the view that renders the page. This is to mitigate the strict nature of having non-editable pages; instead you can add site-specific content to be interpolated into the body. By default, we pass just one context variable, which is the site name.
  • Pages are language aware, but do not have multiple translations: When creating a page, you must set its language, but there is no functionality to create multiple translations of the page into different languages. If you need to do this, just duplicate the page, change the language code and then translate the body text. The two pages will have no special link to each other.

Platform support

Django 1.8+, python 2.7+


  1. pip install vesta
  2. Add 'vesta' to INSTALLED_APPS in your
  3. add to


  • VESTA_ADMIN_LOGIN_URL (optional)
    • URL to redirect to for the admin login form.
    • Default: settings.LOGIN_FORM
    • Path to base template for the admin templates. Must have a {% block content %} defined within it.
    • Default: vesta/admin/base.html

Project details

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page