Hacker News new | ask | show | jobs
by hunkins 1495 days ago
NextJS is my recommendation. The React ecosystem is incredible, and NextJS brings it to the next level.

Also the documentation is fantastic, you should be up and running in 5 minutes.

Pair it with a good IDE (i.e. WebStorm) and the websites write themselves.

3 comments

React fails the main requirements: “Server rendered web pages, no fancy client side js, just good old websites.”
"By default, Next.js pre-renders every page. This means that Next.js generates HTML for each page in advance, instead of having it all done by client-side JavaScript. Pre-rendering can result in better performance and SEO."
Good to know. Thanks for correcting my misapprehension!
React JSX is hands down the best templating engine for Server Rendered Pages, imo.

Doesn't have to be a SPA or include a bunch of fancy client side JS or anything.

Cool, good to know. What makes JSX such a good templating engine?
It's personal preference of course, but imo JSX is just a very clean way of writing frontends. Easy composability, easy data bindings which don't have to be two-way if you don't want.

My sense with many templating engines is they are trying to crowbar programming functionality into HTML and always comes across clunky. It's usually a separate language from your server code entirely. Inline If statements and For Loops embedded in your HTML. And composing a template with a subtemplate is often clumsy.

With JSX you just write your normal JavaScript or Typescript and output JSX. Then the JSX is turned into HTML and returned to the browser.

But of course I'm not familiar with every HTML templating library out there, but I've used a few and I really love working with JSX.

My own favorite syntax(es) are TAL, TALES, and METAL (Template Attribute Language, TAL Expression Syntax, and Macro Expansion TAL). There are many implementations in various languages. The OG implementation was in Python as part of the Zope:

https://pagetemplates.readthedocs.io/en/latest/tal.html

These days I reach for Chameleon, another Python implementation:

https://chameleon.readthedocs.io/

I'm aware of at least five implementations for JS: template-tal, jstal, Distal, DomTal, ZPT-JS.

Cool, thanks for the recommendations! I don't write a lot of python anymore but I'll check these out.
I guess you've never used NextJS because it basically uses JS as a server side templating language, and since pages are by default server side rendered, there's no client side JS (unless you want to add it).

You can go to a server side NextJS rendered page that worked even when JS is disabled, that uses only HTML and CSS and no JS whatsoever.

You're right. As my other comment makes explicit, my wheelhouse is mostly Python. The last time I really dug into JS frameworks was about a decade ago, and was largely jQuery, D3, and friends.

Thanks for bringing to my attention something I didn't know!

People are getting caught up on ‘no fancy client side JS’ rather than ‘getting stuff done’.

Next will let you use SSR to avoid all those OAuth & async loading headaches but also leverage more complicated components and when you do, handles all the bundling and tree shaking for you.

Recently moved my app from ReactJS to NextJS to support SSR. The community support and the amount of resources it has is incredible.