Start with self-hosted
Technical stack

Technical stack

The long start includes a technical explanation of the stack and a step by step guide to setup the instance locally. It aims for comprehension of the project.

The project

Progressively is one product that needs multiple tools to run on different platforms. Here is a list of what is needed to make it run from the user interface until finally reaching the databases.

The dashboard (frontend)

The dashboard (the frontend) is built with (opens in a new tab), a React (opens in a new tab) meta-framework. The tool is very practical for handling forms in an accessible way and for handling server side data fetching in a very effecient way.

The frontend project owns the End-To-End testing suites and we're using Cypress (opens in a new tab) to run them.

The backend

The backend is built with Nestjs (opens in a new tab) with REST APIs. To access the relational database, it uses Prisma (opens in a new tab).

The backend also exposes a websocket endpoint for real-time updates and leverages Redis pub/sub (opens in a new tab) for horizontally scale the websocket connections.

The databases

Postgres (opens in a new tab) is used for relational data and Redis (opens in a new tab) is only use to scale the websocket connections.

The repository

The project is a monorepo that uses Pnpm (opens in a new tab) and Turbo (opens in a new tab) to manage the dependencies and workspaces. The goal is to be as consistent and as fast as possible.