8 ms·
Show HN: Wagtail, our new Django CMS
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)
- adamlj 13y agoDoes it support handling multiple sites? If not, do you have any plans for adding multi site feature?
- mattwestcott 13y agoYes, multiple sites are supported - there's a single tree for all pages in the system, and any number of sites can be 'rooted' at different points in the tree. (Currently this is configured in Django's own admin interface, but we'll be moving this into the Wagtail interface proper.)
- djm_ 13y agoNice presentation on the marketing side. Is there a live demo anywhere or plans for one? In particular to try out the admin functionality.
- tomd 13y agoThanks! 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 https://github.com/torchbox/wagtaildemo, which includes a range of example content types.
- yaph 13y agoThe 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 13y agoThe 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.
- yaph 13y agoAn idea for a content reset, would be to warn the user before it actually happens and/or having a visible countdown widget that tells you when reset happens. I see that the npm dependency might draw away people, maybe provide and add-on that depends on npm and makes it easy to integrate CoffeeScript, LESS, SASS?
- tomd 13y ago> An idea for a content reset, would be to warn the user before it actually happens and/or having a visible countdown widget that tells you when reset happens. Right, that doesn't sound too hard, we'll aim to add that. > I see that the npm dependency might draw away people, maybe provide and add-on that depends on npm and makes it easy to integrate CoffeeScript, LESS, SASS? Or perhaps we'll just ship the compiled CSS / JS and provide instructions for people who want to use LESS etc in their Wagtail sites.
- bencollier49 13y agoBrilliant name! Good work chaps!
- tomd 13y agoThank you! It's named after these lovely little birds which hang round our offices (near Oxford, in the UK) from spring to autumn: https://www.rspb.org.uk/wildlife/birdguide/families/pipits.aspx https://www.rspb.org.uk/wildlife/birdguide/families/pipits.a...
- bencollier49 13y agoHere in Hertfordshire too!
- yen223 13y agoYou missed out on a great naming opportunity: pip install pipit
- tilt 13y agohttps://github.com/torchbox/wagtail https://github.com/torchbox/wagtail http://wagtail.io http://wagtail.io (marketing site) http://www.rca.ac.uk/ http://www.rca.ac.uk/
- mkesper 13y agoThis HN no-link-doctrine is really annoying...
- yen223 13y agoPython 2 or 3?
- joshfinnie 13y agoClassifier say 2: 'Programming Language :: Python :: 2.7'
- jlafon 13y agoThis looks interesting, but I can't take it seriously. From what I can tell, you haven't written any tests at all.
- piqufoh 13y agoSome of the tests are the default django assert 1 + 1 = 2, but there are quite a few others scattered about the directories.
- jlafon 13y agoI wasn't counting the default django 1 + 1 test, but I did find one actual test. It's obvious that a lot of work was put into this, and I think it has potential. My suggestion to the creators is to start with tests from the beginning. However, it's not too late to start now and add tests for everything. It's a lot of work initially, but it will pay off for years to come.
- mattwestcott 13y agoAgreed, proper test coverage is absolutely something we want to achieve. We're working on it as we speak... https://github.com/torchbox/wagtail/blob/master/wagtail/wagtailsearch/tests.py https://github.com/torchbox/wagtail/blob/master/wagtail/wagt... - Matt (lead Wagtail dev)
- porker 13y agoSo a CMS that works as the client requires and has a very nice UI can't be taken seriously because it has no tests? That's a very developer focused mindset. I'm glad it's been open sourced and I hope to see tests added by them or the community, but it's not a deal-breaker for me. And if you contribute tests I hope they'll be full functional tests to spot cross-browser regressions, JS breaks and the rest ;)
- batiste 13y agoClients do care about having a stable and bug free software. Tests is one of the best way to achieve this.
- guptankur 13y agoWhy is npm listed as dependency ? Just curious. Congrats on this, it looks awesome.
- tomd 13y agoWe currently need npm for lessc, as part of django-compressor, to compile LESS. We want to reduce the dependencies as much as possible, so we're looking into converting to SASS / SCSS, which has a pure-Python compiler, or simply shipping the compiled CSS / JS files for people who don't need to change them. Thanks for the congrats!
- porker 13y agoSASS or one of its variants (SCSS, Bourbon, Compass) would be lovely!
- antihero 13y agoCan we use our own frontend stacks to design the frontend?
- tomd 13y agoYes, absolutely! Our first principle for Wagtail is that it should in no way impede design decisions. LESS is (currently) used for the admin UI, and the compiler / compressor is available to the front-end if you want it, but you can easily plug in your own compilers or use plain CSS if you prefer.
- deleted 13y ago[deleted]
- rikkus 13y agoSo, 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 13y agoYes, 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.
- leobelle 13y agoThis is pretty awesome. A non-PHP CMS is long, long overdue. I know there already are some, but I think the challenge is that non-technical types are still more able to quickly get started by just dragging some PHP into their shared hosting service and turning it on. I hope this will change, and a project like yours is key to making that transition.
- Cynddl 13y agoSeems 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 13y agoDjango 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 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.
- pbowyer 13y ago> 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. Yes, please keep that focus. A well-focused project is both refreshing and produces extraordinary results. You also appear to have a 'bigger-picture' view than many CMS creators - i.e. on the designers and the people who end up using it, not just the developers. Congratulations Tom!
- waterside81 13y agoI 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 13y agooops, 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!
- humanfromearth 13y agoLooks 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.
- mattwestcott 13y agoThere are some https://github.com/torchbox/wagtail/blob/master/wagtail/wagtailsearch/tests.py https://github.com/torchbox/wagtail/blob/master/wagtail/wagt... - but not enough, we know. We're on it!
- tomd 13y agoSee below - there are tests, see https://github.com/torchbox/wagtail/blob/master/wagtail/wagtailsearch/tests.py https://github.com/torchbox/wagtail/blob/master/wagtail/wagt... and https://github.com/torchbox/wagtail/commit/a77977a31cdfcdf955586ee796fa0ec406ae4b4a https://github.com/torchbox/wagtail/commit/a77977a31cdfcdf95... but we need more, and to make it more obvious how to run them. You're right that we have to do more to attract contributors. In the meantime we're offering t-shirts for pull requests... https://twitter.com/WagtailCMS/status/432166799464210432/ https://twitter.com/WagtailCMS/status/432166799464210432/
- antihero 13y agoWhat'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 13y agoAs 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.
- SEJeff 13y agoHaving used piston, then tastypie, and now django-rest-framework for a number of json rest services, drf is hands down the nicest. Also, Tom Christie (main author) is super responsive via twitter or IRC so you can get bugs fixed / prs merged super fast. I literally can't recommend it enough
- dandigangi 13y agoFrameworks on frameworks on frameworks.
- andybak 13y agoAre there any developer docs? How extensible is it? How we do integrate 3rd party apps into the wagtail admin?
- tomd 13y agoDeveloper docs: currently https://github.com/torchbox/wagtaildemo/blob/master/README.md https://github.com/torchbox/wagtaildemo/blob/master/README.m... and this tutorial from contributor Serafeim Papastefanos: https://gist.github.com/tomdyson/8974456 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/wagtailadmin/templatetags/wagtailadmin_nav.py#L68 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!
- andybak 13y agoThat looks interesting. I've got a CMS which shares some philosophical similarities to Wagtail. It's a lot clunkier and uglier though. I wish I had the time to add some polish. I think the 'pages have types' idea is spot on and something all the other Django CMS's I've seen seem to get wrong. (too much freedom for the user to create 'Frankenstein pages' by arbitrarily combining blocks). The editor and image library is very nice. I feel you've gone slightly too far in the 'flat and beautiful' direction. Some UI elements lack affordance and I think usability has suffered slightly at the hand of aesthetics. Finally I still feel there's a case for not completely replacing contrib.admin but that is a complex debate and I can see in your specific case you probably made the right decision. I'd really like to see if I could achieve some of your elegance without abandoning (or reinventing!) contrib.admin. Best of luck!
- tomd 13y agoThank you very much for your thoughtful feedback. We're pleased with the UI but obviously it's not perfect - I've just started using slack.com which is also pretty flat but feels like a new benchmark for usability. I'll discuss it with the design team, and if you have any more specific feedback we'd love to hear it. There are still a couple of Wagtail features which rely on contrib.admin. We have to decide whether to smarten up the contrib.admin UI or pull them into the Wagtail admin. Is your CMS available somewhere public?
- ewebbuddy 13y agoLooks 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 13y agoI was hoping no-one would ask that :) No: the marketing site (http://wagtail.io/ 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.
- jordn 13y agoCongrats 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?
- tomd 13y agoThanks! Wagtail is just a collection of apps which can be added to a standard Django project. Serafeim's tutorial demonstrates this: https://gist.github.com/tomdyson/8974456#creating-and-configuring-your-project https://gist.github.com/tomdyson/8974456#creating-and-config... Note https://github.com/torchbox/wagtaildemo/blob/master/wagtaildemo/urls.py#L46 https://github.com/torchbox/wagtaildemo/blob/master/wagtaild... (from the example Wagtail site). To incorporate it into an existing app you'll just need to adjust the URLs so Wagtail isn't taking over the whole URL space.
- deleted 13y ago[deleted]
- acd 13y agoVery 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 13y agoThanks! In case you missed it elsewhere there's a tutorial by Wagtail contributor Serafeim Papastefanos here: https://gist.github.com/tomdyson/8974456 https://gist.github.com/tomdyson/8974456 but we're working hard on official docs and a proper screencast.
- selmnoo 13y ago> To follow this tutorial you will need to have Python 2.7 installed with a working version of pip and virtualenv. Is that true in general for this CMS, that Python 2.7 will be needed? Python 3 isn't supported?
- tomd 13y agoYes, we focused on Python 2.x support for initial release. I'm afraid we haven't even tried Wagtail on Python 3 yet. Having said that, at Torchbox (where Wagtail originated) we have a general if somewhat vague principle that - as responsible Python developers - we should support the adoption of Python 3, so 3.x support is certainly a goal for the project. If anyone has time to test Wagtail on Python 3 and report any problems to https://github.com/torchbox/wagtail/issues https://github.com/torchbox/wagtail/issues that will accelerate the work!
- Ricapar 13y agoQuick 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 :/
- abhimskywalker 13y agoJust tested out the demo site on local machine. The admin pages look gorgeous!!! Great work!
- gizzlon 13y agoAnyone got a working dockerfile for the demo? Took a stab at it, but it doesn't work :( https://index.docker.io/u/oyvindsk/wagtaildemo-incomplete/ https://index.docker.io/u/oyvindsk/wagtaildemo-incomplete/ https://github.com/oyvindsk/docker-playground/tree/master/dockerfiles/wagtaildemo https://github.com/oyvindsk/docker-playground/tree/master/do...
- gizzlon 13y agoALmost works now: docker run -p 8000:8000 oyvindsk/wagtail-demo https://index.docker.io/u/oyvindsk/wagtail-demo/ https://index.docker.io/u/oyvindsk/wagtail-demo/
- felipebueno 13y agoWow, 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 13y agoPlease let us know if you end up using it. We'll post a Wagtail t-shirt to your sister's bakery!
- SEJeff 13y agoWould 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 13y agoThat sounds very delicious to me. this CMS to build sites, and S3 static to host them :)
- tomd 13y agoThe Royal College of Art (for whom Wagtail was originally developed) have commissioned an 'archive' feature, which will take a snapshot of the whole site, or a sub-section of it, and export as standalone HTML with all assets. We're planning to extend this feature to support publishing to S3 / Github Pages / SFTP etc.
- slater 13y agoReally 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 13y agoWagtail 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
- leo_santagada 13y agoDoes it support content in two languages?
- tomd 13y agoYes, 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.
- deleted 13y ago[deleted]
- dangayle 13y agoThanks for the hard work. We need more CMSs in Python!
- ereckers 13y agoAfter watching your marketing video I now know why I don't get much done. You guys work fast.
- kkl232 13y agoReally excited for a CMS that takes the writing experience into account
- eknuth 13y agoNice! I was just reevaluating the django cms world and happened to stumble on this post. Any support for multiple languages, yet?
- tomd 13y agoHi 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."