Project: secureCodeBox (Provisioning / Security & Compliance)
File: adr_0001.md

title: "ADR-0001: Choosing the framework for the new secureCodeBox Website" sidebar_label: "ADR-0001" | <!-- --> | <!-- --> | |-|-| | Status: | ACCEPTED | | Date: | 2019-08-21 | | Author(s): | Daniel Patanin , Jannick Hollenbach | There are tons of different frameworks for building websites out there. We must choose the most fitting one for our use, fulfilling our mandatory requirements: Common programming language, if applicable easy to learn Overall easy to use and start-up, also locally Tutorials, examples and a good documentation Bonus points for great and many easy to use templates and plugins Needs continuous support and contribution Must be able to be deployed as GitHub pages We will choose from the following popular/trending: These frameworks do all fulfill the requirements to the extent that I estimate them as wellsuited. First, I researched the listed features on the respective sites or quickly googled after it specifically and found instantly the requested feature. I followed up with a general overview of how old the frameworks, how popular they are and for example pages build with them. Afterwards I searched for comparison blogs and posts, mostly to examine their comments. Most of these pro-cons -posts are inaccurate and very superficial, but luckily because of that the comment sections hold interesting discussions and comparisons from overall features and usability to specific issues and problems of each framework and which framework fits what use-cases in general. After this research Ive come to a majority of similar experience sharing and discussions. These described the distribution of these frameworks as follows (roughly summarized): Gridsome is like Gatsby just for VueJS. Gatsby is blazing fast after building the pages but requires a little bit more understanding of JavaScript and React and may not be as easy to get behind if youve never built a site with a static site generator before. Hugo is fast in building and based on Golang. But as a newbie to that language youll find yourself using the documentation very much, unless you learn this language to a curtain depth. Jekyll is simple in templating and very good for quickly starting a small blog site but based on ruby and therefore requires ruby dependencies. So, it seems that Hugo is a pretty good choice for sites with many, many. like many pages. Jekyll seems to fit for a quick build. Gatsby and Gridsome require a bit more time to learn but have their advantages in speed and growth of the site. And whether you choose Gridsome over Gatsby relies on whether you want to use VueJS or not. Finally weve decided to use Gatsby. Some of the main reasons is its fast performance, the extensive documentation and tutorials and also the language, since Hugo (the other framework we considered mainly) is based on Golang, and as for my part as a developer I feel completely comfortable and prefer working with JSX. Overall it comes down to preferences mostly, since were not going to build a giant Website, nor are we planning on implementing crazy Features. For the integration of our multi-repository documentation well use Antora if working this out with Gatsby is going to be more difficult than integrating Antora. Were aware that using Gatsby requires a bit more maintenance and has the drawback, that if anybody else will maintain or work on the website, this person will need to at least understand the basics of React and GraphQL.