Ziggy
TypeScript Monorepo

Your app and your ops,together.

Three sub-projects in one repository — your application, a DevOps admin portal, and Terraform infrastructure — all TypeScript, all integrated, all yours.

Section 1

/app — Your Product NestJS + React + PostgreSQL

A carefully designed enterprise-grade architecture that runs the SOC-ready core and your business application code.

  • NestJS server with 23 core modules providing authentication, MFA, RBAC, encryption, audit, and more
  • React + Vite client with 42 core components and Zustand state management
  • ~85 REST API endpoints with typed DTOs and policy-guarded access
  • PostgreSQL database with 30 tables and Prisma ORM with transparent encryption
Section 2

Core/App Module Split platform vs. business logic

Core modules provide platform infrastructure — authentication, MFA, RBAC, encryption, audit, alerting. App modules contain your business logic. New modules follow established patterns and integrate with the existing authorization and event systems automatically.

  • Core modules: auth, MFA, RBAC, encryption, audit, alerting, email, settings, scheduler, and more
  • App modules: your domain — meetings, templates, briefs, projects, stakeholders, actions
  • New modules follow the established patterns
  • Policy registry entries for new endpoints integrate with existing authorization automatically
Section 3

/admin — DevOps Portal real-time infrastructure visibility

A separate NestJS server with its own React + Vite client, purpose-built for operations teams. WebSocket real-time communication, SSH integration, and infrastructure management — deployed alongside your main application without touching application code.

  • Separate NestJS server with its own React + Vite client
  • WebSocket real-time communication for live infrastructure monitoring
  • SSH integration for remote server management
  • Independent deployment — admin portal runs alongside your main application
  • Operations teams get visibility without touching application code
Section 4

/devops — Infrastructure as Code Terraform, included

Terraform modules for multi-cloud provisioning live alongside your application code — not in a separate repository, not sold as an add-on. Infrastructure changes are version-controlled and tracked with every commit.

  • Terraform modules for multi-cloud provisioning included in the monorepo
  • Infrastructure defined alongside application code — not in a separate repo
  • Version-controlled infrastructure changes tracked with application changes
  • Docker configurations for containerized deployments
  • Provisioning included in the platform, not sold separately
Section 5

Cross-Stack Type Safety TypeScript everywhere

TypeScript from client to server to admin to infrastructure. Prisma-generated types flow from database schema to API responses. One language, one team — no context-switching between application code and another language.

  • TypeScript from client to server to admin to infrastructure
  • Prisma-generated types flow from database schema to API responses
  • Zustand stores with typed state shapes and async actions
  • Domain events with typed payloads across module boundaries
  • One language, one team — no context-switching to another runtime
Section 6

Key Patterns conventions that compound

Consistent patterns reduce cognitive load and make the codebase predictable. Typed configuration, event-driven communication, repository pattern for data access, DTO mapping for API responses, and a uniform error handling base class.

  • Typed configuration via registerAs() — every config module validated at startup
  • Cross-module communication via @nestjs/event-emitter domain events (audit.log, user.created, mfa.verified)
  • Repository pattern for data access — consistent query interfaces across all modules
  • DTO response mapping via fromEntity() — internal entities never leak to API consumers
  • AppException base class with HTTP status codes and structured error metadata
  • 16 typed configuration modules registered across the server

Want to see it in action? Get in touch for a demo or trial