The purpose of this campaign is to improve the Wagtail CMS through a series of goals fixing popular & hard issues.
It is an initiative by NoriPyt with the approval of the Wagtail core team.
Since the company creation in 2015, NoriPyt always built Wagtail sites.
Over the years we developed a ton of workarounds for common issues, and often had to create our own systems on a per-project basis.
As part of the Wagtail core team, we contribute as much as possible to avoid these workarounds. Unfortunately, it takes time to report, write tests, write docs, make a pull request, answer to reviews and questions while working on client projects. So most of our workarounds and new features stay closed-source works-in-progress…
This is now time for us to spend a lot more time on Wagtail.
It’s time for StreamField to be beautiful and easy to use.
It’s time to get the best form builder.
It’s time for the admin to support all Django features.
It’s time to get autocompletion everywhere.
It’s time to get content internationalisation out-of-the-box.
It’s time to get even better performance and stability.
It’s time Wagtail becomes the inseparable companion of Django.
The goals are divided in 3 categories:
- 1 main goal for an ergonomic StreamField
- 5 stretch goals for better user and dev comfort
- 4 visionary goals to reach new heights
During the whole operation, an example site will be available to showcase all the recent works so other developers can easily check out the changes.
The main goal is to improve and unify StreamField & InlinePanel user interfaces. As you can see on the mockups, we will add these features:
- drag-and-drop blocks for faster reordering
- collapse all blocks except the currently edited ones (click on the bar to open one block)
- a bar regrouping item summary & controls
- multiple design improvements so the structure looks clear
This goal will put together multiple works we are already using in production: workarounds, closed-source libraries, etc. Here is the demo of the high-performance drag-and-drop library we created and want to integrate to Wagtail:
InlinePanel will now look like StreamField! It seemed obvious to have the same interface: for editors, both are the same except that inline panels have one level of one type of block.
- €11,500: New form builder written from scratch. Based on StreamField, it provides multiple new features, including file/image fields and step-by-step forms. See the demo below.
- €16,000: Make ChooserPanel generic, allowing to use it with any model. As a bonus, we open source a template tag automatically positioning cropped background images on the focus area.
- €20,000: Improve the whole admin styling. There will be new paginations, better field width, checkboxes, a new HelpPanel and further minor styling issues that bugged us for years.
- €24,000: Autocomplete in the admin search as well as a new AutocompletePanel. AutocompletePanel will work on text & related fields, and its query will be customizable.
- €40,000: Improve ModelAdmin. ModelAdmin will have almost all Django features, like list_editable, date_hierarchy & actions. This goal will also generalize ModelAdmin so Page, Document & Image use it, making them customizable.
- €53,000: Full out-of-the-box content internationalisation support. Any model, not just pages, will be translatable in any number of languages. The admin interface will be adapted. Search internationalisation will also arrive. Option to differentiate tree structure between languages will arrive with the django-tree replacement.
- €58,000: Make Wagtail more modular, so we can just use the admin or just search, without having to use the CMS part. Wagtail will become the new trendy alternative to Django’s admin and Haystack’s search.
- €83,000: Rewrite the admin using Jinja2 for extreme performance. This will also drastically simplify code, as it will allow to remove a ton of workarounds due to Django template engine lacks.
- €100,000: Replace django-treebeard with django-tree, for a stronger, simpler and faster foundation of tree structures. This is also required to have the option to differentiate tree structure between languages.
Here’s the detail of the time required to finish each goal (excluding review time).
Unify StreamField & InlinePanel UIs: 4 months → August 2018
StreamField-based form builder: 1 month → September 2018
Generic ChooserPanel: 2 months → November 2018
Admin styling: 3 weeks → December 2018
Autocomplete in the admin search: 2 weeks → January 2019
Improve ModelAdmin: 5 months → June 2019
Content internationalisation: 2 months → August 2019
Make Wagtail more modular: 1 month → September 2019
Rewrite the admin using Jinja2: 5 months → February 2020
Replace django-treebeard with django-tree: 3 months → May 2020
Be aware that we have other works to do in the meantime, that’s why the estimated time is not proportional to the amount requested. Some tasks are very intense and require a full-time dedication, others can be done in efficient 3 hours sessions.
Of course, what’s nice with code crowdfunding is that you don’t have to wait for the last date to actually use what has been done: each separate task will be pushed once ready. Wagtail will have 2 intense years of heavy improvements!
NoriPyt is the digital agency founded by Bertrand Bordage in 2015 after 4 years of freelance work.
Over the past 12 months, NoriPyt’s contributions to Wagtail include:
- the new admin preview
- the PostgreSQL search backend
- the new interface listing object uses before deletion (upcoming)
- new features in search: autocomplete, boost, multi-language support (upcoming)
Bertrand will be the developer of this project. NoriPyt’s designer, Alexandre Plu, will assist Bertrand for every goal requiring front-end work.
All Wagtail issues have been read in the preparation of this campaign to gather popular and blocking issues.
At least 36 issues will be fixed if all goals are funded. This may not seem much, but keep in mind that these are some of the most difficult Wagtail issues.
Unify StreamField & InlinePanel UIs: #1033, #1336, #1532, #2123, #2264, #4179
StreamField-based form builder: #1348, #1556, #1564, #3001
Generic ChooserPanel: #1806
Admin styling: #592, #1442, #2305, #2335, #2687, #2888, #3823
Improve ModelAdmin: #121, #216, #634, #675, #2719, #2756, #2758, #2759, #2893, #2941, #3844, #3966
Content internationalisation: #96, #1177, #2075
Make Wagtail more modular: #3716
Rewrite the admin using Jinja2: #3062
Replace django-treebeard with django-tree: #3658
Risks and challenges
Like any entreprise, this campaign has some risks.
The main risk concerns visionary goals: they may be trickier to implement than anticipated. For example, making Wagtail more modular may take a lot of extra time, we can’t tell without trying. In case that happens, we will move the goal to our benevolent open source work. We will still finish it, but with an increased delay.
Another risk is community rejection. The implementation of some goals may end up being strongly disliked by a part of the community. Until there is consensus, the implemented goal will be made available as a third-party project.
The final risk is the review time. We know that pull requests tend to just sit there, waiting for someone competent and interested to make a review. This can take a while, so to avoid it we planned a 3 hours review budget for each goal.
Overall, the risk is pretty low: NoriPyt & Bertrand have a strong open source work history, plus this whole project is the outcome of two years of reflection & careful technical consideration.Learn about accountability on Kickstarter
- (30 days)