In case this got you interested in Haskell, and you want a good way to start your Haskell journey (and have something to apply the optimization handbook to), check out IHP. It's the Rails/Laravel of the Haskell world. Here's a demo video https://www.youtube.com/watch?v=UbDtS_mUMpI You can start here https://ihp.digitallyinduced.com/Guide/index.html or check it out on GitHub here https://github.com/digitallyinduced/ihp
HN user
_query
Founder, digitally induced GmbH
https://www.digitallyinduced.com/
marc a t digitallyinduced com
At IHP we've been using Algora for a while now and it works really great. Here's e.g. one PR that was merged last week with a bounty attached https://github.com/digitallyinduced/ihp/issues/1621 Everything was set up in less than 15 minutes and ioannis and zafer have been super helpful with any questions we had.
In general I think this is a good direction and an interesting take on the open question around sustainable open source. Congrats on the launch and keep up the great work! :)
Cachix manages the prebuilt binaries used by IHP. If you don't install Cachix, nix will compile a lot of IHP's dependencies from scratch. This takes a long while and is not recommended.
If you're interested in building web apps with Haskell, check out IHP. IHP is the Laravel/Rails/Django of the Haskell world. Might be a more pragmatic way to get into Haskell than SchoolOfHaskell
- Intro video demoing how to build apps with IHP: https://www.youtube.com/watch?v=UbDtS_mUMpI
- Docs to get started: https://ihp.digitallyinduced.com/Guide/index.html
- IHP reviews: https://www.g2.com/products/ihp/reviews
There's a couple editor plugins to get you that: For VS Code: https://marketplace.visualstudio.com/items?itemName=s0kil.vs... for
For Sublime: https://packagecontrol.io/packages/Haskell%20HSX
Check out the docs on editor integrations: https://ihp.digitallyinduced.com/Guide/editors.html
With VSCode the editor integration and autocompletion should work really well. You can see a demo in this video: https://www.youtube.com/watch?v=_8_8XYO6rgY
Thanks! :) I appreciate your feedback
The IDE is mostly designed as an extension to an editor heavy workflow (e.g. I use Sublime + VIM to build IHP itself). So it's unlikely to work well with a Chromebook. A workaround might be to use the GitPod integration for a web based code editor.
The IDE is btw entirely optional and everything can be done via code. E.g. all operations done via the visual Schema Designer are saved in the Application/Schema.sql file. That file can be edited from a code editor as you want. All operations in the schema designer operate on the AST of the parsed Schema.sql file.
Really happy we've finally got to the 1.0 status :) If you like to take a look at the code, check our GitHub at https://github.com/digitallyinduced/ihp
Yes, you can get pretty far without knowing anything about Haskell. Once you've something on the screen you'll eventually get to learn a bit more about functional programming and Haskell.
A good starting might btw be our IHP Casts Youtube playlist https://www.youtube.com/watch?v=PLl9Sjq6Nzc&list=PLenFm8BWuK...
IHP is really easy to package with nix nowadays. In fact the official docker building also just uses `pkgs.dockerTools.buildImage` and calls nix-build :) Most people with nix experience can easily figure out how to do exactly the same thing as the "official" way.
There's some unofficial ways to build docker images, check https://zacwood.me/posts/building-ihp-apps-github-actions/ :)
We've not changed our minds on docker becoming a free feature eventually. We just didn't update the pricing yet, but this is planned for the near future.
Check out thin.dev https://thin.dev/ It uses SQL DDL statements literally as the building blocks for everything.
Just to clarify: The basic version of IHP is free and open source. The IHP Pro subscription is only if you want some closed source features.
IHP users that built business critical apps with IHP actually liked it very much that we've introduced the subscription. It gives people more confidence that the framework will still be there in the longterm future.
You can find some more thoughts on this here: https://ihp.digitallyinduced.com/blog/6392ad84-e96a-46ce-9ab...
Here's a quote from someone in the Haskell community that says it well https://twitter.com/mattoflambda/status/1275469470559907840
You thought Yesod was Rails? Nope. Yesod is a highly modular library for developing web applications with a few opinions and some scaffolds.
IHP is Rails - all the components are glued together in a way that makes modularity difficult.
IHP actually provides a `cs` (cs as an abbrev for convertString) function that is always in scope. With that function you can easily convert between all different string types.
Yes, the paid features are part of a closed source fork of IHP
Thanks for the feedback!
Check out the docs for email confirmation here: https://ihp.digitallyinduced.com/Guide/authentication.html#e... You'll see that most parts of the confirmation workflow actually happen inside your application. Only the actual controller implementation is part of IHP pro, and it's just 20 lines of code. So you can easy implement this yourself.
Generally IHP uses a lot of standard libraries of the Haskell ecosystem. So you can always break out of IHP when things don't work. It's not much more lock in than other frameworks in the space :)
Some more background on the ideas behind the pricing can be found here btw: https://ihp.digitallyinduced.com/Guide/ihp-pro.html
We don't have a comparable ecosystem yet, but IHP uses many popular Haskell libraries under the hood. So many normal Haskell libraries integrate very well, as the underlying data structures are always exposed. Functional programs compose well in general due to it's stateless nature, that helps as well.
IHP also comes with a lot of things you'd typically use external packages for (e.g. Auth).
In general the IHP experience is very different from other Haskell web frameworks and much more batteries included, so a lot of apps typically don't need any external packages at all.
IHP is basically the rails/laravel/django of Haskell. If you haven't tried Haskell before or think Haskell is only about monads and math, give it a try and be surprised :)
Some links if you want to try out IHP:
- Intro video demoing how to build apps with IHP: https://www.youtube.com/watch?v=UbDtS_mUMpI
- Docs to get started: https://ihp.digitallyinduced.com/Guide/index.html
- IHP reviews: https://www.g2.com/products/ihp/reviews
Happy to answer any questions on IHP :)
In recent years the Haskell ecosystem has drastically improved.
With Haskell Language Server (HLS) there's now great autocompletion and inline error reporting for e.g. VSCode and other editors.
We've recently got dot-notation, so you can type `myRecord.myField` instead of `myField myRecord`, which makes Haskell code feel more familiar when switching from other languages.
With IHP we now even have a Haskell version of Rails/Laravel. It's really a superpower to have Haskell's type system combined with the rapid development approach of Rails :) Check it out here: https://ihp.digitallyinduced.com/ (I'm founder of IHP)
Serokell also has a great blog section on people using Haskell in the industry, e.g. recently there was an interview with the CTO of Mercury. https://serokell.io/blog/haskell-in-production
Yes, it's possible to build a traditional web company with Haskell. We've made IHP exactly for that :) It's like Rails/Django but for Haskell. https://ihp.digitallyinduced.com/ We specifically try to be batteries-includes (like rails), so you don't have to think too much about what libraries to use, the core of IHP can get you very far without needing to manually decide between libraries.
IHP even won a G2 badge, which is kind of funny and ironic for a Haskell project :D https://www.g2.com/products/ihp/reviews
Thanks to reintroduction of deep subsumption we could finally update IHP to the GHC 9 series. So really happy about the recent GHC releases :)
If you're curious about Haskell, IHP is a good starting point (https://ihp.digitallyinduced.com/ https://github.com/digitallyinduced/ihp). IHP is Haskell's version of Laravel/Rails/Django. It's really a superpower to have Haskell's type system combined with the rapid development approach of Rails :) (Disclaimer: I'm founder of the company that makes IHP)
Check out https://thin.dev/ :) It's similar, supports self-hosting and uses postgres. Quick demo video here: https://www.youtube.com/watch?v=-jj19fpkd2c&t=3s
(I'm founder of Thin)
Thanks! If you have feedback or questions once you tried it out, reach out any times :)
Real-time by default for everything is really a fun way to write web apps. A little bit inspired by Meteor we've build Thin Backend, which provides a real-time API for querying data and writing to a postgres database. If you're interested, check it out at https://thin.dev/ or check the demo video https://www.youtube.com/watch?v=-jj19fpkd2c
If you're new to IHP, here's a few links to get you started:
- Watch the intro video to get a rough overview of the framework: https://www.youtube.com/watch?v=UbDtS_mUMpI
- You can see all Features of IHP described on the website https://ihp.digitallyinduced.com/
If you want to play with IHP and build your first Haskell app:
- Installing IHP: https://ihp.digitallyinduced.com/Guide/installation.html
- Creating your First Project: https://ihp.digitallyinduced.com/Guide/your-first-project.ht...
- Building a Single Page App? Check Thin Backend (https://thin.dev/), it's basically IHP for Frontend :)
Most of IHP is available open source and free. Like 99% of it. The IHP Pro features are mostly targeted at people making money with IHP (e.g. companies and freelancers). The idea is that the Pro plan provides a longterm incentive for maintaining the framework. When we make a great framework that creates a lot of value for developers, we will have a lot of paying customers. When we have a lot of paying customers, we can be sure that IHP will be actively developed far into the future.
If you want to learn a bit more about the ideas why we added the paid plan to IHP, check the initial announcement post here https://ihp.digitallyinduced.com/blog/6392ad84-e96a-46ce-9ab... :)
Hey, Founder of Thin here. Thanks for mentioning us :)
On RethinkDB: The post-mortem of RethinkDB is a good read https://www.defmacro.org/2017/01/18/why-rethinkdb-failed.htm...
If anyone has questions regarding Thin I'm happy to answer.
IHP is mostly an open source project.
I comment on most Haskell threads about IHP because I would love to see more Haskell adoption. Most people think Haskell is about Monads and Math, with IHP we want to show that Haskell can be used in a very productive way to build things. The comments are typically well received, so I don't see any problem with this.