Tung on Cloud

Build a web application in Haskell

My take on building production-ready web application in Haskell.

This week’s Haskell Weekly (issue 82) include an interesting slide of one developer sharing his experience rewriting a Rails project using Haskell. You can read the slide here:

[Slides] Joy & frustration of putting 34,000 lines of Haskell into production

I’m new to Haskell, however I have plenty experience building apps in Django and Rails, and all of the slides’ issue is very relevant in building production app. The slide make me worried I decide to start building a small, yet product-ready app to explore the Haskell eco system for my self.

In this project we’re going to build a Twitter clone. I will also focus on making it as close to production ready as possible, in the same spirit of the Rails tutorial https://www.railstutorial.org/book. The app will include

  • Database model definition and querying
  • Database migration
  • Deployment, with continuous integration and delivery
  • Testing: unit test and integration tests
  • Logging and incident reporting
  • Instrument and optimization
  • Form validation
  • RESTFul API and JSON serialize
  • Caching
  • Authentication and authorization
  • l10n and i18n

In the end of each week there will be a summary post. Stay tune!