Skip to content

Forma3D.Connect — Technology Stack

Comprehensive technology inventory for the Forma3D.Connect platform. Last updated: March 2026


Languages

Technology Usage
TypeScript Primary language — frontend, backend, shared libs, scripts
JavaScript k6 load tests, Slicer API (BambuStudio wrapper)
Shell (Bash) Deployment, registry, backup, and build-agent scripts
SQL Prisma migrations, raw queries
Gherkin Acceptance test feature files (Cucumber/BDD)
Python Zensical docs site toolchain (plantuml-markdown)
Markdown Documentation, ADRs, runbooks, prompts, README files
PlantUML Architecture diagrams (C4, ERD, sequences, state machines)

Frontend

Technology Version Purpose
React 19 UI framework
Vite 7 Build tooling and dev server
Tailwind CSS 4 Utility-first styling
TanStack Query 5 Server state management
React Router 6 Client-side routing
Headless UI 2 Accessible UI primitives
Heroicons 2 Icon library
ECharts 6 Dashboard charts and visualizations
Socket.IO Client 4 Real-time WebSocket communication
Zod 4 Schema validation
clsx Conditional className utility
date-fns 4 Date formatting and manipulation
react-hot-toast 2 Toast notifications
idb 8 IndexedDB wrapper for offline storage

Progressive Web App (PWA)

Technology Purpose
vite-plugin-pwa PWA integration with Vite (injectManifest strategy)
Workbox Service worker tooling (precaching, routing, strategies, expiration)
web-push Server-side push notification delivery
@vite-pwa/assets-generator PWA icon and splash screen generation

Backend

Technology Version Purpose
Node.js ≥20 Runtime
NestJS 11 Application framework
Express 5 HTTP server (NestJS platform)
Prisma 5 ORM and database client
Socket.IO 4 Real-time WebSocket server
BullMQ 5 Distributed job/event queues
Bull Board 6 Queue monitoring dashboard
Nodemailer 7 Transactional email sending
Handlebars 4 Email templates
Helmet 8 HTTP security headers
Swagger / OpenAPI Auto-generated API documentation (@nestjs/swagger)
Pino 10 Structured JSON logging
argon2 Password hashing (argon2id)
express-session Session-based authentication
connect-redis Redis-backed session store
class-validator / class-transformer DTO validation and transformation
RxJS 7 Reactive programming (NestJS internals, event streams)
axios HTTP client for external API calls
http-proxy-middleware API gateway proxying
@nestjs/throttler Rate limiting
@nestjs/schedule Cron jobs and scheduled tasks
@nestjs/terminus Health checks
@nestjs/microservices Inter-service communication
@nestjs/event-emitter In-process event bus
@nestjs/cache-manager Caching layer

Microservices

Service Responsibility
Gateway API gateway, auth, sessions, WebSocket proxy, Swagger aggregation
Order Service Orders, Shopify webhooks, fulfillment, inventory
Print Service Print jobs, SimplyPrint integration
Shipping Service Shipments, SendCloud integration
GridFlock Service Gridfinity STL generation pipeline
Slicer BambuStudio-based 3D model slicing (Node.js/Express wrapper)

3D / STL Generation

Technology Purpose
JSCAD (@jscad/modeling) Programmatic 3D geometry (Gridfinity baseplates)
@jscad/stl-serializer STL binary output from JSCAD models
BambuStudio (Slicer) G-code slicing for 3D printers (containerized)

Database & Data

Technology Purpose
PostgreSQL Primary relational database
Prisma ORM Schema-first migrations, type-safe queries
prisma-uml ERD generation from Prisma schema
Redis 7 Session store, Socket.IO adapter, BullMQ broker, caching
ClickHouse Log storage and analytics (OpenTelemetry sink)

External Integrations (SaaS)

Service Purpose
Shopify E-commerce platform — orders, webhooks, OAuth, product sync
SimplyPrint Print farm management — print jobs, printer status
SendCloud Shipping — labels, tracking, carrier integration

Cloud & Infrastructure

