Overview

Our technological choices based on the following main tools: Next.js, Tanstack Query, React Hook Form, Mantine UI, Koa.js, Socket.IO, MongoDB, Turborepo, Docker, Kubernetes, GitHub Actions and TypeScript.

On a high-level Ship consist of the following parts:

Web

API

Scheduler

Migrator

Deployment

The image below illustrates the main components and key relationships between them:

Starting application with Turborepo

To run infra and all services — just run: pnpm start 🚀

Turborepo: Running infra and services separately

  1. Start base infra services in Docker containers:
pnpm run infra
  1. Run services with Turborepo
pnpm turbo-start

Using Ship with Docker

To run infra and all services — just run: pnpm run docker 🚀

Docker: Running infra and services separately

  1. Start base infra services in Docker containers:
pnpm run infra
  1. Run services you need:
./bin/start.sh api web

You can also run infra services separately with ./bin/start.sh bash script.