An alternative Haskell home page

Update 2020-05-24

The web site has since been through various iterations and changes, therefore I include some screenshots below for posterity (because my design is much more beautiful than what is now online ;-).

An alternative Haskell home page

I started a couple months back an alternative home page for Haskell. It is a work in progress, but as I work on it every so often I push changes to it.

What’s wrong with haskell.org?

haskell.org isn’t doing a satisfactory job for me as a place to impress people with Haskell and to guide them into using it.

Why not fix haskell.org?

The current home page is historically resistant to change, technologically and socially. My relationship to haskell.org over the years has been one of stonewalling when requesting access, of slow replies, and of bike-shedding and nitpicking when proposing designs. A camel is a horse designed by committee and haskell.org is such a horse.

So your plan is?

The plan goes like this:

What do all language sites have and what should they all have?

I looked at the following web sites:

There are good points and bad points for each one, but I came up with a set of things that are common among all, and a couple additional points I came up with:

Existing crop of language home pages

If you’re interested in my review of each home page, here’s what I wrote:

Generally, I’m not sure why sites bother with search boxes. Unless they’re implementing code-aware searches, Google will be faster and more accurate every time. As Joel Spolsky says of his StackOverflow, Google is the user interface to SO.

Regarding linkitis, I will quote Don’t Make Me Think that a user will happily click three links to narrow down what they want, than to have to think and search around a page to find what they want, if they have the patience for it.

The audience

The audience is newbies. People who use Haskell don’t go to haskell.org. They go to Hackage, or they google search and find wiki entries, or the GHC manual. A home page shouldn’t cater to Haskellers, it should cater to would-be Haskellers.

Naysayers for an attractive home page say things like “we don’t want superficial people joining the community” (as if they could just learn Haskell on a whim!), but forget that people live insular lives. There are millions of people out there who’ve never heard of Haskell. If a random web user stumbles upon it and is taken by the look of it, what are they going to do with it? Share it. How did you first hear of Haskell? I was told about it by a friend.

To decide on the kinds of things I want to see on a landing page when I first look at a language I’m unfamiliar with I ask a bunch of common questions. I’ve condensed them all in the user stories section.

The theme

I’ve always liked the purple and green of the old Haskell logo. I don’t know why gray/sky blue ended up being used for the new logo. So I decided I’d keep that purple theme and made some mockups. Purple is a cool color.

User stories

The user stories I’ve identified have been encoded in the main navigation:

Ahoy, ye olde mockup!

I synthesized all this together into a comp in Inkscape.

I think it answers the following questions:

I made a mockup for the subsite, but that’s uninteresting.

Implementation

I’ve implemented a starting prototype here at haskell-lang.org. At the time of writing it doesn’t yet fully flesh out all the things planned in the mockup.

There are a few half-done pages in the navigation, fleshed out just enough to satisfy my plan and to motivate for further work.

Here’s a quick comparison of the two sites now:

To illustrate, here’re the sites on various devices:

I’ve also made a little page to render wiki pages from haskell.org. There is a simple request sent to haskell.org for /wiki/* pages, it parses the Wiki syntax with pandoc and renders it to HTML, at least for the pages that MediaWiki is kind enough to serve. Example: Handling errors in Haskell

Here is the above wiki page with a cleaned up presentation.

Note that MediaWiki is a bit stunted in the data it exposes for use. Some pages just aren’t available, others produce invalid XML, etc. This is why the wiki is not exposed in the navigation.

I’m not sure about exposing the wiki directly, but rather some selected vetted pages, perhaps.

Going forward

I still have to:

I’m happy with the look and feel and organization. Now is the matter of filling it with useful things. That’ll take about a month, by weekend/spare-time development. Once that’s done, it will be ready to link to newbies. I’ll have a link to be proud of when people bring up Haskell.

I could solicit the community for contributions via pull requests. It depends on people approving of the project and my approach. So if you’re reading this and you accept my design and organization3 and would like to contribute content (content pages are written in markdown), then pull requests to the github repo would be most handy. I will merge your changes and redeploy with relative speed.

In particular, content in wanting which is not straight-forward for me to produce:

I won’t be able to actively work on this for a few days, but I can do bits and bobs here and there on the weekend and I always have time to merge straight-forward changes.

Questions/comments, feel free to email me: [email protected] Put a note in the email if you wish to be CC’d with other people in the discussion.


  1. When I open haskell.org on my phone, I see the tablet-sized layout with tiny text. The layout goes wonky on the tablet version.↩︎

  2. Having two navigations leads to arbitrary choice.↩︎

  3. That means that you won’t nitpick design decisions, bike shed about the theme, organization, choice of picture in the landing page, etc.↩︎

  4. Maybe type-classes and monads might be of interest because both where pioneered by Haskell and, at least in their native support, are both peculiar to Haskell.↩︎