Backend
NestJS (TypeScript) services on a Prisma ORM and pnpm/Turborepo workspace. PostgreSQL is the primary OLTP store; Valkey/Redis handles cache, sessions, and BullMQ queues; MongoDB Atlas powers AI vector search.
TECHNOLOGY
An overview of the technologies, infrastructure, and observability stack that powers the Tanqory platform. Sourced from our internal infrastructure registry, not marketing copy.
Tanqory ships four product surfaces — admin web, store web, native iOS, native Android — backed by an infrastructure footprint designed for multi-cloud, multi-region deployment. Every layer below is reviewed quarterly against the source-of-truth registry.
NestJS (TypeScript) services on a Prisma ORM and pnpm/Turborepo workspace. PostgreSQL is the primary OLTP store; Valkey/Redis handles cache, sessions, and BullMQ queues; MongoDB Atlas powers AI vector search.
Next.js 16 with Turbopack, React 19, TypeScript 5, Tailwind 4. Server Components by default; ISR for content-heavy surfaces; static prerender for launched locales.
Native iOS in SwiftUI / Swift 6 (Xcode 16+, min iOS 17, target 18+) and native Android in Kotlin + Jetpack Compose (min SDK 24, target SDK 36). On-device LLM where the platform supports it.
DigitalOcean primary, Google Cloud and AWS secondary, Cloudflare at the edge. Four business regions: Asia Pacific, Americas, Europe, Middle East and Africa.
Tanqory's backend is a set of NestJS services in a TypeScript monorepo. Schemas, queues, and the AI service are wired against managed databases — no self-hosted database servers in production.
Admin API, Store API, AI Service. Shared validation, authentication, and observability middleware across services.
Primary OLTP store across seven schemas — Central (auth, billing, provisioning), Store, Policy, Theme, Tax, VM, and Analytics. DigitalOcean Managed PostgreSQL with provider-managed AES-256 at rest and sslmode=require in transit.
Vector search (1536-dim, OpenAI text-embedding-3-small) and document storage for the AI service only. Hosted on AWS ap-southeast-1 Singapore by default.
DigitalOcean Managed Valkey/Redis (HA pair in production). Cache, sessions, and BullMQ queue backing.
Schema-first ORM across services. Migrations gated by review and applied via the deploy pipeline, not by hand.
Monorepo workspace with cached, parallelised builds across 18 apps and 11 shared packages.
Tanqory's web surfaces — admin, store, marketing, and the Trust Center you are reading now — share a Next.js 16 baseline with strict TypeScript and Tailwind 4.
App Router with Server Components by default. Per-app prerender + ISR policy.
Concurrent rendering, server actions, and useOptimistic for write-heavy admin flows.
Strict mode across all apps. Shared types live in `@tanqory/*` workspace packages.
Utility-first styling with shared design tokens. No CSS-in-JS runtime in production bundles.
Tanqory ships first-party native apps on iOS and Android. Both rely on the platform's on-device LLM where supported, falling back to cloud inference via the AI service.
Native SwiftUI, Swift 6, Xcode 16+
Minimum iOS 17, target iOS 18+
Native Kotlin with Jetpack Compose
Minimum SDK 24, target SDK 36
Tanqory operates an infrastructure footprint designed for multi-cloud, multi-region deployment. The table below reflects the four business regions and the cloud providers wired against each. Customer data is processed and stored in the business region assigned to the merchant at sign-up. Multi-region active-active failover is not currently in production; cross-region failover is on the resilience roadmap, owned by Engineering.
| Business region | DigitalOcean | Google Cloud | Amazon Web Services |
|---|---|---|---|
| Asia Pacific | sgp1 (Singapore) | asia-southeast1 (Singapore) | ap-southeast-1 (Singapore) |
| Americas | nyc1 (New York); sfo3 (San Francisco) | us-central1 (Iowa); us-east1 (South Carolina) | us-east-1 (N. Virginia) |
| Europe | fra1 (Frankfurt); ams3 (Amsterdam) | europe-west1 (Belgium); europe-west3 (Frankfurt) | eu-west-1 (Ireland); eu-central-1 (Frankfurt) |
| Middle East Africa | lon1 (London, used as MEA proxy) | me-central1 (Doha, Qatar) | me-south-1 (Bahrain); af-south-1 (Cape Town) |
Primary compute and database
DOKS (Kubernetes), Managed PostgreSQL (HA + read replica), Managed Valkey/Redis (HA pair), Spaces (S3-compatible), Container Registry.
Secondary compute
Compute Engine and GKE for per-region pods where required by contract or workload.
Secondary compute and storage
EC2, S3 (theme assets), and RDS PostgreSQL where customer contracts require AWS-only data residency.
Edge and DNS
Authoritative DNS for tanqory.com, CDN, WAF, API Shield, automatic DDoS protection, R2 object storage, and Workers.
AI vector database
Vector search and document storage for the AI service only. Default region: AWS ap-southeast-1 Singapore.
Encryption claims map to the encryption section of the infrastructure registry. The list below is verified live; we do not claim controls we have not implemented.
TLS 1.2+ everywhere, with TLS 1.3 preferred at the edge. Cloudflare Universal SSL on every public hostname; ACME certificate issuance via Let's Encrypt. mTLS between selected internal services. PostgreSQL connections enforce sslmode=require.
Provider-managed AES-256 on DigitalOcean Managed PostgreSQL volumes and MongoDB Atlas. Cloudflare R2 server-side encryption on primary object storage.
AES-256-GCM for TOTP secrets, OAuth tokens, and payment-provider credentials. AES-256-CBC for SSL private keys. Key material is delivered from Infisical, never embedded in deploy manifests.
Customer-facing file uploads in admin-api and store-api are scanned with clamscan before they are written to durable storage.
We instrument every production service for errors and performance, and we publish operational status on a separate hostname so customers can see incidents independently of the platform itself.
Sentry across backend (NestJS), web (Next.js), and mobile (iOS, Android). Source maps and release tagging on every deploy.
status.tanqory.com is the canonical operational status surface for customers, separate from the marketing site.
Engineering operates a 24x7 on-call rotation for production incidents. A dedicated, in-house 24x7 SOC is on the security roadmap but is not in production today — we say so explicitly.
Tanqory runs a self-hosted Infisical instance at secrets.tanqory.com. Secrets are delivered into Kubernetes via the Infisical Secrets Operator, surfaced as native Kubernetes Secret objects, and re-rolled by Reloader when a value changes. No static long-lived credentials are baked into deployment manifests.
Builds happen on Buildkite. Delivery is GitOps via ArgoCD against the tanqory-platform-deploy repository. Container images live in DigitalOcean's container registry.
Buildkite pipelines. Lint, type-check, unit tests, and container image build run on every pull request.
ArgoCD GitOps reconciles the live cluster state against the tanqory-platform-deploy repository. No imperative kubectl applies in production.
registry.digitalocean.com/tanqory-prod is the canonical production image registry.
Enterprise security and procurement teams can request our security questionnaire, current DPA template, and a technical-architecture briefing under NDA.
Email the Trust team