# What can we learn from FastHTML?

**URL:** <https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663>\
**Category:** Web Stack\
**Created:** [July 31, 2024, 6:31am UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663 "2024-07-31T06:31:07Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)\
**Post date:** [July 31, 2024, 6:31am UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/1 "2024-07-31T06:31:08Z")

</div>

Looks like Jeremy Howard has put quite a lot of thought into the design of FastHTML [GitHub - AnswerDotAI/fasthtml: The fastest way to create an HTML app](https://github.com/AnswerDotAI/fasthtml).

It could be interesting to see what his demo app [fasthtml/examples/adv\_app.py at main · AnswerDotAI/fasthtml · GitHub](https://github.com/AnswerDotAI/fasthtml/blob/main/examples/adv_app.py) would look like in Genie.jl

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [August 1, 2024, 9:56am UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/2 "2024-08-01T09:56:40Z")

</div>

I didn’t know about FastHTML so thanks for the post. I actually also ran into a nice webapp framework based on angular under the hood but which is made completely in python for the end user. It’s super sleek and works really well. I think something like it would boost web development significantly in Julia. Even though you could use PyCall etc. to call directly into it I believe this is something that would be really cool in native julia. It’s called [Mesop](https://google.github.io/mesop/).

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [August 1, 2024, 10:01am UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/3 "2024-08-01T10:01:33Z")

</div>

What should be better in FastHTML than we have with [GitHub - OxygenFramework/Oxygen.jl: 💨 A breath of fresh air for programming web apps in Julia](https://github.com/OxygenFramework/Oxygen.jl) ?

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [August 1, 2024, 10:25am UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/4 "2024-08-01T10:25:45Z")

</div>

As a heavy, and happy, user of [`Oxygen.jl`](https://github.com/OxygenFramework/Oxygen.jl) I would say it’s the inclusion and ease of creating the UI side of interactive web apps. Especially since he’s basing it on [HTMX](https://htmx.org/) which is a really good idea IMHO.

---

<div class="post-metadata">

**Author:** ![Pere](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pere/32/214250_2.png) [@Pere](https://discourse.julialang.org/u/Pere)\
**Post date:** [August 1, 2024, 11:09am UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/5 "2024-08-01T11:09:04Z")

</div>

We already have something like this in Julia with [Stipple.jl](https://learn.genieframework.com/framework/stipple.jl/docs)! It allows you to expose data to the browser and implement callbacks with just a few macros, and write the UI in Julia. See the [app gallery](https://learn.genieframework.com/app-gallery) for some app examples.

Moreover, there’s also a VSCode extension called [Genie Builder](https://learn.genieframework.com/geniebuilder/docs) for building the UIs visually without writing any code at all.

Last, if we’re striclty talking about HTML pages here. Genie.jl also implements a low-code API that replicates most HTML tags. See an intro guide [here](https://learn.genieframework.com/framework/genie.jl/guides/creating-web-pages).

---

<div class="post-metadata">

**Author:** ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)\
**Post date:** [August 1, 2024, 1:33pm UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/6 "2024-08-01T13:33:08Z")

</div>

> [@ufechner7](#):
>
> What should be better in FastHTML than we have with Oxygen.jl?

I don’t know. That’s why I hoped to nerdsnipe somebody to do the comparison 😉

---

<div class="post-metadata">

**Author:** ![tp2750](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tp2750/32/207806_2.png) [@tp2750](https://discourse.julialang.org/u/tp2750)\
**Post date:** [August 1, 2024, 2:07pm UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/7 "2024-08-01T14:07:51Z")

</div>

Thank you for the reply @DoktorMike .  
It’s a good observation that HTMX is what sets FastHTML apart.  
Looking at [HTMX.jl](https://github.com/joshday/HTMX.jl/tree/main) it should not be too hard to add HTMX to Oxygen.jl. That would probably take us quite close.

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [August 1, 2024, 2:48pm UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/8 "2024-08-01T14:48:18Z")

</div>

I’m so glad you pointed this out – I’ve been mulling over a Julia HTMX generator… but the great minds of Julia always beat me to it 🙂

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [August 1, 2024, 5:10pm UTC](https://discourse.julialang.org/t/what-can-we-learn-from-fasthtml/117663/9 "2024-08-01T17:10:09Z")

</div>

I cannot believe I didn’t know about the HTMX.jl package 📦 😂

Really great to see some HTMX love in Julia.