Technology Purpose
DigitalOcean Droplets Application hosting (staging, production)
DigitalOcean Container Registry Docker image registry
DigitalOcean Spaces Object storage (ClickHouse log backups)
Docker Application containerization
Docker Compose Multi-container orchestration
Traefik 3 Reverse proxy, TLS termination, routing
Let's Encrypt Automated TLS certificate provisioning (via Traefik ACME)
Nginx Static file serving (web app, docs, CodeCharta)

CI/CD

Technology Purpose
Azure DevOps Pipelines CI/CD orchestration (build, test, deploy)
Nx (affected) Incremental builds, task orchestration, dependency graph
Docker Buildx Multi-stage container builds
Self-hosted build agents DigitalOcean Droplet build runners

Pipeline Stages

Validate & Test → Code Quality (SonarCloud) → Build & Package → CodeCharta → Deploy Staging → Acceptance Tests → Load Tests → Production


Observability & Monitoring

Technology Purpose
Sentry Error tracking, performance monitoring, profiling (frontend + backend)
OpenTelemetry Distributed tracing and log collection
OpenTelemetry Collector Telemetry pipeline (traces → ClickHouse)
Grafana Dashboards and log visualization (ClickHouse datasource)
ClickHouse Log and trace storage
Uptime Kuma Uptime monitoring and status page
Dozzle Real-time Docker log viewer
Pino Structured application logging

Security

Technology Purpose
Syft + Grype CycloneDX SBOM generation (Syft) and CVE scanning (Grype) — open-source tools by Anchore, run in CI/CD
Cosign (Sigstore) Container image signing and verification
Syft SBOM (Software Bill of Materials) generation
Helmet HTTP security headers
argon2 Password hashing

Code Quality & Analysis

Technology Purpose
SonarCloud Static analysis, code smells, coverage tracking, architecture enforcement
CodeCharta 3D city visualization of code metrics (from SonarCloud + git)
ESLint 9 Linting (TypeScript, React, JSX a11y, import rules)
Prettier Code formatting

Testing

Technology Purpose
Vitest Frontend unit tests
Jest Backend unit tests
Testing Library React component testing (react, user-event, jest-dom)
MSW (Mock Service Worker) API mocking for frontend tests
SuperTest HTTP integration testing for NestJS
Playwright End-to-end browser testing
playwright-bdd BDD layer for Playwright (Gherkin features)
k6 Load and performance testing

Documentation

Technology Purpose
Zensical Documentation site generator (hosted, auto-built in pipeline)
PlantUML (plantuml-markdown) Architecture diagrams rendered to SVG during build
EventCatalog Event-driven architecture documentation (services, events, flows)
Swagger / OpenAPI Auto-generated API reference
ADRs (Architecture Decision Records) Architectural decision log (66+ records)

AI & Developer Tooling

Technology Purpose
Cursor IDE Primary development environment
Claude Opus 4.6 Primary AI model (code generation, refactoring, architecture)
SpecStory AI conversation history and context persistence (780+ sessions)
Nanoclaw Agentic AI team framework (Docker-isolated agents)
Nx MCP Server Nx workspace intelligence for AI agents
.cursorrules / AGENTS.md AI behavior rules and workspace conventions

Agentic Team (Nanoclaw)

Agent Role
Cody Codewell Software Engineer
Ryan "Ops" O'Malley DevOps Engineer
Sam "Rack" Reynolds Infrastructure Engineer (planned)

Build & Package Management

Technology Purpose
Nx 22 Monorepo task runner, project graph, affected commands
pnpm 9 Package manager
Vite 7 Frontend bundler
Webpack Backend bundler (NestJS services)
SWC Fast TypeScript/JavaScript compilation
ts-node / tsx TypeScript execution for scripts and seeds

Key Architectural Patterns

Pattern Implementation
Monorepo Nx with strict library boundaries
Microservices 5 NestJS services + API gateway
Event-driven BullMQ + Redis for async inter-service events
RBAC Tenant → User → Role → Permission (PostgreSQL)
PWA Service worker, offline support, push notifications
Schema-first Prisma schema as single source of truth
C4 Model Context, Container, Component, Code diagrams
Trunk-based development Short-lived branches, CI gates