After I started with ReactJS development in July 2018 I decided to fill the www gap with a simple homepage. Despite my best efforts, the google bot had problems indexing my website. So I stripped the 'script' from javascript and built a static webpage generator.


Originally the old short-lived reactjs homepage used to be single page(even without internal routing), which displayed a list of posts. It needed nothing more than a json source of all the posts to work. It was in fact very lighweight. I was told that Google's webcrawler uses a different version of the Chrome V8 engine, but adding any of the suggested libraries didn't have any affect at all. Honestly, I don't even want to know why it doesn't work.

I decided to switch to server-side rendering and considered building a simple SpringBoot server, which would fetch all the post data from a database. But why did I neglect a fully static approach without content generation? After all developing a boilerplate bloating spring server seemed not to be of interest for me.

The problem with bare static files is that the website has to preserve some consistent design and every page would have it's own copy of headers responsible for that consistent style. So I had two options for getting rid of the repeating parts. Use JQuery and inject html or autogenerate html files. The first approach doesn't look very clean, but the point that made me choose the second option was that I could embed Markdown and stop writing ugly html.

I added a key-value, a configuration system, added the fabulous flexmark-java library for Markdown parsing... and the processor was ready.