Third-party tutorials
---------------------

.. warning::

    The following list is a collection of tutorials and development notes from third-party developers.
    Some of the older links may not apply to the latest Wagtail versions.

* `Create a Developer Portfolio with Wagtail Tutorial Series <https://engineertodeveloper.com/category/wagtail/>`_ (11 November 2020)
* `Image upload in wagtail forms <https://dev.to/lb/image-uploads-in-wagtail-forms-39pl>`_ (21 October 2020)
* `Wagtail multi-language and internationalization  <https://dev.to/codista_/wagtail-multi-language-and-internationalization-2gkf>`_ (8 April 2020)
* `Wagtail SEO Guide <https://www.accordbox.com/blog/wagtail-seo-guide/>`_ (30 March 2020)
* `Adding a latest-changes list to your Wagtail site <https://spapas.github.io/2020/03/27/wagtail-add-latest-changes/>`_ (27 March 2020)
* `How to support multi-language in Wagtail CMS <https://www.accordbox.com/blog/how-support-multi-language-wagtail-cms/>`_ (22 February 2020)
* `Deploying my Wagtail blog to Digital Ocean <https://rosederwelt.com/deploying-my-wagtail-blog-digital-ocean-pt-1/>`_ Part 1 of a 2 part series (29 January 2020)
* `How to Create and Manage Menus of Wagtail application <https://www.accordbox.com/blog/wagtail-tutorial-12-how-create-and-manage-menus-wagtail-application/>`_ - An updated overview of implementing menus (22 February 2020)
* `Adding a React component in Wagtail Admin <https://dev.to/lb/adding-a-react-component-in-wagtail-admin-3e>`_ - Shows how to render an interactive timeline of published Pages (30 December 2019)
* `Wagtail API - how to customize the detail URL <https://dev.to/wagtail/wagtail-api-how-to-customize-the-detail-url-2j3l>`_ (19 December 2020)
* `How to Add Django Models to the Wagtail Admin <https://dev.to/revsys/how-to-add-django-models-to-the-wagtail-admin-1mdi>`_ (27 August 2019)
* `How do I Wagtail <https://foundation.mozilla.org/en/docs/how-do-i-wagtail/>`_ - An Editor's Guide for Mozilla's usage of Wagtail (25 April 2019)
* `Learn Wagtail <https://learnwagtail.com/>`_ - Regular video tutorials about all aspects of Wagtail (1 March 2019)
* `How to add buttons to ModelAdmin Index View in Wagtail CMS <https://timonweb.com/tutorials/how-to-add-buttons-to-modeladmin-index-view-in-wagtail-cms/>`_ (23 January 2019)
* `Wagtail Tutorial Series <https://www.accordbox.com/blog/wagtail-tutorials/>`_ (20 January 2019)
* `How to Deploy Wagtail to Google App Engine PaaS (Video) <https://www.youtube.com/watch?v=uD9PTag2-PQ>`_ (18 December 2018)
* `How To Prevent Users From Creating Pages by Page Type <https://timonweb.com/tutorials/prevent-users-from-creating-certain-page-types-in-wagtail-cms/>`_ (25 October 2018)
* `How to Deploy Wagtail to Jelastic PaaS <https://jelastic.com/blog/deploy-wagtail-python-cms/>`_ (11 October 2018)
* `Basic Introduction to Setting Up Wagtail <https://medium.com/nonstopio/wagtail-an-open-source-cms-cec6b93706da>`_ (15 August 2018)
* `E-Commerce for Django developers (with Wagtail shop tutorial) <https://snipcart.com/blog/django-ecommerce-tutorial-wagtail-cms>`_ (5 July 2018)
* `Supporting StreamFields, Snippets and Images in a Wagtail GraphQL API <https://wagtail.io/blog/graphql-with-streamfield/>`_ (14 June 2018)
* `Wagtail and GraphQL <https://jossingram.wordpress.com/2018/04/19/wagtail-and-graphql/>`_ (19 April 2018)
* `Wagtail and Azure storage blob containers <https://jossingram.wordpress.com/2017/11/29/wagtail-and-azure-storage-blob-containers/>`_ (29 November 2017)
* `Building TwilioQuest with Twilio Sync, Django [incl. Wagtail], and Vue.js <https://www.twilio.com/blog/2017/11/building-twilioquest-with-twilio-sync-django-and-vue-js.html>`_ (6 November 2017)
* `Upgrading from Wagtail 1.0 to Wagtail 1.11 <https://www.caktusgroup.com/blog/2017/07/19/upgrading-wagtail/>`_ (19 July 2017)
* `Wagtail-Multilingual: a simple project to demonstrate how multilingual is implemented <https://github.com/cristovao-alves/Wagtail-Multilingual>`_ (31 January 2017)
* `Wagtail: 2 Steps for Adding Pages Outside of the CMS <https://www.caktusgroup.com/blog/2016/02/15/wagtail-2-steps-adding-pages-outside-cms/>`_ (15 February 2016)
* `Adding a Twitter Widget for Wagtail’s new StreamField <https://jossingram.wordpress.com/2015/04/02/adding-a-twitter-widget-for-wagtails-new-streamfield/>`_ (2 April 2015)
* `Working With Wagtail: Menus <https://www.tivix.com/blog/working-with-wagtail-menus/>`_ (22 January 2015)
* `Upgrading Wagtail to use Django 1.7 locally using vagrant <https://jossingram.wordpress.com/2014/12/10/upgrading-wagtail-to-use-django-1-7-locally-using-vagrant/>`_ (10 December 2014)
* `Wagtail redirect page. Can link to page, URL and document <https://gist.github.com/alej0varas/e7e334643ceab6e65744>`_ (24 September 2014)
* `Outputing JSON for a model with properties and db fields in Wagtail/Django <https://jossingram.wordpress.com/2014/09/24/outputing-json-for-a-model-with-properties-and-db-fields-in-wagtaildjango/>`_ (24 September 2014)
* `Bi-lingual website using Wagtail CMS <https://jossingram.wordpress.com/2014/09/17/bi-lingual-website-using-wagtail-cms/>`_ (17 September 2014)
* `Wagtail CMS – Lesser known features <https://jossingram.wordpress.com/2014/09/12/wagtail-cms-lesser-known-features/>`_ (12 September 2014)
* `Wagtail notes: stateful on/off hallo.js plugins <https://www.coactivate.org/projects/ejucovy/blog/2014/08/09/wagtail-notes-stateful-onoff-hallojs-plugins/>`_ (9 August 2014)
* `Add some blockquote buttons to Wagtail CMS’ WYSIWYG Editor <https://jossingram.wordpress.com/2014/07/24/add-some-blockquote-buttons-to-wagtail-cms-wysiwyg-editor/>`_ (24 July 2014)
* `Adding Bread Crumbs to the front end in Wagtail CMS <https://jossingram.wordpress.com/2014/07/01/adding-bread-crumbs-to-the-front-end-in-wagtail-cms/>`_ (1 July 2014)
* `Extending hallo.js using Wagtail hooks <https://gist.github.com/jeffrey-hearn/502d0914fa4a930f08ac>`_ (9 July 2014)
* `Wagtail notes: custom tabs per page type <https://www.coactivate.org/projects/ejucovy/blog/2014/05/10/wagtail-notes-custom-tabs-per-page-type/>`_ (10 May 2014)
* `Wagtail notes: managing redirects as pages <https://www.coactivate.org/projects/ejucovy/blog/2014/05/10/wagtail-notes-managing-redirects-as-pages/>`_ (10 May 2014)
* `Wagtail notes: dynamic templates per page <https://www.coactivate.org/projects/ejucovy/blog/2014/05/10/wagtail-notes-dynamic-templates-per-page/>`_ (10 May 2014)
* `Wagtail notes: type-constrained PageChooserPanel <https://www.coactivate.org/projects/ejucovy/blog/2014/05/09/wagtail-notes-type-constrained-pagechooserpanel/>`_ (9 May 2014)

You can also find more resources from the community on `Awesome Wagtail <https://github.com/springload/awesome-wagtail>`_.

.. tip::

    We are working on a collection of Wagtail tutorials and best practices. Please tweet `@WagtailCMS <https://twitter.com/WagtailCMS>`_ or `contact us directly <mailto:hello@wagtail.io>`_ to share your Wagtail HOWTOs, development notes or site launches.
