Basics

walt.id has a wide assortment of products, projects and as such: large amounts of code. We have to make an effort to make it all handleable long-term.

Code platform

All code is on GitHub, in the walt-id organization. No code shall be in private repositories outside of that organization.

The main product is the walt.id Identity Stack, which consists of various (sub-) modules. Find out more at build tools.

Language

Our development team is small and our resources sparse, so they have to be put into the most optimal and efficient use. As such, we have to use the most productive and sharable tools, and we must not have multiple programming languages mixed and matched around the place.

  • While we have to target a large variety of different platforms, we are unable to accommodate a custom programming language for each of them, and have to share development resources wherever possible. To have a unified code base that can be productively worked on, all backend code and libraries are written in the Kotlin programming language by default.
    • This programming language is very productive to use, has quick compilation times, is easy to learn for developers with a Java basis, has excellent tooling support, and can target multiple platforms natively. For long-running services, the vast JVM environment with the JVM itself and all Java libraries can be utilized, thus having a massive ecosystem. All things considered, Kotlin is the perfect programming language for our requirements and use-cases.
    • For more information on Kotlin development, view the next pages.
  • As we do not have dedicated front-end developers, a frontend language that is both easy to learn (and use) for backend developers, and powerful / non-limiting is required. This is best met by Vue.js with Nuxt.js.
    • This web combination is both extremely easy to get used to and use, and also very powerful and supports all advanced features our web platforms require.
  • Departing from these defaults for a project is only permitted in very specific circumstances, and a re-evaluation has to be commenced with the team, as the team will have to be able to later maintain it.