A Django/Wagtail editorial CMS for luxury-brand storytelling, structured journal content, visual galleries, search, and conversion-oriented shop links.
- Editor-managed landing-page hero, founder story, imagery, and internal or external calls to action
- Structured journal pages built from constrained Wagtail
StreamFieldblocks - Searchable posts with tags, featured content, reading time, galleries, and related-post discovery
- Reusable quote, callout, image, paragraph, heading, and divider blocks
- Shop calls to action that can point to CMS pages or an external storefront
- Render and page-creation checks using Wagtail's test helpers
HomePage
├─ editable hero and founder sections
└─ latest published journal entries
BlogIndexPage
├─ editorial introduction
├─ optional featured post
└─ published BlogPage children
BlogPage
├─ structured StreamField body
├─ tags and search fields
├─ image gallery
├─ related posts
└─ optional shop CTA
The model intentionally gives editors flexibility inside a small set of reusable blocks rather than exposing arbitrary page markup. This keeps the visual structure consistent while allowing stories and campaigns to change without source edits.
Python 3.12+, Django 5.1, Wagtail 7, SQLite, Pillow, django-taggit, WhiteNoise, HTML, and CSS.
uv sync
uv run python manage.py migrate
uv run python manage.py createsuperuser
uv run python manage.py runserverOpen the site at http://127.0.0.1:8000/ and the Wagtail editor at http://127.0.0.1:8000/admin/.
Run the checks with:
uv run python manage.py testThis repository demonstrates local CMS architecture, content modelling, and editorial frontend work. It does not claim a public deployment, conversion results, users, or production traffic.
