Architectural Decisions

Presenting the architectural decisions that took place to build the community platform
For future reference and newcomers, the following section is presenting and documenting the architectural decisions that came into account when creating the platform. Those decisions were made in May & June 2020 following user research, and based on early mock-ups.

Technology Stack

Next.js (Front-End)

The platform is build using Next.js which is a React framework for production websites. Next does a lot out of the box, like pre-fetching pages, file-system routing, but most importantly it provides great tools for Client-Side Rendering, Server-Side Rendering and Static Generation.
Considering the different types of content we were dealing with inside the platform, we were going to use all those rendering methods in order to create the best experience for our users.
And the cherry on top?! It's also open-source!

Strapi (API & Back-End)

For content management, the platform is powered by Strapi, not the best headless CMS for blogs/publication edition and creation (as of now), but probably the best overall when your content isn't limited to blogs or text, which is the case here. And it also has built-in support for GraphQL and user permissions and roles, which will come in handy for our community features.
And as a very popular open-source project, it's improving every single day!

PostgreSQL (Data Storage)

The data is stored on a PostgreSQL database. All the database management is handled by Strapi and its own ORM mapping tools, for more information read Strapi Database Configuration.