dream-html VS idiomorph

Compare dream-html vs idiomorph and see what are their differences.

dream-html

Render HTML, SVG, MathML, htmx markup from your OCaml Dream backend server (by yawaramin)

idiomorph

A DOM-merging algorithm (by bigskysoftware)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
dream-html idiomorph
9 14
134 594
- 6.9%
8.2 7.6
6 days ago 2 days ago
OCaml JavaScript
GNU General Public License v3.0 only BSD 2-clause "Simplified" 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.

dream-html

Posts with mentions or reviews of dream-html. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-25.
  • Dream-HTML – render HTML, SVG, MathML, Htmx markup from OCaml
    1 project | news.ycombinator.com | 30 Apr 2024
  • A Response to "Have Single-Page Apps Ruined the Web?"
    3 projects | news.ycombinator.com | 25 Apr 2024
    There is some truth to this. Imho the next level of htmx is unlocked when you componentize everything like a React app...but with nested routes corresponding to nested components like a Remix app...and using an HTML generation DSL embedded directly in your language, so HTML becomes a first-class citizen of your language's constructs, rather than a templated afterthought. I have a demo of this: https://github.com/yawaramin/dream-html/tree/todoapp/app
  • Second-Guessing the Modern Web
    6 projects | news.ycombinator.com | 21 Sep 2023
    Nowadays I highly recommend HTML embedding libraries directly in the programming language. E.g. ScalaTags https://com-lihaoyi.github.io/scalatags/ or (my own) https://github.com/yawaramin/dream-html

    Yes, you give up the ability of designers and frontend-only people to easily work with the HTML templates. But in exchange you get quite a lot.

  • That people produce HTML with string templates is telling us something
    16 projects | news.ycombinator.com | 26 May 2023
    I found your article very informative and it matches up quite a bit with my own thinking about HTML generation. In fact it looks like we independently arrived at pretty much the same conclusions. A lot of the issues you raise are the impetus behind the way I designed my HTML-generation DSL: https://github.com/yawaramin/dream-html
  • What's the most htmx-ish language for the server side?
    5 projects | /r/htmx | 7 May 2023
    I am developing an HTML generation library on top of Dream, to have great support in the language including htmx support: https://yawaramin.github.io/dream-html/dream-html/Dream_html/index.html
  • dream-html: Generate HTML markup from your Dream backend server
    1 project | /r/ocaml | 2 May 2023
  • My Thoughts on OCaml
    11 projects | news.ycombinator.com | 25 Apr 2023
    Look at this code which prints out an HTML tag: https://github.com/yawaramin/dream-html/blob/main/lib/dream_...

    Initially you might think generating HTML tags from data structures in code should be a simple matter. But there are complexities--some tags are defined as having no child tags, others do. Some tags are purely character data (unstructured text), not structured data. Some are just comments. We need a way to compose multiple tags together into a single 'virtual' tag for flexible HTML generation. All these conditions can be pretty hard to keep track of--unless your compiler does exhaustiveness checking. Then the compiler will tell you if you missed any cases.

    In the example above I didn't make any manual effort to cover all the cases, I simple listed out the cases I wanted to handle in order. The compiler made sure that I didn't miss any.

idiomorph

