Live data from Hacker News

Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

github.com

1–10 of 24 posts

Re: Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

#4
Good luck with the launch. Looks like a great idea, was wondering if there is any other existing product in the market.

Ability to provide ssr without changing a single line of code is awesome and can help teams who are trying for a solution which requires code changes.

Wish the crawlers incorporate something like this into their crawling logic so that we really don't need to worry about server rendering anymore. Until then this product can be a bridge!

Re: Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

#5

I’d be curious between using Chrome headless vs a Node server. Was this tested?

node is a JavaScript runtime, it has no rendering component, and—more notably—no DOM or any other equivalents to many browser APIs in its core API. This would mean you would have to emulate the browser environment with many 3rd-party implementations which are unlikely to match a modern, complex browser in aggregate.

Re: Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

#6

I’d be curious between using Chrome headless vs a Node server. Was this tested?

Thank you! I actually developed it because I have developed a somewhat complex website using vue.js and it was too complex/too late for my architecture to do the native Vue SSR using Node.js so I built rendora instead. I have some really complex pages that are rendered below 150ms (uncached SSR requests). I also tested it on some simple React pages and got as low as 70ms! so I now guess headless Chrome isn't as slow as you might think. Also some other optimizations are made to help lower latencies (skip fetching&rendering CSS, images, fonts, etc..) so that the initial DOM load can be faster.

I also added Prometheus metrics and a rendering API endpoint so that you can get an SSR latency histograms with buckets 50ms, 100ms, ..., 500ms and see the avg latencies for your use case.

TLDR; headless Chrome is actually faster than you might initially think. It might be 200-300ms at maximum to get the initial DOM load assuming that you have complex enough pages.

Re: Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

#7

Good luck with the launch. Looks like a great idea, was wondering if there is any other existing product in the market. Ability to provide ssr without changing a single line of code is awesome and can help teams who are trying for a solution which requires code changes. Wish the crawlers incorporate something like this into their crawling logic so that we really don't need to worry about server rendering anymore. Unt…

Thank you for the kind response

>was wondering if there is any other existing product in the market

yes, there is rendertron; here is the comparison between rendora and rendertron and why I think rendora is better https://github.com/rendora/rendora#what-is-the-difference-be...

also there is prerender.io but this is a commercial paid product and also needs change in your backend; and I guess they didn't use headless Chrome until recently

>Wish the crawlers incorporate something like this into their crawling logic so that we really don't need to worry about server rendering anymore

Except for Google, probably all other search engines don't even execute javascript to render pages (Bing claimed to be rendering js very recently but I haven't seen it in my production website :D), they claim that the web is too big and the computational complexity of executing javascript in every page is unreasonable. Even Google can't render pages correctly if you have asynchronous content from my own experience.

Re: Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

#9
post #8

So a regular browser will receive a js bundle, but a crawler will recieve a html page? How does Rendora determine which version to give the requester? Is it the "User Agent String"?

No, both receive HTML, the real problem is that websites built with modern javascript frameworks (e.g. react, vue, angular, etc...) render most of the content using the javascript engine in browsers, search engines don't execute javascript and thus they see almost nothing but a header and almost an empty body (of course it depends on your use case to be more accurate). Rendora solves the SEO problem for such websites, by being a lightweight reverse HTTP proxy in front of your backend server, it detects crawlers by checking whitelisted user agents and paths, if it finds one, it instructs a headless Chrome instance to request and render the corresponding page and then returns the final server-side rendered HTML back to the crawler (or according to whatever whitelisted in your config file). This is called dynamic rendering and has been recommended by Google and Bing very recently (see the links in https://github.com/rendora/rendora#what-is-dynamic-rendering)

Re: Show HN: Rendora – Dynamic server-side rendering for modern JavaScript websites

#10
What's the disadvantage or advantage of headless chrome over chrome with head intact?

Is headless chrome faster? Can we control popup windows in headless one? Does it support proxies? Is it possible to control tabs? Close and open in new tab etc...

Post reply on HN