Skip to content
← Back to Insights

Case Study

How We Built the TC Energy Website — A Technical Case Study

12 August 2026 · 8 min read

TC Energy & Logistics needed a site that reflected the scale of a real logistics operation, contract logistics, courier services, storage, moves, and procurement, without needing a server to maintain or a hosting bill that scaled with traffic it couldn’t predict. Here’s the actual architecture behind it.

The problem

A logistics company’s site is a credibility signal as much as an information source: prospective clients checking whether the business looks as capable online as it claims to be in a quote call. The brief was a modern, high-performing platform that reflected TC Energy’s brand and capabilities accurately, built to be fast anywhere in the country, not just near wherever the server happened to sit.

Why static, not a traditional server

The site’s content, services, stats, contact details, doesn’t need to be generated per-request. That makes a fully static architecture the right fit: build the site once, distribute the finished files globally, and let a CDN serve them from the location nearest each visitor. No server to patch, no runtime compute sitting idle between visitors, and no attack surface beyond the static files themselves.

The stack

  • React + Vite for the frontend, built to a small, fast-loading bundle.
  • Amazon S3 as the origin, storing the built site with no public access enabled on the bucket at all.
  • Amazon CloudFront distributing the site globally from edge locations, so a visitor in Durban and a visitor in Cape Town both get a fast load.
  • Origin Access Control (OAC), the current standard, replacing the older OAI pattern, so CloudFront is the only thing allowed to read from the S3 bucket, ever.
  • AWS WAF at the edge, filtering malicious traffic before it ever reaches the origin.
  • Route 53 for DNS and AWS Certificate Manager for TLS, auto-renewing well ahead of expiry.

The detail that actually matters: caching strategy

Vite gives every JS and CSS file a content hash in its filename, so those assets are cached for a full year, they physically can’t go stale, because a code change produces a new filename. The one file that isn’t hashed, index.html, uses a short cache window instead, so a new deploy shows up for visitors within about a minute, without needing a manual cache invalidation on every release.

Outcome

A site that loads fast from any edge location, costs a few dollars a month to run at typical traffic (the dominant cost is CloudFront data transfer, not compute, because there isn’t any), and has no server to patch because there isn’t a server. Security posture and performance both improve, and the monthly bill drops, from the same architectural decision.

“The project delivered exactly what TC Energy needed: a modern, high-performing platform that accurately reflects our brand and capabilities. The build was handled with complete professionalism from start to finish.”

Tony, Owner, TC Energy

The full technical write-up, including the request-flow breakdown, security considerations, and the actual AWS cost table, is on the TC Energy Concept Website project page.