Skip to main content

Hello!

· 2 min read

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. A sprinkle of magic / autogenerated files because automation (sometimes!) makes life that much easier