Todo App - Yancy Tutorial

This tutorial shows how to get started using the Mojolicious web framework with the Yancy content management system. The tutorial walks through starting a new Mojolicious application in a development environment using Carton, setting up a Postgres database with Mojo::Pg, configuring and using Yancy to manage content, and building a basic To-Do list web application.


I want to build an app that helps me remember the little things I should be doing. It should be able to:

I should be able to navigate between days to see what I have to do tomorrow, or fix something I missed yesterday.

The completed todo list app


This tutorial assumes that you already have Perl 5 installed on your system. Mojolicious requires at least Perl 5.10, which is included by default in most Linux distributions. See for help installing Perl

Once you have Perl installed, you should also install the Carton module from CPAN. See Modern Perl for help installing CPAN modules

This tutorial assumes you have some basic Perl knowledge. has free online books for learning Perl no matter your programming skill level. I recommend Beginning Perl if you are just starting out in programming, and Modern Perl or Impatient Perl if you have experience with other programming languages.

You should be able to run commands from a command-line. This is how we'll run the application we build.


  1. Set up a development environment
  2. Start a new Mojolicious application
  3. Build the application schema
  4. Add and configure Yancy
  5. Populate the recurring to-do data
  6. Display the to-do list
  7. Mark to-do items as completed
  8. Navigate between dates -- Up next
  9. Design a UI with Bootstrap -- In progress
  10. Write tests with Test::Mojo -- Not started
  11. Configure and Deploy -- Not started