Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
4 lines (2 sloc) 4.52 KB

Please feel free to add your own testimonials below.

If you have a real-life Yesod success story, please let us know.

Blake Rain, Massive Tactical

It's about 6am here. I've been rushing the past few days to get a working demo of one of our sites up for a meeting with an investor tomorrow. I thought I'd take a few minutes to share a few results:

The site itself is deceptive: it is considerably more complex than the original idea led us to believe. This is actually the third generation of the application: the others were in C# (2) and PHP (1). None of them were very good, and were riddled with bugs. Each feature took longer and longer to implement: development time was almost exponential in terms of required features.

Haskell helped me to avoid so many problems; I don't need to tell you about how great Haskell is. The more I wrote, the faster it was to write. Development time is now a much nicer function.

Widgets are a really big win here. The site has several rather complex controls, which are used in various places. I had previously attempted this with ASP.Net controls (and failed).

Yesod's widgets just made life so simple I was quite literally moved. There is so much reuse of HTML, CSS and JavaScript in this site it amazes me.

My only regret was that I used persistent and PostgreSQL. NOT because of any deficiencies on the part of either persistent or Postgre themselves: persistent is a really wonderful library, and a joy to work with. More that the system I am modelling just doesn't sit well with a relational database.

The major bottleneck for the site is the database. The next point-release might use something like acid-state, and do away with the database altogether. Thankfully, persistent is a separate package from Yesod, so this will be a reasonably trivial refactoring.

Although my choice of using a relational database was flawed, persistent's abstractions made what would have been quite tedious work relatively painless.

The production server (using Warp) benchmarked at 45,079 requests a second for the index page... (and it's writing out somewhat more than "PONG"). That is pretty scary; the potential is quite worrying.

In conclusion, I feel qualified in stating that Haskell is a fantastic language for web development.

But this couldn't have happened if it was not for your amazing work with Yesod, Warp and their friends. You have truly brought the power of Haskell to the world of web development, and I have met my deadline because of it. Thank you.

Yours Sincerely,


Simon Cheung, Designer at Massive Tactical

In the beginning, I found Hamlet and Cassius to be quite strange. After some time I found it a lot easier to use. The Hamlet makes rapid design easier: less typing and no worrying about tag mismatches. It was also really good to only have to do something once with widgets!

It took me a bit longer to get to grips with haskell: when I get told that "customers is a [(CustomerId, Maybe Customer)]" it took me a while to work out what to do with it :) After I'd learned basics it became a lot easier and my work was a lot simpler.

Working at Massive started off quite scary: totally different development than what Im used to! After having worked on two projects using Yesod I will wish they are all this easy!


Between our server and client we use C, C++, Java, Objective-C, Javascript and Haskell. We've got weird runtime errors and sometimes even race conditions in all of them except Haskell. Yesod is clearly far behind rails and django in terms of convenience, but already has a much stronger foundation and the potential to catch up quick without giving that up.

You can’t perform that action at this time.