CodingTrain / CodingTrain/project-trainsite

Backend Technology Stack

Open
#13 2 comments 0 reactions 0 assignees View on GitHub
discussion help wanted
Dominant language
No language data
Stars
1
Forks
2
PR merge metrics
No merged PRs in 30d

Description

So... It's been a while and I think I owe you an update on the whole backend situation. I did some research and planning towards the technology stack.

The original plan was to create an entire backend server from scratch that handles everything from the actual API which can be used by others (including the frontend) to the database. But something was missing: We don't have an easy way to edit the data from an administrator's point of view. The only way to get data in and out would be the API which would mean that we'd need to implement an admin UI as well. At this point I decided that the whole system would get to big and complicated and all in all wouldn't be a real improvement over the current Jekyll setup.

@turqdevdesign at some point suggested to use a system like [Cockpit](https://getcockpit.com) and I think he's right. It would handle the whole question of how to administer the site for us instead of reinventing the wheel. Then I thought about extensibility and that's where a pre made system has its drawbacks. In order to solve this I had the following idea:

The frontend (or any other application that wants to use the data) doesn't directly communicate with the CMS. Instead, we put a small microservice in between the two. It's only job is to take data out of the CMS and give it to the frontend and the other way round. This enables us to implement custom queries and actions to take logic off the frontend and have it as much "presentational" as possible. I think this would be an optimal solution but please fell free to give your opinion on it!

I'm currently in the process of evaluating which CMS would suit us best (decision is between [Cockpit](https://getcockpit.com) and [Directus](https://directus.io/); the latter one keeps CMS and actual data completely separate so it would also be possible to interact with database tables directly).

If you have any ideas, suggestions, questions or think that everything I just explained doesn't make sense (:wink:), please let me know! Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.