Posts with mentions or reviews of idiomorph. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-25.
  • A Response to "Have Single-Page Apps Ruined the Web?"
    3 projects | news.ycombinator.com | 25 Apr 2024
    in plain htmx, you can target an area that doesn't disrupt a playing video (e.g. the comments box appending to the comments) or you can use a morphing algorithm that disrupts the DOM less.

    i have my own morphing algorithm (and a corresponding htmx plugin that allows you to use it) called idiomorph:

    https://github.com/bigskysoftware/idiomorph/

    i've also been working with the chrome team to get a feature added they are calling "atomic moves":

    https://github.com/whatwg/dom/issues/1255

    this would allow us to move elements around in the DOM without losing things like play state or focus or whatever

    very excited for this last idea, I think it will be a huge boon for the web in general, not just for htmx

  • The Aha Stack
    1 project | news.ycombinator.com | 3 Jan 2024
    for htmx 2.0 i'm integrating this functionality into the core

    it's based on the head morphing algorithm of idiomorph:

    https://github.com/bigskysoftware/idiomorph/

    which 37Signals is going to integrate into Turbo for v8:

    https://twitter.com/ben_pylo/status/1717975035669876790

    [1] - https://htmx.org/essays/locality-of-behaviour/

  • Htmx is part of the GitHub Accelerator
    12 projects | news.ycombinator.com | 16 Aug 2023
    i certainly hope not

    the 2.0 would drop IE support, remove the older SSE and WebSocket support, and switch a couple of defaults (e.g, using template wrapping for parsing partial content, which handles troublesome elements like table rows better, but isn't available in IE) so it would be a breaking change (not for most folks, but still, breaking for some) which I only like to do w/ major versions.

    we may have one major addition: a morph swap based on idiomorph:

    https://github.com/bigskysoftware/idiomorph/

    i'm on the fence on that one: it is currently available as an extension and maybe doesn't belong in the core, still thinking about it

    so, in comparison with most libraries, 2.0 is going to be very minor

  • Htmx Is the Future
    9 projects | news.ycombinator.com | 5 May 2023
    maybe I'm too close to it, but htmx feels like a hack to address things that really should be part of the HTML spec

    if browsers got into the game I would assume they could do things much faster and integrate things like preload (https://htmx.org/extensions/preload/) and idiomorph (https://github.com/bigskysoftware/idiomorph/) much more cleanly w/ the rest of the browser infrastructure

  • htmx is in the first cohort of the GitHub Accelerator! | The GitHub Blog
    1 project | /r/htmx | 13 Apr 2023
  • Writing JavaScript without a build system
    13 projects | news.ycombinator.com | 16 Feb 2023
  • Ask HN: What have you created that deserves a second chance on HN?
    44 projects | news.ycombinator.com | 26 Jan 2023
    idiomorph:

    https://github.com/bigskysoftware/idiomorph

    it's an updated take on the DOM morphing algorithm of morphdom, and it uses what i call "ID sets" to allow the morphing algorithm to "see" children in the DOM when making morphing decisions in the parents, which means you don't need to annotate the DOM with as many ids

    here is a demo showing how it outperforms morphdom when ids are sparse/deep:

    https://github.com/bigskysoftware/idiomorph#demo

  • Ask HN: What's Your Proudest Hack?
    12 projects | news.ycombinator.com | 12 Dec 2022
    my trick for making the `htmx:confirm` event act like it is blocking:

    https://github.com/bigskysoftware/htmx/blob/a3c414dcee94fd03...

    basically, redesign the arguments for a function such that I can call it again at a given spot with one parameter changed and, to a first order approximation, it acts as if the function is resumable.

    I've used this hack in many places now, just recently in idiomorph to allow head elements to load before the rest of the content is morphed:

    https://github.com/bigskysoftware/idiomorph/blob/e6dfc189fa3...

  • Moving from React to htmx on a real-world SaaS application
    1 project | /r/django | 16 Oct 2022
    That being said, htmx is about 3000 lines of mostly-understandable JavaScript. Really, the only two somewhat ugly parts of the code are history support and the somewhat fancy swapping model that enables CSS transitions. And it's basically baked at this point. I plan on adding a merge-style swap (https://github.com/bigskysoftware/idiomorph), better head merging and cleaning up some rough edges in htmx 2.0, but the core API shouldn't change at all and for most people 2.0 will be the same as a point release. At that point, htmx will be done done, and just another tool to use when building websites.
  • Show HN: Idiomorph, a new DOM morphing algorithm
    1 project | news.ycombinator.com | 6 Oct 2022

What are some alternatives?

When comparing dream-html and idiomorph you can also consider the following projects:

litestar - Production-ready, Light, Flexible and Extensible ASGI API framework | Effortlessly Build Performant APIs

hyperview - Server-driven mobile apps with React Native

htmlgo - A library for writing type-safe HTML in Golang

subtls - A proof-of-concept TypeScript TLS 1.3 client

literal-html - Simple and unsafe HTML/XML templates for TypeScript, using tagged template literals

smc - Simple Memory Check

rum - Simple, decomplected, isomorphic HTML UI library for Clojure and ClojureScript

tnds-tomasi-notebooks - Notebook usati per il corso di TNDS

flog - Pre-Markdown static site generator based on UNIX tools and XSL

star-history - The missing star history graph of GitHub repos - https://star-history.com

typedef

datasette - An open source multi-tool for exploring and publishing data