Both systems were developed as a REST services, using NestJS framework, with modular N-tier architecture and PostgreSQL as persistence solution.
Authentication was done via JWT with custom roles and permissions sub-system, for the frontend solutions. Inter-service communication was secured by rotating api-keys.
Services were built using Docker and deployed to Digital Ocean droplets, over GitHub pipeline.