Deno is a TypeScript/JavaScript runtime that could also be characterized as a toolkit as it includes a strong selection of tooling to support creation of web servers and applications. You could consider it as a successor, or at least a competitor, to the popular Node.js JavaScript runtime. Both projects were started by the same author, Ryan Dahl, and you could say that in Deno he wants to fix the mistakes he did with Node.js. That does not mean Node.js is inferior but you can see the difference in philosophy and several technical choices.
The purpose of these katas is to get you started with Deno quickly. To keep them approachable, no experience with TypeScript, JavaScript or the ecosystem is needed. That said, if you have experience with the technologies, likely then you will complete the katas faster and fill your knowledge gaps as you go through them. The minimal requirement for completion of the katas is to have pre-existing programming skills in some other language and willingness to learn.
The katas can be completed in both JavaScript and TypeScript. I would personally lean towards using TypeScript due to its benefits in terms of type safety and particularly refactoring. If jumping straight to TypeScript at first feels too much, it is fine to start with JavaScript and consider porting to code to TypeScript later on to avoid becoming overwhelmed due to the amount of concepts to learn.
The overall target of the katas is to get you exposed to various portions of Deno. We won't touch every single aspect of it and the main point is to learn to work with it so you can learn more as needed. If you complete the katas, then you will understand how to build simple web servers, applications, and tooling. I have extracted some portions from my static site generator called Gustwind and adapted the katas from that so essentially you will be developing a subset of Gustwind.
- Getting started - Solution
- Creating a server - Solution
- Creating initial development server - Solution
- Setting up a static build - Solution
- Creating a command line interface - Solution
To be able to complete the katas, you need the following: