Docker is how I ship everything to production — multi-stage builds, sandboxed compilation environments, and CI/CD pipelines that make deployment predictable.

Multi-stage builds are essential for polyglot monorepos. For Typcraft I use cargo-chef for Rust dependency caching in the first stage, pnpm for TypeScript in the second, with optimized final images. A two-tier Nginx reverse proxy splits traffic between the Next.js frontend and the Rust API server.


One of my favorite Docker use cases is Solang Playground — user-submitted Solidity code compiles inside sandboxed Docker containers, completely isolated from the host system. For Hurivuri, Docker Compose orchestrates PostgreSQL, Redis, Meilisearch, and the application services in both dev and production environments.


GitHub Actions handles the CI/CD — build-test-deploy pipelines triggered on push, with parallel Rust and TypeScript builds, automated Docker image publishing, and deployment to VPS infrastructure. On the infrastructure side I manage Cloudflare DNS with origin certificates, Nginx SSL termination, and PM2 for process management.


Once you have a reproducible Docker-based deployment pipeline, the confidence to ship changes frequently goes way up.