Software stack - serlo/documentation GitHub Wiki
Motivation behind the recommendations
On the one hand, we want to limit the “default” choices in order to
- enable knowledge sharing
- make transitions between projects easy
- retain productivity when involved developers change
On the other hand, we want developers to be able to pick the right tool for the job and don’t feel constrained in their technology choices.
Therefore, we came up with a list of default choices that should be used for new projects (taking the knowledge & interest of the current devs into account). If you want to deviate from that list, you should have valid reasons for that and discuss it with the software team.
Backend
- TypeScript
- Express as framework
- Apollo framework for GraphQL server
- Rust
- Python for data analysis and helper scripts -> maybe we will use it also for microservices
Frontend
- TypeScript (React) / Next.JS
Database
(SQL is the default choice, NoSQL / graph database only if there are valid reasons)
- Ideally PostgreSQL everywhere (currently only within the user management service)
- Currently still using an older version of MySQL with plans to slowly migrate away from