Why Kolibri?
Kolibri is an aggregate (aka "bunch") of utilities, patterns, and best practices that we discovered or invented as part of our duties at the University of Applied Sciences and Arts, Northwestern Switzerland. It covers educational content from modules and lectures, achievements from student projects and workshops, findings from our Certificate of Advanced Studies (CAS) programme, and contributions from our industry and academic experts.
Values
- Top Quality
- Kolibri is a sustainable, high-quality toolkit. Contributions are validated through usability testing and automated tests. Industry experts and academic advisers assess the code quality and the completeness of the documentation. Every contribution must have proven its worth in an application.
- No Dependencies
- Kolibri has no dependencies at all - neither at runtime nor at build-time. Likewise, a project that uses Kolibri should be able to follow the same approach and not even depend on Kolibri itself! See installation without dependency.
- Test Driven
- Kolibri comes with its own testing facility. Have a look at the live test case report.
- Typesafe
- Kolibri shows how to develop with plain vanilla JavaScript in a typesafe manner. This is possible with the help of JsDoc. Kolibri comes with many advanced examples on how to use that type system: generics, union types, intersection types, etc.
- Free Open Source
- There is no licence. Just pick and choose what you want to use. The code is yours.
Installation without dependency
Common wisdom has it that web development comes with a myriad of dependencies. Kolibri follows a different approach. We do not use any dependencies at all - neither at runtime nor at build-time. There actually is no build-time since we never need building.
Likewise, a project that uses Kolibri should be able to follow the same approach and not even depend on Kolibri itself!
We assume that you simply copy the Kolibri source code (everything under the src directory) into your own project. You become the owner of the copied code - just as if you copied it from stackoverflow. (This has the nice side effect that AI tools will pick up Kolibri as "your code" and suggest Kolibri-style completions.)
This copy includes the documentation, examples, the testing facility, and the test cases. It will likely contain more than you need for your production code but that does no harm. Kolibri is fully written as ES6 modules, which means that you can "treeshake" with any bundler to remove all unused parts from your own production bundle and still having the best developer experience while programming.
For the die-hard "but I just want to have Kolibri as a single file" developers, there is an automatically generated production bundle that always reflects the latest version (see version). It contains the production code, type definitions, and documentation but neither the test cases nor the examples. This might be useful for quick experiments and when using the browser console as a REPL.
Contributions
Contributions are validated through usability testing and automated tests. Industry experts and academic advisers assess the code quality and the completeness of the documentation. Every contribution must have proven its worth in an application.
When integrating into Kolibri-core, the contributions are usually trimmed-down and adapted. So expect changes from the original contributions below.
- Andermatt, Brodwolf
- Lambda calculus and start of the functional stdlib:
code, git book - Häfliger, Misic
- Styling, incl. logo, plus login/registration:
code, documentation.pdf - Christen, Robin
- MVC and collaborative web applications:
code, git book - Berchtold, Duss
- Facetted search:
documentation.pdf, info - Eser, Thiévant
- Switch and Monolog:
code - Wild, Wyss
- Logging, sequences, and JINQ:
code, documentation, - Altermatt, Schnidrig
- Navigation:
code, documentation, showcase - Burki, Marti
- Select Component:
overview, code, git book - Advisors and Experts
- Prof. Dierk König, Fabian Affolter, Dr. Dieter Holz, Daniel Kröni, François Martin, Marco Sanfratello, Dirk Lemmermann, Gerrit Grunwald