top | item 7231164

Show HN: Wagtail, our new Django CMS

166 points| tomd | 12 years ago

Wagtail is a new, open-source Django CMS focused on flexibility and user experience. It was originally built for the Royal College of Art, but now we're able to share it with everyone. See

https://github.com/torchbox/wagtail

and

http://wagtail.io (marketing site)

and

http://www.rca.ac.uk/ (first big site built on Wagtail)

We're really proud of the user interface, and we hope that Wagtail will make it easy for Django developers to build beautiful, modern sites. Feedback very welcome!

Tom Dyson, Technical Director at Torchbox (Wagtail developers)

95 comments

order
[+] waterside81|12 years ago|reply
I did the whole vagrant setup demo thing - this CMS looks unbelievably nice. Kudos to the design team. Stock Django admin (even with Grappelli) is kinda ugly now.

Like others mentioned, a live demo is definitely preferable - not many will go through the vagrant setup.

Also there's a bug when trying to view a sample page:

'embed_filters' is not a valid tag library

But good stuff otherwise!

[+] mattwestcott|12 years ago|reply
oops, hazards of working off a live Git repo there :-) Fixed now - please run a git pull / pip install -r requirements/dev.txt and try again!
[+] yaph|12 years ago|reply
The first thing I look for on a marketing site for a CMS is the link to the demo, which isn't there.

Generally, I think demo videos don't fill this void and this one does a particularly bad job, unless maybe played at half speed.

Apart from that, Wagtail looks very interesting and I'll take the time and install the demo app. Thumbs up for choosing Postgres and integrating CoffeeScript and LESS.

[+] tomd|12 years ago|reply
The video is intended to pique the interest of CMS choosers with short attention spans... you're right that it's a poor substitute for a real demo, and we'll try to get something up as soon as possible. What's the best practice for refreshing the content on demo sites? I worry that a scheduled content reset will confuse people who are halfway through trying publishing a test page.

The CoffeeScript and LESS integration is a tricky one. We like LESS but we're worried that npm / lessc is an annoying dependency, and we're considering switching to SASS / SCSS, which has a pure-Python compiler, unlike LESS. Opinions very welcome.

[+] rikkus|12 years ago|reply
So, were you hired to make a site for the RCA and decided to build a CMS first? I'm interested in how this came about.
[+] tomd|12 years ago|reply
Yes, sort of. We evaluated the options of sticking with their commercial CMS or switching to a famous open source CMS which we're very familiar with, but we estimated that it would be cheaper to build the site they wanted from scratch in Django. When we'd finished it felt like a lot of the work was reusable, and the RCA kindly agreed to let us open source the project. We've spent the last few weeks extracting it into a standalone package, but there are definitely still some rough edges: documentation, obviously; more tests; i18n.
[+] jordn|12 years ago|reply
Congrats on open sourcing this. It looks great! I'm very pleased to see a Django app where the design hasn't come as an afterthought.

I'm just about to test it out but I have a question – how easy is it to to integrate this into an existing project?

[+] Ricapar|12 years ago|reply
Quick tip on the video: I felt it moved a little too quickly. I tried keeping up with the text, and it seemed to get pulled away from me as I was about 2/3rds through each time. At the end I was slightly dizzy :/
[+] tomd|12 years ago|reply
Thanks for the feedback. It's my fault - I kept asking our video guy to speed it up! We're working on a proper 3 minute walk through right now. It should be ready in the next day or so.
[+] slater|12 years ago|reply
Really nice. One question:

One feature I always wanted implemented in whatever CMS I was using was the ability to enter, say, a comma-delimited list of page titles, select the parent page and template to use, and have the CMS generate those pages in one go, instead of having the content editors hit the "New page" button fifty times.

I used to work for a large medical company, and they're departments always had special requirements, with lists of sub-pages to create for their department. Three hours later (it was a Java-applet-based CMS :( ), I was just about done with creating their pages.

[+] stevejalim|12 years ago|reply
Wagtail is open-source, so there's nothing stopping you/someone adding that functionality - indeed, it'd be pretty trivial do to as a Django management command that would work something like:

     ./manage.py create_page_stubs path/to/your/list.csv
[+] djm_|12 years ago|reply
Nice presentation on the marketing side.

Is there a live demo anywhere or plans for one? In particular to try out the admin functionality.

[+] tomd|12 years ago|reply
Thanks! Yes, we'll have a live demo soon, and a more in-depth video of the admin functionality even sooner - hopefully in the next few hours.

If you have Vagrant and a reasonable internet connection, the easiest way to try out the admin UI is to clone the demo site at https://github.com/torchbox/wagtaildemo, which includes a range of example content types.

