IHP 1.1 is out now!

The Type-safe Web Framework for Builders

The Haskell Framework for Non-Haskellers. Blazing fast, secure, easy to refactor and the best developer experience with everything you need - from prototype to production.

Move fast, without breaking things

PostgreSQL

IHP is a database centric framework. It comes with an integrated Postgres server out of the box.

learn more

Type-safe & Reliable

With Haskell and Nix we use the most reliable technologies available, to make sure your application will never crash because of Null Pointer Exceptions.

learn more

Full Stack

IHP comes with everything you need to build great web applications out of the box.

learn more

Auth

Easily add user signup and login to your app.

learn more

IHP was recognized as a High Performer

G2's Winter 2022 Web Framework Report

9.6
Overall Rating
8.9
Ease of Use
9.6
Quality of Support

What do our users say about us?

I have been learning Haskell through IHP. It's the best and actually simplest web framework I have ever tried. The developer experience is the best I ever had for a MVC-style framework. And I got to learn Haskell without banging my head too much against the wall. Really enjoyed it :)
Lars Lillo Ulvestad
Frontend Developer
I loved the idea of Haskell but hadn't been motivated to use it for significant projects until I tried IHP. Now it's the tool I reach for first when starting any side projects. I was even able to convince a non-Haskell programmer to give it a try, and they were productive with it in a matter of days.
Johnston Jiaa
Software Engineer
I love that it's based on Haskell, yet feels familiar like Rails: you get all of the superpowers of the Haskell compiler, which helps you avoid many classes of errors, and it's combined with the pragmatism of Rails which allows you to ship code quickly. I'm not a Haskell expert by any means, but I was able to build multiple prototypes within a week, all of which were much higher quality than I expected them to be.
John Yoder
VP Engineering, AppFolio
IHP is a fantastic framework that has rekindled my love for programming. It is beginner-friendly for those with little or no experience learning Haskell. It is easy to learn and use. It has a built-in browser-based IDE that provides essential features, such as a schema editor for database management and a code generator for rapid development. It has a very constructive and friendly community. Most importantly, however, it is fun to use.
Joshua Obritsch
Software Engineer
IHP is the best web framework experience I have had.
Henry Lambert
Founder, Comhlan Ltd.
IHP is ridiculously good. I hope it makes Haskell a bigger part of the web dev industry because wow
James Foster
@ratherforky
I think in Open Source projects two things are important among other: community and documentation. I found them in IHP.
Max Bertinetti
Web Developer
This is *very* impressive work. A whole new Haskell web framework based on Warp server, with a non-TH ORM and type-safe templating framework. πŸš€
Stephen Diehl
CTO & Founder
Dude... it's the coolest web framework I've used.... I think the people who try it, love it. I say that as someone coming from ASP.NET Core and a little bit of the F# ones (Giraffe and Saturn). IHP blows everything I've seen out of the water.
Eduardo Cavazos
Software Developer
This is a really impressive project, super excited to try it. All this time I've been doing Haskell web development I've been wishing for features like an admin UI and all the other things rails/django have had for a long time
Avi Press
CEO, Scarf
Granted I did not build a SPA this afternoon. But using @nixpkg I have a functioning database-webserver-client USING HASKELL. It is like suddenly all the effort learning Nix, Haskell and Web finally clicked into something that's not a promise, but REAL, NOW.
Daniel Vianna
Software Developer
I think IHP might be the killer framework for Haskell. Hashell on Rails.
π™ΌπšŠπš›πšπš’πš—
Software Developer
The more I look at IHP, the more I think this is Haskell's killer framework. Really excellent work.
Will Ricketts
Software Engineer
Amazed at the quality of documentation of IHP. They are doing a splendid job
Geoffrey Huntley
Principal Developer Advocate, Gitpod
If you've enjoyed the safety and pleasureable development experience on developing in #elmlang, and enjoyed the power, speed and of server-side rendered front-end with #phoenix_liveview, here comes #ihp (Integrated Haskell Platform) @digitallyinduce
Yeong Sheng (ζ°Έθƒœ)
Software Developer
This looks really good! The ORM gives me some Ecto/Elixir vibes Grinning face with smiling eyes :)
Luc Thielen
Software Developer
I've often wished for a Haskell on Rails, and IHP certainly delivers. Great documentation, lots of helper scripts and utilities, boilerplate generators, live reload (via Turbolinks?),

and, possibly most importantly,

it's totally divorced from the usual Haskell suspects
Matt Parsons
Software Developer, Mercury
tbh what I'm most excited about/impressed by is the schema/controller/model boilerplate handling and the admin interface in general
swann
@evertedsphere
IHP is supposed to become the Django/Rails/Phoenix of Haskell.

