Haskell Web

Open-source Haskell projects categorized as Web

Top 23 Haskell Web Projects

  • postgrest

    REST API for any Postgres database

    Project mention: Ask HN: What are some unpopular technologies you wish people knew more about? | news.ycombinator.com | 2023-12-02

    Turn your Postgres database into a REST API: https://postgrest.org

  • hakyll

    A static website compiler library in Haskell

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • yesod-persistent

    A RESTful Haskell web framework built on WAI.

    Project mention: It's 2023, so of course I'm learning Common Lisp | news.ycombinator.com | 2023-07-26
  • servant

    Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more!

    Project mention: An alternative front end for Haskell? | news.ycombinator.com | 2023-10-07

    > do you really have to understand language extensions?

    You do when your code doesn't compile and you're trying to figure out what the error message means, or when the library you want to use makes heavy use of it for even basic functionality.

    > These days one just enables GHC2021

    My experience was pre-GHC2021. I basically had to enable at a minimum 5-6 language extensions in every single file.

    > Mostly they're just about removing unnecessary restrictions from the older standard.

    Yeah, those ones are usually fine. I have zero objection to things like FlexibleInstances or DeriveFoldable.

    > Could you give an example?

    I believe I was trying to implement Central Authentication Service using Servant. However, that required returning a custom HTTP status code. There has been an open Github issue for this since 2017, but it seems to require basically rewriting the entire framework: https://github.com/haskell-servant/servant/issues/732

    Looking back at it now Servant does have "ServerError", but that basically requires giving up all the advantages Servant claims to have and I believe it was not a viable option at the time. Looking at the timeline I was probably also on Servant 0.15, and there seems to have been a rewrite since then.

    I vaguely recall running into a similar issue trying to interact with a database, but I can't remember the details of that.

  • scotty

    Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository)

    Project mention: haskell todo list app (beginner) | /r/haskell | 2023-06-08

    I would suggest checking out scotty for the http server - it uses warp by default, and is very beginner-friendly.

  • neuron

    Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote)

  • aeson

    A fast Haskell JSON library

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • obelisk

    Functional reactive web and mobile applications, with batteries included.

    Project mention: Help initializing obelisk project | /r/reflexfrp | 2023-05-01

    Hello I remember successfully setting up obelisk a while ago and have gone through the instructions https://github.com/obsidiansystems/obelisk and ensured that everything is installed correctly, when I run the install command fro obelisk it says that it's installed but when I run ob init I get an error of command not found, this is an arch machine not nixOS. Any help would me much appreciated.

  • reroute

    Another Haskell web framework for rapid development (by agrafix)

  • transient

    A full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)

  • webify

    webfont generator - converts ttf to woff, eot and svg

  • graphql-api

    Write type-safe GraphQL services in Haskell

  • morpheus-graphql

    Haskell GraphQL Api, Client and Tools

  • wreq

  • react-haskell

    React bindings for Haskell

  • req

    An HTTP client library (by mrkkrp)

  • postgres-websockets

    PostgreSQL + Websockets

    Project mention: PostgREST – Serve a RESTful API from Any Postgres Database | news.ycombinator.com | 2022-12-29

    At work, we've finally replaced a large part of a custom (mostly-)web backend with PostgREST recently, and that's quite a relief: considerably less code to maintain in that project now, and that was a rather awkward code. Something akin to PostgREST's "Embedding with Top-level Filtering" [1] had to be provided for all the tables, with OpenAPI schema and a typed API (Haskell + Servant); I avoided manually writing it all down, but at the cost of poking framework internals, and maintainability suffered. It was particularly annoying that the code doesn't really do anything useful, except for standing between a database and an HTTP client, and simply mimics the database anyway. Whenever a change had to be introduced, it was introduced into the database, the backend, and the frontend simultaneously, so it wasn't even useful for some kind of compatibility.

    Now PostgREST handles all that, and only a few less trivial endpoints are handled by a custom backend (including streaming, which I'm considering replacing with postgrest-websocket [2] at some point).

    During the switch to PostgREST, the encountered minor issues were those with inherited tables (had to set a bunch of computed/virtual columns [3] in order to "embed" those), and with a bug on filtering using such relations (turned out it was an already-fixed regression [4], so an update helped). Also a couple of helper stored procedures (to use via /rpc/) for updates in multiple tables at once (many-to-many relationships, to edit entities along with their relationships, using fewer requests) were added (though the old custom backend didn't have that), the security policies were set from the beginning, the frontend was rewritten (which allowed to finally switch without adding more work), so it was only left to cleanup the backend.

    Not using views, since as mentioned above, database changes usually correspond to frontend changes, and the API doesn't have to be that stable yet.

    Happy with it so far.

    [1] https://postgrest.org/en/stable/api.html#embedding-with-top-...

    [2] https://github.com/diogob/postgres-websockets

    [3] https://postgrest.org/en/stable/api.html#computed-virtual-co...

    [4] https://github.com/PostgREST/postgrest/issues/2530

  • nixpkgs-update

    Updating nixpkgs packages since 2018

  • scalpel

    A high level web scraping library for Haskell. (by fimad)

  • three-layer

    :three: :cake: Architecture of the Haskell web applications

    Project mention: My Module Structure Does Not Feel Haskell-like | /r/haskell | 2022-12-13

    I’m working on this pet project for a time now. Initially based on the three-layer repository, it’s now modelled after the Clean Architecture. In my understanding, it’s an OOP variation of the functional “Functional Core, Imperative Shell” approach. As most examples for Clean Architecture are written in C#, my module structure also looks more like a typical C# than Haskell one to me.

  • haskanoid

    A free and open source breakout clone in Haskell using SDL and FRP, with Wiimote and Kinect support.

    Project mention: [ANN] Yampa 0.14.4 | /r/haskell | 2023-08-09
  • lucid

    Clear to write, read and edit DSL for writing HTML (by chrisdone)

  • keter

    Web app deployment manager

    Project mention: Am trying to deploy a Yesod website using Keter but it can't recognize the hostname | /r/haskellquestions | 2023-12-06

    Am using the Yesod scaffold and I have followed the documentation but am stuck here, where am getting the error hostname not recognized. The formatting in Reddit is bugged for me in old.reddit so go to Github, https://github.com/snoyberg/keter/issues/285, for code please.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-12-06.

Haskell Web related posts


What are some of the best open-source Web projects in Haskell? This list will help you:

Project Stars
1 postgrest 21,420
2 hakyll 2,618
3 yesod-persistent 2,571
4 servant 1,749
5 scotty 1,665
6 neuron 1,492
7 aeson 1,217
8 obelisk 894
9 reroute 673
10 transient 627
11 webify 434
12 graphql-api 404
13 morpheus-graphql 393
14 wreq 377
15 react-haskell 349
16 req 331
17 postgres-websockets 327
18 nixpkgs-update 320
19 scalpel 314
20 three-layer 299
21 haskanoid 266
22 lucid 265
23 keter 257
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives