Saturday, April 13, 2013

Haskell Site

A website capable of handling comments and posts written using the Haskell Snap framework

Overview

My 3rd iteration of this blog, using the Haskell Snap Framework.  It was one of the first Snap sites to actually have live comments and dynamic content.

Features

  • Strongly typed comments (Using Prelude.read and rebuilding through Hexpat), meaning no possible injection attacks
  • Completely git controlled (with ssh), meaning no need to explicitly deal with permissions, and automagic hooks for rebuilding and publishing
  • JQuery plugins for doing popup images, image scrolling, and some of my own code for comment boxes and list navigation
  • Haskell serialized data structures for everything (No real benefit over Mongo or Couch, but it works so far)
  • Can handle multiple sites based on how it's called (ie. What domain name is used to get to that IP address)
  • Negative captcha that tries to detect if a comment is from a robot, instead of a normal captcha which tries to verify it is from a human 

 

Images



 

Source Code

https://github.com/plurSKI/haskellSite

 

Conclusion

I really did like the layout, design, and how to post.  The main issue was using a VPS, which costs per month.  Originally was planning to use it for a lot of things but didn't, and I couldn't justify $20 a month to host a blog.  Also I was finding maintenance a problem.  Snap was under heavy development at the time, and porting to new versions was not something I wanted to spend time doing.

Statistically it got roughly ~1/2 million hits over it's lifetime (2.5 years), and only about 40 non-bot hits a day.  I didn't post as much though, due to real life, which I contribute to the slump in traffic compared to my old iteration.

No comments: