Skip to content

Technological Decisions

Tobias edited this page Jan 9, 2023 · 2 revisions

All technologies are open-source.

Frontend

Name Decision Why? Who? When?
Programming Language TypeScript Lots of run-time errors typical for JavaScript can be identified in compile time with the help of modern IDE; strictly-typed language is safer to work with long term. Max 21.04.2022
Framework Vue.js 3 Vue.js is popular, lightweight, fast and easy to learn for developers not experienced in front-end technologies Max 21.04.2022
Component Framework PrimeVue & PrimeFlex Variety of components, modern style, Integration for Chart.js, Compatible with Vue 3, Components designed with accessibility in mind, responsive Max 01.05.2022
Linting ESLint Integration with most IDEs, available as standalone CLI tool, available as npm dependency, consistent coding style Max 01.05.2022
Formatting Prettier Integration with most IDEs, available as standalone CLI tool, available as npm dependency, consistent formatting, compatible with ESLint Max 01.05.2022

Backend

Name Decision Why? Who? When?
Programming Language Golang Lightweight, fast, compiles to binary, fits cloud-native philosophy, strictly-typed Max 21.04.2022
Backend Services AWS Lambda Serverless, leightweight and cheap Max 18.07.2022 (Correction)
Linting golang-ci-lint linters in parallel, uses caching, supports yaml config, has integrations with major IDEs, many linters included Max 21.04.2022
Formatting gofumpt Stricter ruleset than the included gofmt, required by golang-ci-lint Max 21.04.2022

Deployment

Name Decision Why? Who? When?
Continuous Integration / Continuous Deployment GitHub Actions easy pipeline definition, extensible with plugins Max 14.04.2022
Infrastructure as Code Terraform Compatible with AWS provider, open-source, declarative Max 21.04.2022

Architectural decisions can be found here.

Clone this wiki locally