I've spent a bit of time working up a simple application in the Snap web framework. This proved to be a bit of a challenge: the documentation for Snap is definitely a work in progress, and doesn't cater well to a Haskell newbie such as myself. This account is intended to help others in my position get up to speed on Snap, by filling in some of the information that the tutorial's authors may have taken for granted. It is not intended as a standalone introduction to Snap. If you want to use this document to help you learn Snap, I would suggest the following steps:
- Read the three Snap documents in the TUTORIAL section
- Read through this document
- Build an example application
Snap was absolutely easy to install and get running. The API introduction walks you through creating a hello-snap app from scratch. The app has a built-in HTTP server that serves a few simple web pages. My goal was to create a web page that integrated data from a PostgreSQL database.