I’ve been using Django professionally for since 2013, but have started using IHP a couple of weeks ago. It’s still quite early but with surprisingly few rough edges, i.e. the developer ergonomics are much better than I expected. It has great documentation that is improving rapidly (as opposed to many other Haskell libraries, which provide little more than API docs or even just the typed function definitions) and offers a refreshing take on database management and migrations.
Hendrik Richter
CEO, evers-internet
I'm really impressed by the work behind IHP, Haskell is getting a Rails framework finally!
Domen KoΕΎar
Founder, Cachix
@digitallyinduce hey! :) just discovered IHP, kind of like the rails for haskell, awesome! just tweeting you to send some love <3
Miguel Salas
Software Developer
Reflecting on 2020, #IHP #haskell was by far the technology that made my year. Thanks to @_marcscholten and the @digitallyinduce team for open sourcing and driving this framework, it’s been inspiring to see all your hard work! Looking forward to what 2021 will bring! Rocket
Tom Hemmes
Software Developer

The world's most powerful programming language at your fingertips

IHP is a batteries-included web framework, optimized for longterm productivity and programmer happiness.

With IHP all your application code is written in Haskell - a functional programming language with an incredible type system, used by giants such as GitHub and Facebook.

Thanks to Haskell's impressive type system you can write code that is far more robust than you have seen before.

(Don't worry, you don't need to know much about Haskell to get started, you'll learn it along the way)

Star

Instant Live Reloading

While haskell is a compiled language, the built-in dev server automatically reloads your code changes using the fastest way possible.

Changes are reflected instantly. Just like good old PHP.

Write Beautiful Haskell Code

With IHP all your application code is written in Haskell - a functional programming with an incredible type system, used by giants such as GitHub and Facebook.

Thanks to Haskell's impressive type system you can write code that is far more robust than you have seen before.

Don't worry, you don't need to know much about Haskell to get started, you'll learn it along the way. IHP is the haskell web framework for non-haskellers.

-- Make a password hash
hash <- hashPassword "hunter2"

-- Set values
let user = newRecord @User
        |> set #email "someone@example.com"
        |> set #passwordHash hash

-- Insert it into the DB
createRecord user
action UsersAction = do

    -- Fetch 10 users ordered by firstname
    users <- query @User
        |> orderBy #firstname
        |> limit 10
        |> fetch

    render IndexView { .. }
-- The autoRefresh keyword makes the action realtime
-- No app-specific JS needed
--                        β†˜β†˜β†˜
action MessagesAction = autoRefresh do
    messages <- query @Message
        |> orderBy #createdAt
        |> fetch

    render IndexView { .. }
Learn more about IHP Auto Refresh

Design your Tables with the Schema Designer

IHP is a database centric web framework. We introspect your database schema to provide type-safe APIs and query builders.

You don't have to be a database expert to use IHP, with the Schema Designer you quickly click together your data structures.

If you like your code editor more, you can always manually edit the SQL files.

Sophisticated Forms

Stop dealing with repetitive form HTML code. IHP brings you a sophisticated but simple form engine that takes care of the HTML and validation logic.

instance View NewView where
    html NewView { .. } = [hsx|
        <h1>New Comment</h1>

        {renderForm comment}
    |]

renderForm comment = formFor comment [hsx|
    {hiddenField #threadId}

    <!-- Labels + Validation Results are taken care of -->
    {textareaField #body}

    {submitButton}
|]
instance View NewView where
    html NewView { .. } = [hsx|
        <h1>New Comment</h1>

        {renderForm comment}
    |]

renderForm comment = formFor comment [hsx|
    {hiddenField #threadId}

    {(textareaField #body) {
        fieldLabel = "Your Comment:",
        helpText = "You can use markdown here."
    }}

    <p>
        <!-- Use any HTML inside your forms -->
        Please double check your comment
        for spelling mistakes.
    </p>

    {submitButton}
|]
action CreateCommentAction = do
    let comment = newRecord @Comment

    comment
        |> fill @["body", "threadId"]
        |> set #userId currentUserId

        -- Actual validation here
        |> validateField #body nonEmpty
        |> validateField #threadId nonEmpty

        |> ifValid \case
            -- Validation Failed -> Render form + errors
            Left comment -> render NewView { .. }

            -- Validation Good
            Right comment -> do

                -- Insert comment to DB
                comment <- comment |> createRecord

                let commentId = get #id comment

                -- Redirect to comment
                redirectTo ShowCommentAction { commentId }

Try out what the future of software engineering feels like

Join our Community Today!

Stay up to date on Twitter

Follow digitally induced on Twitter to be first to know about news on IHP.

Connect with other Devs on Slack

If you're new to haskell the IHP Slack is a great place to get help.

Star IHP on GitHub

Curious about the code? Check out the IHP repository on GitHub.

Not yet ready to Code?

Stay up to date with our latest features and the new releases by signing up for our newsletter!