[web-devel] Re: Yesod usage in the wild

Rehno Lindeque errantkid at gmail.com
Sun Jul 18 14:09:18 EDT 2010

On Sun, Jul 18, 2010 at 10:09 AM, Luc TAESCH <luc.taesch at googlemail.com> wrote:
> hey congrat Rehno,
> Good to see real things popping up !!
> May I ask you two things, out of curiosity ?
> 1/ Do you have any idea how long it took you to do the reach this point ?
> how much of learning curve , versus just doing ?
> 2/ Style wise, it is interestingly different . how did you design it?
> beforehand with photoshop, or some templating ?
> 3/ where did you hosted it , btw ? got some good response time here in
> belgium...:-)  just good to know hosting that works and accept haskelish
> deployment
> Well done , anyway
> Luc

Thank you very much for the compliments Luc. So, maybe I should try to
give a short summary of the experience so far for the benefit of
others trying out yesod.

Keep in mind that
* I'm newish to Haskell
* I'm not a professional web-dev, my day job is as a C++ programmer.

I started with a mock-up of the two main pages in Inkscape first. I
like the vector graphics stuff because you can play around with the
sizes for icons without messing up the quality. The two main tabs are
loaded with ajax and stored in a client session to make browser
refresh work. Doing it this way causes quite a few headaches with the
browser history and search engines though, so beware.

In all honesty it took me quite a while to get to the current point:
If I had to make a rough guestimate I'd say about 5 days full-time
plus another 3 weeks on-and-off in the evenings. That said, most of
the time went into things that are completely unrelated to Haskell or
Yesod. I've used Ruby on Rails in the past and I'd guess it probably
took me roughly the same amount of time. I'm also pretty sure the
second time around will be a great deal faster.

I'm using an excellent shared host called bluehost.com with so-called
"unlimited storage space" for quite cheap. I looked quite seriously at
nearlyfreespeech.com as well. Unfortunately nfs seems to be a bit
costly when it comes to storage space. If you consider that only ghc
with the common packages weighs in somewhere around 300 mb... well, it
to adds up. Hopefully in future they'll fine-tune the pricing
structure because it sounds like a very nice host. With bluehost you
can also just upgrade to a dedicated server if you start generating a
lot of traffic.

Obstacles I had:
* There's a bit of a trick to installing haskell libraries on
bluehost. Some times they fail to install and you have to go to the
~/.cabal/packages/hackage.haskell.org folder, untar the package and
'cabal install' that sucker manually.
* Couldn't get darcs working on bluehost, so I had to use svn. Getting
svn working was a bit annoying.

Things I loved about Yesod & Haskell:
* There are libraries for everything. Cabal install anything.
* It scales nicely as you project grows. This is my main motivation
for using Haskell in general. With rails I always worried that
something I did would break something else so you have to keep
building brain-dead unit tests for everything. In Haskell it's more
like: "Yay it compiles! Time for a coffee."
* Almost no boiler-plate code.
* Type safety everywhere. I sleep soundly knowing that my hrefs are safe.
* Hamlet is awesome.
* Everything is in modular packages that stands alone. You've simply
got to believe that this is the smart way of building software.
* Michael is super quick at responding to comments and queries and
takes a lot of input from the community.

Here's the few relevant things in Yesod itself that have slowed me
down. Nothing major really:
* Basic handler didn't work for me with CGI, I had to use
Network.Wai.Handler.CGI directly. (not sure why)
* Yesod was at 0.2.0 when I started, it's at 0.4.1 now and things
changed a little bit. I'm still catching up on the newest changes. I
wouldn't dream of complaining though!
* I can't seem to get RPXnow/Janrain authentication to work (but I'm
still trying :-))
* You have to write your own payment integration modules and shopping
carts etc from scratch.
* CSS and Javascript is, was and always will be a pain. (I haven't
tried the new Yesod widgets yet though...)
* The Yesod docs are good in some ways, but a little bit incomplete in others.
* There's no "dreamweaver" for hamlet.
* The template haskell is a bit magical if you're learning yesod in a
hurry. You need to have the documentation at hand to figure out what
data types are generated. This is to be expected though and the
compiler helps out. Perhaps some "cheat sheets" type of documentation
would help?
* There's no 'yesod init' type of command-line shortcut (yet).
* The yesod website is a little bit... hard on the eyes. (Sorry
Michael, no offense!)

Of course there are the usual Haskell nitpicks:
* I still have no idea how to debug
* Compiler messages are big and nasty
* I've heard about these so-called "space leak" things and I'm worried
about getting one :)

And the last point I consider both a pro and a con:
* I spent a great deal of time reading up on funky Haskell stuff
(Applicative? Monad? Monoid?)

Overall, I've had a very positive experience. I wouldn't switch to
another framework easily now.


> On Sun, Jul 18, 2010 at 9:25 AM, Rehno Lindeque <errantkid at gmail.com> wrote:
>> On Sat, Jul 17, 2010 at 6:29 PM, Rehno Lindeque <errantkid at gmail.com>
>> wrote:
>> > On Fri, Jul 16, 2010 at 11:01 AM, <michael at snoyman.com> wrote:
>> >> Hey all,
>> >>
>> >> I'm going to be putting up a "powered by Yesod" place on the Yesod
>> >> homepage[1], and wanted to know if anyone had sites they'd like placed
>> >> there. It can be live websites or projects that use Yesod, I'm not
>> >> picky ;).
>> >>
>> >> Michael
>> >
>> > Thanks for all the amazing work Michael, Yesod is making astounding
>> > progress.
>> >
>> > My website isn't complete yet but I felt keen to share it with other
>> > haskellers so I put it up anyway, The address is
>> > www.urbanlisting.co.za. UrbanListing is a free listing website for the
>> > South African property market. In the future it will sport some
>> > advanced features like virtual tours / walkthroughs. If you feel feel
>> > that it's good enough in its current state then please feel free to
>> > add it!
>> >
>> > Regards,
>> > Rehno
>> >
>> I meant to Re: Yesod in the wild, sorry about that everyone!
>> _______________________________________________
>> web-devel mailing list
>> web-devel at haskell.org
>> http://www.haskell.org/mailman/listinfo/web-devel

More information about the web-devel mailing list