Angular

To build this app, I had to decide on a framework of development. It was possible to build this from the ground up using HTML, CSS & plain JS, but then I would loose the creature comforts that a well-designed framework brings such as scalability to screen-size, well designed premade components and a wide community that creates a support system when the average person begins their development journey.

I vetted a few main frameworks and listed their Pros & Cons below:

Framework name Pros Cons
Angular - Full-featured framework with built-in routing, HTTP, and forms

- Powerful CLI and tooling

- TypeScript-first approach

- Backed by Google
- Steep learning curve

- Verbose syntax and boilerplate

- Larger bundle sizes
React - Component-based and flexible

- Large ecosystem and community

- Rich set of third-party libraries

- Backed by Meta
- Just a UI library, requires external tools for full setup

- Frequent updates and breaking changes

- Boilerplate for state management
Next.js - Built on top of React with full-stack features

- Server-side rendering (SSR) and static site generation (SSG)

- File-based routing

- Optimized performance and SEO
- Opinionated structure may not suit every project

- Learning curve if new to React or SSR

- Some features behind enterprise licenses
Svelte - Truly reactive and minimal boilerplate

- Compiles to vanilla JS (no virtual DOM)

- Fast performance and small bundle size

- Great developer experience
- Smaller ecosystem and community

- Less mature than React/Angular

- Fewer integrations and tooling options

Ultimately, I decided on going with angular. This is because of a few reasons:
  • I had previous experience with the framework
  • It was made by google, so I though integrating Gemini & other google frameworks/APIs would be easier
  • Had a good community
  • Was less module-dependent compared to Angular, allowing for smoother development with a smaller build package.

NGINX

Nohup

Linux

Encryption

JWT

Tokens