Hello!
Hello!โ
Welcome to the vramework blog!
The goal is of the blog is for me to share as much as I can about some design decisions I have taken whilst working on some of my projects/ideas. Once those are open for testing I'll be providing a lot more examples!
Since you are already here, let me share why vramework exists.
Vramework Design Decisions Infoโ
Vramework design decisions were mostly out of the following situations:
-
During the covid 2021 pandemic I started working on a project in an area with barely an internet, so it had to be easy to run entirely offline. But I wanted it to follow functionless from the start since it made it easier to throw in functionality and onboard developers.
-
The previous project I co-wrote / maintained (deepstream.io) has a concept of RPCs. This effectively allowed any client (whether frontend or backend) to register to become a provider. We deployed the same functions via both HTTP and RPC by putting a thin wrapper around the logic.
-
The projects I currently work on usually have a bunch of third party services we interact with (email, database, salesforce, google docs, JWT management, etc). I found that having a simple dependency injection with the collection of services smoothens things out. This was also heavily inspired by the large refactor I have done earlier from deepstream.io to V5.
-
Typescript! I have refactored my projects a zillion times (mostly due to changing requirements and partially because I can) and I have types EVERYWHERE to stop me from running into odd bugs.
-
A sprinkle of magic / autogenerated files because automation (sometimes!) makes life that much easier