Go backends. React frontends. Built to exploit Kubernetes topology — local LLMs, split database connections, zero egress. Not just deployed on Kubernetes. Designed for it.
Trusted by Leading Organisations
The Difference
“Most applications are built for the cloud and bolted onto Kubernetes as an afterthought. We build the opposite: applications that treat the cluster as the platform — exploiting internal DNS, GPU nodes, and replica topology as first-class architectural decisions.”
The Core Differentiator
Three concrete examples. Each one shows a decision that only makes sense when you own the cluster topology.
When your cluster hosts primary and replica PostgreSQL nodes, your application can route traffic at the code level — not through a load balancer you pay per query for.
// Writes — strict consistency
postgres-primary.db.svc.cluster.local
// Read queries — horizontal scale
postgres-replica.db.svc.cluster.local
// Heavy aggregations — isolated
postgres-analytics.db.svc.cluster.local
→ Result: no connection pool bottleneck, no noisy-neighbour query killing your write latency.
Your application calls an internal HTTP endpoint. The model runs on your GPU node. Zero tokens leave the cluster. Zero per-call cost. Swap the model without touching application code.
// Internal cluster endpoint
llm-service.ai.svc.cluster.local
// vs. external API
api.openai.com — 800ms round-trip
// latency
<5ms vs 800ms
→ Result: AI features that feel instant, cost nothing per call, and never expose your data.
Public BFF handles auth and rate limiting. Internal services communicate over cluster DNS. Storage calls go to an S3-compatible endpoint on the cluster. No egress fees, no external dependencies in the hot path.
// Public — auth + rate limiting
bff.public.svc.cluster.local
// Internal — no public exposure
service-a.internal.svc.cluster.local
// Storage — S3-compatible, on-prem
garage.storage.svc.cluster.local
→ Result: zero egress fees on internal traffic, minimal public attack surface.
The Stack
Every component runs identically on bare metal or any Kubernetes cluster. No cloud SDK. No vendor assumptions.
ardanlabs/service patterns. Two-tier API: public BFF + private internal services. PostgreSQL + pgvector. Zero cloud SDK dependencies — runs identically on bare metal or any Kubernetes cluster.
React 18, Vite, TanStack Query. Optimised for self-hosted CDN. No vendor lock-in at the frontend layer. Deployed as static assets behind your ingress controller.
Helm charts, health probes, resource limits, HPA — shipped as part of the application. The cluster is the runtime, not the deployment target. Your ops team takes over from day one.
The Gap
A shop that builds for AWS will give you Lambda functions calling RDS through a NAT gateway, OpenAI for AI features, and S3 for storage. Move off cloud and the application falls apart — every service dependency is a US company’s managed offering.
We build without those assumptions from line one. The application works on bare metal, on any cloud, or in an air-gapped data centre. Portability is not an afterthought — it’s how the code is structured.
How We Work
Fixed-price stages. Knowledge transfer built in. Everything delivered to you.
Each stage is defined, scoped, and priced before we start. You pay on delivery. No surprise invoices, no scope creep, no hourly billing that compounds over months.
Your engineers learn the codebase by building it with us. We write documentation for your team, not our archive. By handover, your team is self-sufficient.
Helm charts, CI/CD pipelines, infrastructure-as-code — everything is yours at completion. No vendor lock-in, no ongoing licence, no hostage code.
Fixed-rate monthly retainer available for the next-level problems that come up after go-live. Optional — not a requirement. You can walk away fully self-sufficient.
Most Powerful With
This service is most powerful when the infrastructure underneath is also ours to design. If you’re running bare metal Kubernetes at NEXTDC, the cluster topology your application exploits is one we built and understand end to end. Every architectural decision — from DNS naming to GPU node affinity — is made in the same conversation.
Learn about our infrastructure service →Tell us what you’re building. We’ll scope it, price it, and start delivering.