I had no idea JSX for Go would be so popular. (9.3k stars on the templ project). What are people using it for?
Mostly for building typed web UIs in Go – instead of using html/template, which isn’t typed and feels oldschool. templ makes Go feel way more modern for frontend work.
I know I am an old angry guy but I really don't want things to 'feel' (not sure what that even is) more modern; I have projects that bring me millions a year which are running for over 2 decades now and this kind of 'modern' is just obsolete next year. I like profit and not being bothered by updates every 5 seconds. I have a simple stack, my saas apps are violently fast and they run for decades without me touching anything but some bugs/features. The modern feel is not required and in fact detrimental to just making bucketloads of business value and company wealth imho. But then again, we never had investors, so I don't know how it feels to burn other people's money.
These are weird things to complain about for templ - it’s very boring and stable and it just compiles to very boring Go code while 1) providing type safety for your templates and 2) being less annoying to compose things than template.html.
It definitely doesn’t feel like JSX or any other modern/exciting thing to me.
The author and you are good at convincing me to use it. thanks and thats not sarcasm.
Totally fair – stable, fast, boring tech is often the best kind of tech.
templ’s more for folks who want to stay in Go but need a smoother frontend experience for modern UI needs.
Yep, that makes sense. I do prefer Go to TS really as I love typesystems but TS types often are completely unreadable. I am a Haskell guy and not entirely sure how they managed to make TS types this line noisy and, frankly, a struggle.
I recently started using it to make a web frontend for a go backend. This is perfect for that as you can use the same struct definitions and functions from the backend.
Why do you say "JSX"? JSX is an HTML templating language for JavaScript. templ looks like an HTML templating language for Go. Every popular web backend language has an HTML templating language... so that it can produce HTML - is it really that surprising?