-
Notifications
You must be signed in to change notification settings - Fork 1
Tech Stack
DAYO is built on the Deno runtime for TypeScript and JavaScript. Deno is well known for its security by default approach and default support for TypeScript. Which sets it apart from the Node.js runtime and the npm package manager. Especially the security practice was a leading factor for choosing Deno for this project. This decision comes with a few drawbacks, as Deno has not, yet, the same amount of modules built by a third party as npm does. This affected us during our decision-making. We found a module in the library missing, which is essential to our app. But instead of picking Node.js over Deno, we decided to implement the module ourselves and release it as well to grow the Deno module support.
Choosing Svelte as a frontend framework was easy. Since Deno comes with its integrated TypeScript compiler, we can simply build on top of it using Svelte, keeping it consistent. Therefore, less overhead and boilerplate is required, thus making the development experience more lightweight. Svelte also simplifies the project structure and complexity because styling, content, and scripts are capsuled in one file per component.
There is no first-party svelte module for Deno, but snel does the job.
The decision to use MongoDB is based on the fact that the development team has the most experience using the technology. The JSON-like data structure and interaction methods help make the project beginner-friendly for newer developers to join. That being said, if you don't feel comfortable using MongoDB, you can simply plug 'n' play any database due to our persistence interface, simply implement the required functions, and you are good to go!
Last but not least, we want to host our project on some kind of platform, so DAYO will always be there to sweet'n your day. Our priority for the project was to use some service free of charge to host DAYO. On the other hand, it should provide great features such as good availability. One of the well-known players in that area is Heroku. It features PaaS for free and allows running multiple apps from a single repo on GitHub. Although Heroku does not feature the Deno runtime out of the box, it is possible to create your own buildpacks to enable support. I guess there are a few similar service providers such as Vercel, however, the experience we have with Heroku also supported our decision.