Add a simple view for the full list, serve api on different url.
Use cheshire for JSON de/encoding.

It looks to be a little less flexible, but it supports encoding dates
(but not decoding them, for some reason?).
Write out the todo-list after each modifying operation.