Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    J

    Jasper Van der Jeugt

    jaspervdj.be · Personal blog · on HN since 2009

    Jasper Van der Jeugt writes about Haskell and is the author of Hakyll, a Haskell static site generator.

    Visit blogRSSHN submissions
    Languages & CompilersWeb DevelopmentProgramming
    What HN says

    HN commenters recommend Hakyll to people choosing a static site generator, calling it powerful and the best option for functional programming fans, though not easy to start.

    Stats for nerds
    62HN people shared it
    38linked in comments
    657story points
    Apr 2026last shared
    2011people per year2026

    Top posts on HN

    1. 1
      Turnstyle – An esoteric, graphical functional language
      1 person · 141 points · first shared 2024 · 8 comments on HN
    2. 2
      Designing a DCPU-16 emulator in Haskell: on determinism and I/O
      2 people · 75 points · first shared 2012 · 19 comments on HN
    3. 3
      Hakyll is a Haskell library for generating static sites
      29 people · 60 points · first shared 2011 · 7 comments on HN
    4. 4
      Simple Haskell webapp: Generate random tweets using Markov chains
      1 person · 55 points · first shared 2011 · 30 comments on HN
    5. 5
      Image Processing with Comonads
      1 person · 47 points · first shared 2014 · 10 comments on HN
    6. 6
      Google AI Contest: Literate version of the top scoring Haskell entry
      1 person · 40 points · first shared 2010 · 10 comments on HN
    7. 7
      Functions are data (and very cool data, too)
      1 person · 34 points · first shared 2009 · 6 comments on HN
    8. 8
      Monads and Arrows: modelling a build system
      2 people · 31 points · first shared 2012 · 1 comments on HN
    9. 9
      The Dwarfs and The Fast Marking Algorithm
      1 person · 25 points · first shared 2010 · 11 comments on HN
    10. 10
      Hakyll 3: A static site compiler DSL/library in Haskell
      1 person · 22 points · first shared 2011 · 6 comments on HN

    What HN people wrote when they linked it

    • tmoertelApr 2026

      Thanks. I do not have a public, detailed description of how my blog works. But in short, my site build system is powered by a Makefile that invokes Hakyll [1]. My Hakyll configuration has the following rule baked into it for generating HTML docs from Markdown docs in the `posts/` directory:

      match "posts/*" $ do
      route $ setExtension "html"
      let ctx = postCtx tags
      compile $ pandocMathCompiler
      >>= loadAndApplyTemplate "templates/post.html" ctx
      >>= saveSnapshot "content"
      >>= loadAndApplyTemplate "templates/add-comments.html" ctx
      >>= loadAndApplyTemplate "templates/default.html" ctx
      >>= relativizeUrls

      The `pandocMathCompiler` bit invokes Hakyll's Pandoc subsystem with support for rendering formulas using MathJax.

      The site Makefile also has rules to build PDF versions of the articles that I want to typeset. The rules just invoke Pandoc directly. For example, here's the rule used to generate the PDF file in my prior comment:

      sampling-with-sql.pdf: posts/2024-08-23-sampling-with-sql.md
      ( cd posts && pandoc --metadata-file=../templates/latex-header-includes.yaml -t pdf -o ../$@.tmp --pdf-engine=pdflatex ../$< && mv -f ../$@.tmp ../$@ )

      It's basically a straightforward invocation of Pandoc with a little shell boilerplate to prevent the PDF file from being moved into its final location unless Pandoc exits with success.

      The Makefile has a final "push" target that makes sure the…

    • manymanydotsApr 2023

      > No standard and easy way of implementing interfaces.

      > In Haskell, this is done with typeclasses ...

      > In OCaml there’s no way to do this. I have to explicitly pass functions along with my values, maybe in a product type, or with a functor, or as an argument.

      Haskell is a mixed community / paradigm language too.

      I routinely program in "Braindead Haskell" (keep stuff simple and direct as much as possible). Funnily, in that programming style, using typeclasses for _all_ interface types is bad style.

      Instead, the Handle pattern [0] can be used. Which really is just shoveling functions in a product type. And imagine - it works worderfully.

      Everyone has to find their own style I guess.

      [0]: https://jaspervdj.be/posts/2018-03-08-handle-pattern.html

    • petercronaDec 2020

      In case anyone is curious about the tech:

      I'm using Hakyll (https://jaspervdj.be/hakyll/index.html) to generate the static website and https://github.com/jaspervdj/hakyll-citeproc-example for reference handling (but adapted so that I have a ".bib" file per blog post).

      The reference handling was really painful when I tried to do it manually at first, but hakyll-citeproc has made it really easy. A lot of websites let you download a "citation" (in bibtex format) so you can just copy & paste it in your ".bib" file. For others, I use https://www.bibme.org/bibtex to generate one.

      For deploy, I use a simple deploy script (4 lines of code) that pushes it up to an amazon s3 bucket and clears the Cloudfront cache.

    • ghostwriterNov 2022

      plenty of projects that use either of the following on a regular basis:

      - https://www.aosabook.org/en/posa/warp.html

      - https://morpheusgraphql.com/

      - https://higherkindness.io/mu-haskell/

      - https://github.com/hasura/graphql-engine

      - https://postgrest.org/en/stable/

      - https://www.shellcheck.net/

      - https://dhall-lang.org/

      - https://haskell-miso.org/

      - https://github.com/jgm/gitit

      - https://jaspervdj.be/hakyll/

      - https://github.com/IHaskell/IHaskell

      - https://tweag.github.io/HaskellR/ (https://idontgetoutmuch.wordpress.com/2018/05/19/cartography-in-haskell/)

      The list can go on, it really depends on what level of "real-worldness" you consider to be real.

    • tikhonjOct 2013

      As far as mechanics go, I've found a great compromise between the power and convenience of a CMS and the simplicity of a static page: using a static site generator. I personally prefer Hakyll[1], as you might have guessed :P.

      This makes managing a structured site easy without having to configure a complicated server. Of course, it also means you can't have much dynamic content. For something simple--say comments--you could use an external service like Disqus, but you won't be able to do much beyond that without running your own server.

      [1]: http://jaspervdj.be/hakyll/

    • nielMar 2017

      The author's site appears to be built using Hakyll https://jaspervdj.be/hakyll/, which is a Haskell static site generator. You can find the source for this particular site on Github: https://github.com/barrucadu/barrucadu.co.uk

      The "clean look" you refer to is mostly thanks to custom CSS though - nothing specifically related to Hakyll.

      If you're thinking about building a similarly-styled blog or personal site, you could start by studying the styles this author used on their site: https://github.com/barrucadu/barrucadu.co.uk/tree/master/css

    Related

    Edward Z. Yangblog.ezyang.com165 people

    PyTorch Internals: Ezyang's Blog

    Edward Z. Yang
    Personal · last shared 2026
    Alexis Kinglexi-lambda.github.io172 people

    Parse, Don’t Validate

    Alexis King
    Personal · last shared 2026
    Haskell for Allhaskellforall.com190 people

    The category design pattern

    Haskell for All
    Personal · last shared 2026
    Lennart Augustssonaugustss.blogspot.com42 people

    BASIC as a Haskell DSL (2009)

    Lennart Augustsson
    Personal · last shared 2025
    Luke Palmerlukepalmer.wordpress.com35 people

    IDE WTF

    Luke Palmer
    Personal · last shared 2020
    Well-Typed Blogwell-typed.com60 people

    Falsify: Hypothesis-Inspired Shrinking for Haskell (2023)

    Well-Typed Blog
    Company · last shared 2026
    LiquidHaskell Blogucsd-progsys.github.io42 people

    Dependent Types now almost batteries-included in GHC Haskell

    LiquidHaskell Blog
    Company · last shared 2026
    Simon Marlowcommunity.haskell.org/~simonmar17 people

    Parallel and concurrent Haskell, Marlow [[PDF slide deck]]

    Simon Marlow
    Personal · last shared 2017