Architecture
Every technological decision is driven by simplicity. We believe that product used by people is the only reason why technologies exist. Our goal is to help products stand up on their feet without investing too much on early stages.
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
- Start base infra services in Docker containers:
- Run services with Turborepo
Using Ship with Docker
To run infra and all services — just run: pnpm run docker
🚀
Docker: Running infra and services separately
- Start base infra services in Docker containers:
- Run services you need:
You can also run infra services separately with ./bin/start.sh
bash script.