ihp VS Phoenix

Compare ihp vs Phoenix and see what are their differences.

ihp

🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness (by digitallyinduced)

Phoenix

Peace of mind from prototype to production (by phoenixframework)
Our great sponsors
  • Mergify - Tired of breaking your main and manually rebasing outdated pull requests?
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
ihp Phoenix
121 103
4,075 19,935
1.0% 1.0%
0.0 9.4
7 days ago 3 days ago
Haskell Elixir
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ihp

Posts with mentions or reviews of ihp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-27.

Phoenix

Posts with mentions or reviews of Phoenix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-08.
  • Emoji Generator with AI
    2 projects | news.ycombinator.com | 8 Sep 2023
    Yes! I love Elixir :) [Phoenix LiveView](https://www.phoenixframework.org/) is really amazing. I feel so fast working in it. I got hooked after watching Chris McCord's ['Build a real-time Twitter clone in 15 minutes'](https://www.youtube.com/watch?v=MZvmYaFkNJI&embeds_referring...), and things have improved a lot since then.
  • Ask HN: Leetcode for Back End and Server Development
    4 projects | news.ycombinator.com | 11 Jul 2023
  • 30 Best Web Development Frameworks for 2023: A Comprehensive Guide
    5 projects | dev.to | 4 Jul 2023
    Phoenix
  • The Lazy Programmer's Intro to LiveView: Chapter 1
    3 projects | dev.to | 18 Jun 2023
    Whenever I forget how to start a new Phoenix project all I have to do is go to https://www.phoenixframework.org/, click on Guides, and right on my left then open the 'Installation' page. To get the latest Phoenix installer run the command below.
  • Ask HN: What are some of the most elegant codebases in your favorite language?
    37 projects | news.ycombinator.com | 17 Jun 2023
    I’m surprised that nobody has posted about Elixir yet. I nominate the excellently written Phoenix library. Not only is the code well organized and easy to find, the documentation is expansive and right next to the code.

    https://github.com/phoenixframework/phoenix

  • Switching to C over 'Modern' Programming Languages
    3 projects | news.ycombinator.com | 13 Apr 2023
    I'm not personally familiar with it, but I think you want to take a look at Elixir. I've heard it often in the same vein as Rust but for web. Not exactly the same, but in terms of a high-quality language.

    https://elixir-lang.org/

    https://www.phoenixframework.org/

  • I think I messed up my CS degree. I am about to graduate and don't feel like I know anything. What do I do?
    4 projects | /r/cscareerquestions | 20 Mar 2023
    If you want to do web apps, I'd recommend Django (a python framework) https://docs.djangoproject.com/en/4.1/, but you can do Rails, or Phoenix, or Spring Boot, or whatever. It doesn't terribly matter *which* one you do, as they share characteristics, and, chances are, your company will be using a different one :). Just pick one and go. You can do it. You know a lot more than you think.
  • React is a fractal of bad design
    12 projects | news.ycombinator.com | 7 Mar 2023
    4 letters. HTMX.

    Or look at https://www.phoenixframework.org/ to see what a web framework would look like if real-time updates mattered. (That said I do find that simple IoT applications like a volume knob for my smart speakers in party mode or that can toggle my lights do work well with websockets + mobx + React.)

    As for DX, I think waiting for "npm run start" to get out it's own way is a large enough decrement that I don't have to get into all the many problems w/ JS build systems.

    I will grant that React is nice for an animation-heavy UI and I play video games enough that I appreciate such things. Another thing I like about React vs similar competitors is that the rendering model is flexible enough to enable things like react-three-fibers which is another reason for me not to invest in Vue, Svelte and things like that.

    As for user experience isn't it the dark truth that Google and Facebook want "as many UI redraws as possible?" Let's face it, the honest clickthrough rate on ads is indistinguishable from zero but when you visit some site like anandtech it is by no means accidental that the layout rerenders endlessly because each rerender is a chance that a click on a link is transmogrified into a click on an ad. It's covert click fraud and is a large enough decrement and between that and the endless staring at spinners and waiting things to load any possible increment in user experience is at best hypothetical.

    (e.g. in another window I have a completely SSRed app that uses HTMX. It uses zero spinners, runs as fast or faster than a desktop app, and never has the UI move around mindlessly. I grant it would be cool if it had some more animation but would I trade that for rock solid responsiveness?)

  • Ladies and Gentleman, the award for Developer of tue Year goes to:
    2 projects | /r/ProgrammerHumor | 6 Mar 2023
    Only takes 15 min to build a clone https://www.phoenixframework.org/
  • Phoenix 1.7.0 Released: Built-In Tailwind, Verified Routes, LiveView Streams
    13 projects | news.ycombinator.com | 5 Mar 2023
    I don't think there is a definite answer for "what a property designed framework" is but I can try to explain where Phoenix sits in the possible trade-offs.

    One possible approach frameworks use to provide escape hatches is configuration. You ship with a series of defaults and, once you want to change it, you need to find out the proper knob to turn. A downside of this approach is finding the proper knobs when you need to tweak it.

    Another approach is code generation: you generate code (or configuration) and keep the knobs clear to user. There are still defaults (and conventions) but the knobs are laid out upfront in your application. The downside here is that having so many knobs upfront may seen daunting or noisy.

    Since you mentioned Rails, I will provide references on how Rails and Phoenix use those.

    Both frameworks leverage both techniques above, but Phoenix errs more on code generation and Rails more on configuration. Here is a practical example.

    Rails has a middleware stack that is part of all applications. This stack is hidden from you. Here is how the generator file for said application looks like:

    https://github.com/rails/rails/blob/d0d9e8e576b06c19f8507510...

    Phoenix has a similar stack (called plug) and the default stack is part of your application. Here is the generator file for it (it is not part of your app but used to generate it):

    https://github.com/phoenixframework/phoenix/blob/3c27a34c27c...

    You can look at these approaches and try to compare the pros and cons.

    ---

    My biased opinion: I have worked with both and I prefer the Phoenix approach. I understand someone may find having all steps in your endpoint noisy or daunting, but the plus side is that it takes a glance to see all steps a request goes through and you can tweak it in any way you want.

    When comparing to Rails, if you want to insert a middleware in the middle of the default stack, you need to explicitly say before or after which middleware. If you want remove something, you need to state the negation and say "I don't want to have this". Overtime this makes it hard for you to visualize what your application does, because you need to assemble the pieces in your head and use tools to print the stack for you.

    This also matters on releasing new framework versions. Because Rails has its own stack, if it changes the default middleware stack in any way, it can slightly change how your code. What if the middleware you were inserting before was moved up? Or removed altogether? Or maybe a middleware you deleted was replaced by another one, with similar functionality. Do you want to remove it too? This can lead to subtle differences of behaviour when upgrading.

    The code generation approach requires you to opt-in to the new features, which is, IMO, one of the reasons why Phoenix could avoid breaking changes in the last 8 years or so.

    This is in no way a knock on Rails. I am 100% confident the Rails team is aware of those trade-offs and could equally argue for their choices. It also isn't a binary choice either, both frameworks use both approaches, with some general preferences for one over the other.

What are some alternatives?

When comparing ihp and Phoenix you can also consider the following projects:

Django - The Web framework for perfectionists with deadlines.

sugar - Modular web framework for Elixir

hotwire-rails - Use Hotwire in your Ruby on Rails app

kitto - Kitto is a framework for interactive dashboards written in Elixir

trot - An Elixir web micro-framework.

RIG - Create low-latency, interactive user experiences for stateless microservices.

Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications

Ruby on Rails - Ruby on Rails

miso - :ramen: A tasty Haskell front-end framework

Stimulus - A modest JavaScript framework for the HTML you already have

morphdom - Fast and lightweight DOM diffing/patching (no virtual DOM needed)

placid - A REST toolkit for building highly-scalable and fault-tolerant HTTP APIs with Elixir