[+] Cynddl|12 years ago|reply
Seems really good! Are you planning to compare it with other CMS (especially Django-CMS)? I would like to see its performances (with or without varnish).

Would you like to add OAuth support or other auth mechanisms like CAS? =) I didn't find documentation for the "WAGTAIL_PASSWORD_MANAGEMENT_ENABLED" option.

[+] tomd|12 years ago|reply
Django CMS definitely has more features than Wagtail (and contributors, and impressive example sites). There's a large grid of CMSs and features at https://code.djangoproject.com/wiki/CMSAppsComparison which we haven't added ourselves to yet. We want to resist getting into a CMS feature race - the focus for Wagtail is providing a thoughtful and attractive user interface, and making it as easy as possible for designers to build beautiful sites. As for performance, we haven't done any proper benchmarking, but it feels very fast!

We already support LDAP auth, and CAS and / or Shibboleth is on the roadmap for the near future. More importantly, we'll have proper Sphinx docs soon, with details of the features that are already available.

[+] acd|12 years ago|reply
Very nice! Thanks for the good work! Will check it out.

Feedback: I hope for some good documentation like a starter tutorial and video screencast so more people can understand your CMS and use it.

[+] tomd|12 years ago|reply
Thanks! In case you missed it elsewhere there's a tutorial by Wagtail contributor Serafeim Papastefanos here: https://gist.github.com/tomdyson/8974456 but we're working hard on official docs and a proper screencast.
[+] SEJeff|12 years ago|reply
Would you gents (upstream wagtail guys) be interested if I took a shot at integrating pelican into this? I'd like a static blog and semi dynamic site and <3 django.
[+] miles932|12 years ago|reply
That sounds very delicious to me. this CMS to build sites, and S3 static to host them :)
[+] dangayle|12 years ago|reply
Thanks for the hard work. We need more CMSs in Python!
[+] antihero|12 years ago|reply
What's API support like? IE if I wanted to create a search widget that uses JSON. Have you considered something like Django REST Framework?
[+] tomd|12 years ago|reply
As it happens, the predictive search already returns JSON, but we don't have a general purpose API yet. It's on the list! Pages are just plain Django models under the hood, so Django REST Framework would be a good fit.
[+] ewebbuddy|12 years ago|reply
Looks really nice.. I can't wait to pull and try it out. Just out of curiosity: Is the marketing site also built using Wagtail??
[+] tomd|12 years ago|reply
I was hoping no-one would ask that :)

No: the marketing site (http://wagtail.io/) is a single static HTML page. But we're about to add a blog, so we'll convert the whole thing into a Wagtail site, hopefully next week.

[+] humanfromearth|12 years ago|reply
Looks great. One thing that I find not so good is: There are no tests.

It would be hard to convince anyone to contribute without some unit tests.

[+] felipebueno|12 years ago|reply
Wow, this is really beautiful. Just in time for my next project: a tiny ERP to manage my sister's bakery.

Thanks for open sourcing this. :)

[+] tomd|12 years ago|reply
Please let us know if you end up using it. We'll post a Wagtail t-shirt to your sister's bakery!
[+] eknuth|12 years ago|reply
Nice! I was just reevaluating the django cms world and happened to stumble on this post.

Any support for multiple languages, yet?

[+] tomd|12 years ago|reply
Hi eknuth. There's a brief mention of this elsewhere in the thread: "[Wagtail does support multiple languages] but it doesn't (yet) do anything clever like link different language versions of the same article. On a related subject, we're starting on i18n next week, with the first localisation - Greek - following shortly."
[+] andybak|12 years ago|reply
Are there any developer docs? How extensible is it? How we do integrate 3rd party apps into the wagtail admin?
[+] tomd|12 years ago|reply
Developer docs: currently https://github.com/torchbox/wagtaildemo/blob/master/README.m... and this tutorial from contributor Serafeim Papastefanos: https://gist.github.com/tomdyson/8974456

Clearly this isn't enough and we're working on proper Sphinx docs which should be ready in the next few days.

Extensibility: it's just a Django app, so you can include it in your existing project, or add your own apps / views / middleware etc. There are some hooks, e.g. for including your app into the main admin navigation - see https://github.com/torchbox/wagtail/blob/master/wagtail/wagt... for an example of where a hook gets called. It's a good candidate for developer docs!

[+] yen223|12 years ago|reply
Python 2 or 3?
[+] joshfinnie|12 years ago|reply
Classifier say 2:

    'Programming Language :: Python :: 2.7'