Developer Guide

Understand how to develop with Postiz

How to setup your development environment

This page explains How to setup your development environment.

Architecture Overview

Before getting started with development, have a good read of the architecture overview. This will give you a good understanding of how the project is structured and how the different parts of the project interact with each other.

Repository Overview

Postiz is an open-source project, and the source code is available on GitHub (opens in a new tab).

The project is generally built using scripts in the package.json file with npm. The main scripts are:

  • npm run dev - Starts the development server
  • npm run prisma-generate - Generates the Prisma client
  • npm run prisma-db-push - Pushes the database schema to the database

The entire project is built under NX (opens in a new tab) to have a monorepo with multiple projects.

Unlike other NX project, this project has one .env file that is shared between all the apps.
It makes it easier to develop and deploy the project.

Frontend

The frontend is built with NextJS (opens in a new tab) and TailwindCSS (opens in a new tab).

Backend

The backend is built with NestJS (opens in a new tab) with a basic architecture of controllers, services, repositories and dtos.

It uses Prisma (opens in a new tab) as an ORM to interact with the database.
By default Prisma uses Postgres (opens in a new tab) as a database, but it can be easily changed to any other database since there are no native queries.

It uses Redis to schedule posts and run background jobs.

Cron

cron is built with NestJS (opens in a new tab) and share components with the backend.

Worker

worker is built with NestJS (opens in a new tab) and share components with the backend.

Contributors Guide

The Postiz contributors guide (opens in a new tab) is contained in the main repository. It provides information on how to contribute to the project, mainly the format for how to submit a pull request.