Rendered at 01:06:31 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
blister 9 hours ago [-]
I've been using htmx for three years now, and it's completely unlocked new ways of building software for the web, especially if you use a server-side templating language.
But more importantly (as this "Game Boy" option reveals), the head honcho is really responsive with the items in the store. I had purchased a coffee mug a few years back and complained on Twitter that they need to sell larger mugs instead of only offering little tiny baby mugs that only hold ~8 ounces of liquid. The next day, he added giant 48-ounce monsters to the store and I've been drinking out of that mug every day since.
Grimblewald 1 hours ago [-]
It's been massive for me as well. I would say my web developmemt is best described as dabbling in web development, and I mostly do so for websites that cater to academic interests and conference / society managment and organising. So, relativly niche.
However, I think HTMX is a beauty. Fast, simple, and doesnt come with all the bloat and BS a JS heavy / JS first deployment comes with. I can quikckly build fast and responsive sites that cost visitors very little to use/interact with.
websites have less compatability issues now, load extremely fast (google web speed score from 60-80 to flat 100), and have fewer points of failure. Debugging is a breeze. Websites are no less pretty or useful for it. In fact, they look better now because time otherwise wasted on Js BS is now free to use to tinker with / improve aesthetic, or add new features.
I'm in love with HTMX. It feels like what the web should have always been. There's absolutly zero reason a random website, without my knowledge or consent, should be running extremely heavy compute and analytics on my own device. That should never have been possible/permissible in the first place.
stevoski 5 hours ago [-]
> I've been using htmx for three years now, and it's completely unlocked new ways of building software for the web, especially if you use a server-side templating language.
Likewise. 3 or 4 years ago, I ripped out two-thirds of all the JS in my B2B SaaS by using htmx with server-side templating. So much simpler.
The ethos of allowing a return to a simpler way of building a web app resonates with me.
mlhpdx 3 hours ago [-]
Likewise, I started using HTMX with AWS Step Functions as the backend and it’s been difficult but also a joy. Sfn these days makes for a weird and wild text templating engine. I’ve been thinking about working on DSL overlay to smooth the bumps a bit.
_jackdk_ 3 hours ago [-]
That is not a use cases I would've expected Step Functions to handle; I'm intrigued. You're using express ones, I assume, but how are you wiring them up and why?
mlhpdx 1 hours ago [-]
API Gateway direct integration to Step Functions. Unlike Lambda, there is not automatic transform for requests so I just wrote one and copy/paste it to each method integration (via a preprocess script; one of the ugly bits). Yes, EXPRESS state machines. I’ve found they have better tail latency behavior, and of course they involve zero patching/dependency updates which is nice.
The state machines use JSONata for the sweet, sweet power vs JSONPath. Generally I have a Parallel state that splits the different parts of the page and Map states for data driven repetition (usually some data pulled from DDB). I have a simple JSONata method for replacing placeholder values (aka data binding). Zero Lambda at the cost of come copy paste.
I’m not unhappy with it despite the warts.
_jackdk_ 25 minutes ago [-]
Thanks for replying, that's an interesting architecture. The idea of using a high-up parallel state seems particularly neat as a way to ensure every part of the page render stays independent, and to burst up the compute serving the response.
sgt 7 hours ago [-]
Exactly, I just released another project made with htmx and it's almost like you can't beat that velocity.
orphereus 4 hours ago [-]
Sorry, but at that size (1.25 liters) for my European brain, it's not a mug anymore, it's a barrel.
TeMPOraL 4 hours ago [-]
Right. People look at me funny for drinking my tea from a 500 ml thermal mug, courtesy of USS Defiant replicators, and it's not because of the Starfleet delta on it (people don't even recognize it, philistines).
1.25 liters is way beyond even my own addiction to lightweight liquid stimulants.
crote 4 hours ago [-]
I think the legal term is a "heart attack".
walthamstow 4 hours ago [-]
It's more than double the size of a Sports Direct mug, which is about the largest cup of tea a Briton would consider
scumdude 9 hours ago [-]
Tell me about it. I made a joke about the store selling 'Complexity Bad' onesies, and he started selling them later that day.
This implies it's all dropshipped print-on-demand, of course. Which is fine if you're just considering it a donation incentive rather than a worthwhile product in its own right.
cure_42 2 hours ago [-]
Yeah I had the same thought. I was vaguely interested before, but I have no desire to own more garbage
Induane 6 hours ago [-]
That's amazing!
sublinear 4 hours ago [-]
So you drink weak coffee and insist on server-side rendering in 2026?
SpaceNoodled 31 seconds ago [-]
The server SHOULD do the rendering. It's a SERVER, not a give-me-a-bunch-of-bloated-junk-and-make-me-do-it-myself-er.
rpdillon 10 hours ago [-]
HTMX's whole vibe is amazing. It's good tech, kept simple, useful in gobs of situations, but doesn't take itself too seriously. I've used it in professional and side projects since intercooler.js, and still love it. Here's a crazy unicorn-laser-eyes mug[0] that evokes the vibes of NROL-39[1]. I adore it.
The nrol 39 mission patch is one of my favorites. You should find the authorizing docs for that patch and read the hand written notes. They're hilarious.
antihero 9 hours ago [-]
I was against it for ages but having have claude use it in a simple project and being frankly sick/bored of React, it seems nice.
Incipient 9 hours ago [-]
I personally find react overly engineered for my projects - vuejs (+quasar on top) is just great. Granted a little boring perhaps, but it just works, behaves as you'd expect, and doing anything just isn't that difficult.
antihero 3 hours ago [-]
I've just found having TSX on the server and TSX on the client to be a fairly trusty abstraction, and also typesafe way to update the DOM.
The thing that is frustrating me about HTMX so far is: How do I build typesafe templates on the server? I'm trying out Aksama and it seems ok, is there something similar for JS?
Also the SPA abstraction of "your website is just a client that connects to a an API" is nice.
bel8 8 hours ago [-]
Quasar is amazing. But I dislike their Material design components. Would be perfect otherwise.
no_wizard 6 hours ago [-]
Wish they would decouple styling from everything else.
Have a default you can import? Absolutely, that makes sense
But styling by default they you have to make complicated overrides for? That’s the part that gets me
oliwary 5 hours ago [-]
Can likewise mirror the support for quasar, always the first framework I reach for when starting a new project. The amount of stuff you get for free in terms of setup and content is insane.
threecheese 1 hours ago [-]
Any comments on how you’re holding it? Just “Hey Claude use htmx”?
aarondf 5 hours ago [-]
I was at Big Sky Dev Con when they unveiled the GameBoy game. I kid you not my jaw dropped. I thought it was some sort of like emulator gimmick until they said "everyone can take a physical cartridge home!"
One of the most delightful little swag stunts I've ever seen, and emblematic of the HTMX crew just how much they care about craft and delight in everything they do.
ballon_monkey 6 hours ago [-]
I love HTMX and use it in a few projects, but its amusing how whats old is new again. .NET Framework / Web Forms had update panels to do partial rendering of web pages back in 2005. Outside of .NET developers it got a lot of hate. But to a certain extent HTMX is a super well refined and more capable version of update panels and more.
nolok 4 hours ago [-]
And even that was even taking on the solution from c#'s daddy : Delphi IntraWeb suite, all the way back in Delphi 7 and after.
This whole concept died because of styling and that era of everyone having their pixel perfect psd turned into a html table or a flash applet and you couldn't reconcile both, but sometime out there you can still find an old IntraWeb business app and you realize they had the components, events and everything figured out long before it became cool again.
I always wish for some RAD tool to show up for modern web stack again, but I guess it moves too fast to be worth it, and nowadays front and backend are properly separated disciplines.
throw2ih020 4 hours ago [-]
In a way HTMX is similar to how we used to write websites on LAMP stacks, except with higher quality of life.
epolanski 4 hours ago [-]
After developing react, angular, Vue frontends for a decade, going back to good old plain server side rendered ruby, elixir, hell even php just feels right.
Especially nowadays where AI changes how you interact with ugly languages like php, but benefit from their deep ecosystems, speed and super fast "build" times.
In fact, despite me being unable to look at php syntax much without vomiting, and finding languages without proper static types nauseating..I'm just more productive in those than in spa slop land.
The web and browser technologies has also moved a lot. The "client side rendering so users don't see a refresh and have an app like experience" is basically a 2010 thing.
ballon_monkey 4 hours ago [-]
I just like being able to pick up old projects that i avoided for ages, and being able to pull in HTMX and make it a bit more modern without rewriting in react/vue etc. And it feels like a modern app, not a 90s app.
Aachen 12 minutes ago [-]
Exclusively? Htmx runs in a browser, as people in this thread are attesting with how they've been using it for years
throw2ih020 9 hours ago [-]
HTMX is awesome. I've replaced several OSS web apps on my home server with HTMX + Go + PostgreSQL replacements. The results are lightweight, responsive, work great on desktop and mobile alike, all with the absolute minimum complexity required. The codebases are easy to understand and modify, and so far I'm going months between updates (mostly just minor bugfixes for my applications). I fully expec my mature apps will go years if not decades between required upgrades.
nicpottier 9 hours ago [-]
Are any of these open source? I've gone down the go/htmx/pg path lightly a few times and I haven't loved the feel of it, but maybe I'm doing it wrong. I think just server side templating just starts feeling icky in go so maybe I'm just missing a good pattern or library.
throw2ih020 7 hours ago [-]
I don't want to ID my account but they basically look like:
- Standard library http package for the API server implementation
- Standard library template/html package for generating the dynamic parts of the webpage content
- Static web content is embedded within the Go binary (https://pkg.go.dev/embed) and served through server routes
- api served from /api route, htmx webpage served from /
- no ORM, mostly using standard library database/sql package for DB transactions, maybe reaching for a query builder library for more complex queries like complex search functionality
- Local S3 compatible object store for dynamic binary data like user-uploaded images and video. Local filesystem can be fine for small scale stuff.
For my home server I have authn/authz happening at the OS/infra layer, but if you need multitenancy you can pretty easily integrate an OAuth/OpenID authn/authz middleware for login with Google or whatever.
That's great but I believe it's still over-engineered. Unless it's a web site that can tolerate no downtime at all during schema updates, SQLite in WAL2 mode is more than enough. Moreover, in Postgres version upgrades can't be done without significant downtime (or setting up replication and performing a complex dance), so even that isn't so cut and dry.
</ ... >
throw2ih020 8 hours ago [-]
For some of the simpler sites sqlite would have been fine, but I do need Postgres anyway for some other stuff on my server so the overall burden of standardizing on Postgres only is less than having to do tuning for two different databases. In particular sqlite has worse defaults due to backwards compatibility, so you have to do a lot of upfront config for every table and DB.
Postgres version upgrades are basically painless, at my workplace our upgrades complete in so little time our users don't notice, and we have more data than probably 99.9999% of companies out there (mature company in aerospace industry).
nasretdinov 8 hours ago [-]
Well if you already have Postgres then yes, sounds fine. I don't really agree that SQLite needs tons of tweaking -- setting journal_mode to WAL/WAL2 is the only real thing worth doing, everything else I would consider optional.
Version upgrades for SQLite are basically a no-op though, that's kinda one of the reasons why it's so great to run in production (and deployment a maintenance being mostly a no-op as well, apart from setting up backups I guess).
I don't actually suggest that everyone should run their production on SQLite, but it's genuinely worth considering especially for small-ish projects.
throw2ih020 5 hours ago [-]
Foreign key constraints, sync frequency, busy timeout, strict typing on tables, explicit types for integer primary keys, and a convention for storing dates and times are others I would want to do up front.
Induane 5 hours ago [-]
I set it to enforce foreign key constraint as well.
rtpg 33 minutes ago [-]
> Unless it's a web site that can tolerate no downtime at all during schema updates, SQLite in WAL2 mode is more than enough.
I do think that people really underestimate how quickly a system starts being "please, no downtime" (or its weaker cousin, "please, don't make your ops people do rollouts at 1AM").
Like obviously it's not the end of the world but the default assumption of "the system is up" makes a loooooot of things downstream of that easier.
Having to do operational bug triage on systems that routinely have blips in availability is unfun.
inigyou 5 hours ago [-]
Every time I start with sqlite I outgrow it in some way, so I start with postgres now.
ffsm8 8 hours ago [-]
From an engineering perspective, sqlite and PostgreSQL are equivalent.
The difference is only in the deployment/maintenance.
And considering the context he stated, zero downtime really doesn't seem like something he's worrying about.
sroerick 8 hours ago [-]
(Me not taking this seriously)
I personally find Postgres WAY easier than SQLite simply because of the deployment story. I do a lot of hotfixes and dangerous stuff on personal projects, and having two databases complicates that tremendously. I like being able to run hot code on prod.
For the record, this is not the same reason I like postgres for actual production code
nasretdinov 7 hours ago [-]
Sorry can you please clarify what you mean by having two databases? You can share the same SQLite between applications if you really want
kelnos 6 hours ago [-]
I think they mean that they actually do need Postgres for some of their projects, and it's easier to just use Postgres for everything, than to use Postgres for some things and SQLite for others.
nasretdinov 6 hours ago [-]
Yes, but on the other hand what I'm implying is that you might not actually need it :)
sroerick 5 hours ago [-]
Yeah, I mean I guess I could technically connect to the remote SQLite server on my production server. You're right. But I've never done that and that's just not the pattern people use on SQLite
nasretdinov 4 hours ago [-]
Well, no, I don't think you should be doing that :)
gen220 8 hours ago [-]
Thank you to the HTMX-folks for keeping software fun! I've been a happy HTMX user and Grug essay forwarder since it first made the rounds here on HN. This was an instant purchase :)
factorialboy 9 hours ago [-]
Is it true that the person who authored the "Grug-brained developer" essay also created HTMX?
recursivedoubts 8 hours ago [-]
yep
skrebbel 5 hours ago [-]
and this comment‽
recursivedoubts 3 hours ago [-]
how deep does this rabbit hole go?
homarp 8 hours ago [-]
he wrote the Lulu book
andy800 2 hours ago [-]
Amazing... an HTMX thread without any haters interjecting or critics telling everyone why HTMX wont work.
Even React-aholics have to tip their hats to a Game Boy release.
recursivedoubts 10 hours ago [-]
hello all, we are releasing htmx 4.0 on the Game Boy and Gameboy Color (thank you rcy for submitting)
it is a real, honest-to-goodness mario-bros inspired GameBoy game with four levels over three biomes ending in a slop factory where you battle final boss warren buffering (an online character I beef with, we are friends)
if you beat him it unlocks the source code for htmx 4.0
game was written by Stephen Mitchell (aka scum) by hand, using GBStudio w/heavy customizations, hoping to get an essay by him up soon talking about the creation of the game
Hope you find it enjoyable if you get a copy and at least find it funny if you don't :)
chrismaltby 8 hours ago [-]
Oh hey, I made GB Studio, really cool to see it being used for this :) I've got some nice features in progress for the next version https://www.youtube.com/watch?v=q8UKwV1gJAI
scumdude 7 hours ago [-]
Sweet - thanks for your work on GB Studio, Chris. The music, sprite and palette tools were invaluable during development.
superdisk 8 hours ago [-]
Did you use the built in GB studio sound engine? If so that's my code :) Always enjoyable when it pops up in places like this. Looks like a fun project.
scumdude 7 hours ago [-]
Yes, we did. It was a blast using that to make the sounds and music.
Got really good at using it by the end of the project. You can listen to the trailer music here. Let me know what you think.
Amazing, can’t wait to see the first unboxing / let’s play / review videos.
iamwil 9 hours ago [-]
Is it a real physical cartridge? How do you get the source code off the cartridge at the end? Or does it give you a passcode to a git repo or…like an NFT with access to the source?
sroerick 9 hours ago [-]
It's a real cartridge
There's a source code reader at the end of the game, tbd if there are transfer abilities, I haven't beat it yet
The Chromatic is an awesome experience to play. The HTMX 4 game has an auto-loader which immediately drops you into the game at your last checkpoint. Since the Chromatic has no boot screen, you're back in play within a second of powering on the system.
asploder 9 hours ago [-]
This is too funny, how could I not?
Klonoar 9 hours ago [-]
How much did this cost to make/produce?
sroerick 9 hours ago [-]
Whatever it cost, he also gave out free copies at BSDC, what an unbelievably cool and nice thing to do
zogrodea 7 hours ago [-]
"Big Sky Dev Con", not "Better Software Conference" for those who were (like me) initially confused. :)
Someone commented in the past few days that the most impressive demo they saw in a conference was LibreOffice running on Fil-C, and I agreed.
However, this took the #1 spot from it (leaving that previous demo in #2) in my opinion. Very impressive, and nostalgic too.
sroerick 5 hours ago [-]
I'll also say - scum gave a presentation which was actually very touching. "Love what you do, care deeply about your projects, be with your family". Combined with everything you already said - pretty awesome stuff
scumdude 9 hours ago [-]
Wait - you guys got paid?
Klonoar 6 hours ago [-]
Reddit is that way ->
zelphirkalt 4 hours ago [-]
What I don't like about Htmx is, that it is still a JS framework, without good automatic fallbacks for a noscript situation. This leads to web devs thinking it would be great to do all the things in Htmx, even if all they have is a static page with static content.
Just recently I looked at hosting an old school forum. I don't want to load all the PHP and MySQL baggage on my server or even run it in docker, so I looked for Python solutions. Found PunkwebBB. Was happy for a short time with it, until I tested it more in depth with no scripts. Unfortunately, while it has some good fallbacks in some places, it doesn't have them everywhere and some buttons just don't do anything without JS. It also uses Htmx. Completely unnecessary JS, considering the function of the buttons.
I considered forking it. But the amount of work to remove the needless JS, and repair it ...
So now I am building my own forum completely without JS, and with Python Django doing a lot of heavy lifting.
andrewaylett 3 hours ago [-]
Indeed. And the amusing/disappointing/frustrating thing is: my next.js site works if you turn off JS. Links are server-rendered as links, HTML is server-rendered as HTML. If you visit one of the tools that run on the client then they won't work, but the pages that could be static content? They're static content.
Or at least they were, until I started using cache components the other week, and I'd not noticed they'd regressed. That's frustrating. Give me a few minutes...
beepbooptheory 2 hours ago [-]
I get the point but I do feel like Htmx's whole design is a big automatic fallback... If some browsers will never be able to understand the hx-get/post/etc attribs, you can just design the initial html you send over around that.
rtpg 2 hours ago [-]
while what you're saying is true in theory, you still have to make sure that e.g. your form responses do the right thing. You might think "just return the full page!" but it's extra work that for many people is busywork, and makes it harder to reuse things ("my comment post endpoint returns the rendered comment" becomes "my comment post endpoint needs to know what page the comment is in to return the fully rendered page")
In practice I think it's very easy to make your htmx application JS-requiring.
Turbo comes from a progressive-enhancement philosophy: start with proper HTML and add richer behaviour on top. HTMX is a JavaScript library in much the same sense that React is. There is nothing inherently wrong with that, but it makes this anti-pattern easier to fall into.
Honestly, “the site should work without JavaScript” is no longer the strongest argument. Server-rendered, semantic HTML matters more for accessibility, SEO, and increasingly for LLMs and other automated tools.
Of course, you can write excellent HTML with HTMX. It just requires more discipline—or enough experience to recognize when you are quietly building a JavaScript application in HTML attributes.
wvbdmp 6 hours ago [-]
I’m amazed at how cheap this is. How is this possible for what I’m assuming is a relatively low-volume physical product? I don’t suppose it’s produced on-demand, but also Carson Gross probably doesn’t have 1000 of these boxes at his home, or I would have seen the pics on twitter.
recursivedoubts 6 hours ago [-]
we are selling it pretty cheap we got 1000 made and gave 150 away to Big Sky Dev Conf attendees
Not trying to make money on it, it’s for the lols
xupybd 6 hours ago [-]
Why not both?
recursivedoubts 3 hours ago [-]
idk just seems like $25 is a good price for a fun game you know?
jbanes 3 hours ago [-]
That’s my doing. I already had a pipeline of contacts for manufacturing GameBoy games at various levels of quality and cost. Being involved from the beginning, I was able to influence development to ensure we could produce the lowest cost product that met the quality levels needed to blow up everyone’s collective minds.
buildwrangler 6 hours ago [-]
I made the switch to HTMX recently After 12+ years of building web apps with Javascript and its been nice. I always hated the build complexity of modern Javascript, so much tooling, dependencies and packages to get basic functionality.
luciana1u 7 hours ago [-]
next release ships on a Tamagotchi and if you don't feed it, it deletes your DOM
scumdude 7 hours ago [-]
How... how did you know?
hollow-moe 4 hours ago [-]
Love to see new stuff on ancient platforms. Surprised I couldn't find a post about Micro Mages on HN, only comments. https://youtu.be/ZWQ0591PAxM
Spoiler, when the time will come you'll never see something like this on the play station 4.
hirvi74 8 hours ago [-]
While I am not particularly a fan of HTMX, I do absolutely adore how Carson and the team always have such a great sense of humor with the project.
I used HTMX in a few projects, and the library worked well enough for what I needed, but I found it to be a bit too limiting compared to accomplishing the same task in Vanilla JS (my go-to).
vkaku 4 hours ago [-]
This might be my first new Gameboy Cart in like ever. So looking forward to this HTMX release.
felixrieseberg 8 hours ago [-]
This is beautiful, the title alone gave me a good chuckle.
0gs 8 hours ago [-]
htmx is so great. i feel like every week i discover some lovely way it helps things run more smoothly
dzonga 5 hours ago [-]
this is the counter culture we all live for.
well done to the htmx team.
dizhn 8 hours ago [-]
There is one thing I don't like about htmx. It's that they like to use the HATEOAS acronym. It's a bad acronym in every conceivable way.
bogzz 7 hours ago [-]
They HATEOAS because they Hain'tOAS.
kitd 7 hours ago [-]
Why?
all2 6 hours ago [-]
As a side note, anyone is welcome to add 'CEO of HTMX' to their LinkedIn profile.
...I may have done this.
ai_fry_ur_brain 55 minutes ago [-]
[dead]
dfaoidsoi 10 hours ago [-]
[dead]
nih567 7 hours ago [-]
[dead]
thrance 7 hours ago [-]
The box and cartridge art feels... AI-generated. There's a significant lack of intentionality in e.g. the backgrounds or the details on the car. The letters on the sides of the cartridge feel wonky too.
If its's really the case, that would be sad for a game that is about fighting slop.
jbanes 6 hours ago [-]
I didn’t do the art, but I did do the graphic design/layout of the box. I can assure you there was no AI used on the box. (Well, except for the CRT effect on the screenshots. ChatGPT helped out there.) I did the work in PhotoPea using the artist’s original work as a base.
recursivedoubts 6 hours ago [-]
The cover art is by ash on fiverr. He also did the cover of hypermedia systems:
But more importantly (as this "Game Boy" option reveals), the head honcho is really responsive with the items in the store. I had purchased a coffee mug a few years back and complained on Twitter that they need to sell larger mugs instead of only offering little tiny baby mugs that only hold ~8 ounces of liquid. The next day, he added giant 48-ounce monsters to the store and I've been drinking out of that mug every day since.
However, I think HTMX is a beauty. Fast, simple, and doesnt come with all the bloat and BS a JS heavy / JS first deployment comes with. I can quikckly build fast and responsive sites that cost visitors very little to use/interact with.
websites have less compatability issues now, load extremely fast (google web speed score from 60-80 to flat 100), and have fewer points of failure. Debugging is a breeze. Websites are no less pretty or useful for it. In fact, they look better now because time otherwise wasted on Js BS is now free to use to tinker with / improve aesthetic, or add new features.
I'm in love with HTMX. It feels like what the web should have always been. There's absolutly zero reason a random website, without my knowledge or consent, should be running extremely heavy compute and analytics on my own device. That should never have been possible/permissible in the first place.
Likewise. 3 or 4 years ago, I ripped out two-thirds of all the JS in my B2B SaaS by using htmx with server-side templating. So much simpler.
The ethos of allowing a return to a simpler way of building a web app resonates with me.
The state machines use JSONata for the sweet, sweet power vs JSONPath. Generally I have a Parallel state that splits the different parts of the page and Map states for data driven repetition (usually some data pulled from DDB). I have a simple JSONata method for replacing placeholder values (aka data binding). Zero Lambda at the cost of come copy paste.
I’m not unhappy with it despite the warts.
1.25 liters is way beyond even my own addiction to lightweight liquid stimulants.
https://x.com/scumitchell/status/1886825775560528069?s=20
[0]: https://swag.htmx.org/collections/octohorse
[1]: https://en.wikipedia.org/wiki/USA-247
The thing that is frustrating me about HTMX so far is: How do I build typesafe templates on the server? I'm trying out Aksama and it seems ok, is there something similar for JS?
Also the SPA abstraction of "your website is just a client that connects to a an API" is nice.
Have a default you can import? Absolutely, that makes sense
But styling by default they you have to make complicated overrides for? That’s the part that gets me
One of the most delightful little swag stunts I've ever seen, and emblematic of the HTMX crew just how much they care about craft and delight in everything they do.
This whole concept died because of styling and that era of everyone having their pixel perfect psd turned into a html table or a flash applet and you couldn't reconcile both, but sometime out there you can still find an old IntraWeb business app and you realize they had the components, events and everything figured out long before it became cool again.
I always wish for some RAD tool to show up for modern web stack again, but I guess it moves too fast to be worth it, and nowadays front and backend are properly separated disciplines.
Especially nowadays where AI changes how you interact with ugly languages like php, but benefit from their deep ecosystems, speed and super fast "build" times.
In fact, despite me being unable to look at php syntax much without vomiting, and finding languages without proper static types nauseating..I'm just more productive in those than in spa slop land.
The web and browser technologies has also moved a lot. The "client side rendering so users don't see a refresh and have an app like experience" is basically a 2010 thing.
- OpenAPI API spec and using https://github.com/oapi-codegen/oapi-codegen/ to generate the types, server interface, and client library
- Standard library http package for the API server implementation
- Standard library template/html package for generating the dynamic parts of the webpage content
- Static web content is embedded within the Go binary (https://pkg.go.dev/embed) and served through server routes
- api served from /api route, htmx webpage served from /
- no ORM, mostly using standard library database/sql package for DB transactions, maybe reaching for a query builder library for more complex queries like complex search functionality
- Local S3 compatible object store for dynamic binary data like user-uploaded images and video. Local filesystem can be fine for small scale stuff.
For my home server I have authn/authz happening at the OS/infra layer, but if you need multitenancy you can pretty easily integrate an OAuth/OpenID authn/authz middleware for login with Google or whatever.
https://github.com/gsxhq/gsxui
https://github.com/jackielii/structpages is what I might call a framework that GSX sits nicely in.
Also one ai haven't tried: Templ.
https://github.com/a-h/templ
That's great but I believe it's still over-engineered. Unless it's a web site that can tolerate no downtime at all during schema updates, SQLite in WAL2 mode is more than enough. Moreover, in Postgres version upgrades can't be done without significant downtime (or setting up replication and performing a complex dance), so even that isn't so cut and dry.
</ ... >
Postgres version upgrades are basically painless, at my workplace our upgrades complete in so little time our users don't notice, and we have more data than probably 99.9999% of companies out there (mature company in aerospace industry).
Version upgrades for SQLite are basically a no-op though, that's kinda one of the reasons why it's so great to run in production (and deployment a maintenance being mostly a no-op as well, apart from setting up backups I guess).
I don't actually suggest that everyone should run their production on SQLite, but it's genuinely worth considering especially for small-ish projects.
I do think that people really underestimate how quickly a system starts being "please, no downtime" (or its weaker cousin, "please, don't make your ops people do rollouts at 1AM").
Like obviously it's not the end of the world but the default assumption of "the system is up" makes a loooooot of things downstream of that easier.
Having to do operational bug triage on systems that routinely have blips in availability is unfun.
The difference is only in the deployment/maintenance.
And considering the context he stated, zero downtime really doesn't seem like something he's worrying about.
I personally find Postgres WAY easier than SQLite simply because of the deployment story. I do a lot of hotfixes and dangerous stuff on personal projects, and having two databases complicates that tremendously. I like being able to run hot code on prod.
For the record, this is not the same reason I like postgres for actual production code
Even React-aholics have to tip their hats to a Game Boy release.
it is a real, honest-to-goodness mario-bros inspired GameBoy game with four levels over three biomes ending in a slop factory where you battle final boss warren buffering (an online character I beef with, we are friends)
if you beat him it unlocks the source code for htmx 4.0
game was written by Stephen Mitchell (aka scum) by hand, using GBStudio w/heavy customizations, hoping to get an essay by him up soon talking about the creation of the game
carts were produced w/the expertise of Jarason Banes who also did the cover design. Cover art is by Ash (https://www.fiverr.com/ae1996/) who also did the soft-cover art for https://hypermedia.systems
Hope you find it enjoyable if you get a copy and at least find it funny if you don't :)
Got really good at using it by the end of the project. You can listen to the trailer music here. Let me know what you think.
https://www.youtube.com/live/9ubSJGyB21Q?si=sz-8pxPs6zxVYMfY...
Love HTMX, can't wait for my https://brickboy.xyz/ to arrive so I can get to work!
There's a source code reader at the end of the game, tbd if there are transfer abilities, I haven't beat it yet
https://modretro.com/products/chromatic-tetris-bundle
you can find cheaper ones on amazon/temu too
Someone commented in the past few days that the most impressive demo they saw in a conference was LibreOffice running on Fil-C, and I agreed.
However, this took the #1 spot from it (leaving that previous demo in #2) in my opinion. Very impressive, and nostalgic too.
Just recently I looked at hosting an old school forum. I don't want to load all the PHP and MySQL baggage on my server or even run it in docker, so I looked for Python solutions. Found PunkwebBB. Was happy for a short time with it, until I tested it more in depth with no scripts. Unfortunately, while it has some good fallbacks in some places, it doesn't have them everywhere and some buttons just don't do anything without JS. It also uses Htmx. Completely unnecessary JS, considering the function of the buttons.
I considered forking it. But the amount of work to remove the needless JS, and repair it ...
So now I am building my own forum completely without JS, and with Python Django doing a lot of heavy lifting.
Or at least they were, until I started using cache components the other week, and I'd not noticed they'd regressed. That's frustrating. Give me a few minutes...
In practice I think it's very easy to make your htmx application JS-requiring.
Turbo comes from a progressive-enhancement philosophy: start with proper HTML and add richer behaviour on top. HTMX is a JavaScript library in much the same sense that React is. There is nothing inherently wrong with that, but it makes this anti-pattern easier to fall into.
Honestly, “the site should work without JavaScript” is no longer the strongest argument. Server-rendered, semantic HTML matters more for accessibility, SEO, and increasingly for LLMs and other automated tools.
Of course, you can write excellent HTML with HTMX. It just requires more discipline—or enough experience to recognize when you are quietly building a JavaScript application in HTML attributes.
Not trying to make money on it, it’s for the lols
I used HTMX in a few projects, and the library worked well enough for what I needed, but I found it to be a bit too limiting compared to accomplishing the same task in Vanilla JS (my go-to).
well done to the htmx team.
...I may have done this.
If its's really the case, that would be sad for a game that is about fighting slop.
https://hypermedia.systems
Your client does not have permission to get URL /en-cad/products/htmx-4-the-game from this server.