Home List of technologies used
Post
Cancel

List of technologies used

Recommended here is a non-exchaustive list of the technologies we will be using. There are suggestions for front-end, back-end, databases and deployment. Of course, this is subject to changes as the project progresses.

Front-end

  • Remix: Remix is a new-comer in the JavaScript framework landscape. It integrates both back-end and front-end in a single framework. Hence developers can write both FE and BE in Typescript, which is clearly an advantage.

Remix is new, but since it uses the primitives of the HTTP protocol, the risk is minimized. Besides this, the Remix developers have created the React Router, the de-facto router for react applications.

  • Ant design: For the first version, we do not need any mobile support, so Ant Design is sufficient.

  • Prisma: ORM for Javascript applications

  • Cypress: for end-to-end testing

  • vitest: vitest is faster and easier than jest. TODO: decision pending

Back-end

Currently, we will use Remix.

In future, we could write a back-end API using the Django framework in python. It has many advantages, one of the main ones being that it is battle-tested, has batteries included.

Outsourcing Django is way easier compared to other frameworks. Tech-talent is easier to find.

Authorization

There are two options here:

  • Auth0: currently under development
  • Supabase Auth: alternative to Auth0. Could make sense for us as we will be using Supabase as our database

Database

  • Postgres: the world’s best open source database
  • Supabase: it is built on top of Postgresql, easy to integrate with Remix and provides some nice realtime features

Deployment

Avoid AWS as much as possible as it takes time to architect an application on it. Besides the entire infrastructure has to be defined from scratch. There are better and options in the market

  • fly.io: Automatic deployment of software on the edge close to the users
  • Cloudflare: the developer experience on cloudflare is one of the best in the market. It’s prices are very competitive. Majorly, it provides an API Gateway and a free Web Application Firewall by default. DDOS protection is available to all websites deployed on it. This is very attractive for us. Also provides static hosting and serverless functions.

This website is deployed on Cloudflare pages without a single line of deployment script or pipelines. We can use a combination of fly.io and Cloudflare (TODO: investigate how)

Images / Video / Media

  • Cloudinary: there is no comparison to Cloudinary for hosting media. You can manipulate saved images / videos directly using URL params.

File storage

I am still not 100% convinced here. Looking for better solutions

  • AWS S3: It is cheap, easy to use. But there should be a better option in the market.

Security

If we host on Cloudflare, security is provided by default. On all other platforms, we will have to explicitly think about it.

Analytics

We will not use Google analytics (GA)

Alternative:

Other analytics:

  • Posthog: useful for developer analytics
  • Sentry: error tracking directly within our applications

Monitoring

TODO:

  • datadog: investigate it (cloud monitoring as a service)

Notifications

TODO: Maybe SNS/SQS or Supabase realtime should suffice. Needs to be tested

This post is licensed under CC BY 4.0 by the author.