Case Study
Shipping a Small Business Site on AWS Amplify: Astro, Motion, and a Custom Domain Fix
28 August 2026 · 7 min read
Not every project is a platform. This one was a single landing page for a refrigeration and air conditioning company, on a small fixed fee, logo included. The interesting parts were how fast it came together and one specific AWS snag that anyone deploying to Amplify with a freshly bought domain will hit.
Built from a concept video
The client had recorded a rough walkthrough of the site they imagined, section by section. That became the brief. The build is an Astro project, nine sections, with scroll-driven motion using GSAP and a smooth-scroll layer, and an image carousel for the work gallery. Astro was the right call because the page is almost entirely static content: it ships as HTML with a minimal amount of JavaScript, loads fast on a phone on mobile data, and costs almost nothing to host.
Real content, not filler
Competitor sites in the same trade were reviewed first, and the patterns that actually drive a phone call were built in deliberately: brands serviced shown as named partners, company registration and licensing shown as trust badges, and real customer quotes with a name and a suburb rather than a generic "five star service" line. The client supplied several real reviews with permission, and those went in verbatim.
Deploying to Amplify without a connected repo
The Amplify app is deployed by hand: zip the build output, create a deployment, upload, start it. No git integration on the client’s side. A workflow file sits in the repo for when that changes. For a site that updates rarely, manual zip deploys are simpler than wiring up a pipeline nobody will maintain.
The custom domain problem
The client bought the domain, then pointed everyone at it. Amplify’s managed custom domain feature refused it with "not a valid public domain". The cause: the domain was registered but had no name servers and no DNS zone yet, so it did not resolve at all, and Amplify validates that the domain is real and reachable before it will attach. A brand new registration often sits in exactly this state for a while.
The fix
Rather than wait, the certificate was requested manually: a DNS-validated certificate through AWS Certificate Manager, validated by adding the required record once the DNS zone existed, then attached to the Amplify app as a custom certificate instead of using the managed flow. Both the apex domain and the www subdomain now serve the site over HTTPS with a valid certificate. If you are deploying to Amplify and hit the "not a valid public domain" wall, this is the way around it.
Tearing down what is no longer needed
The site originally had a client intake form backed by a small serverless mailer: a function, an email identity, and an API gateway. Once the client’s content was collected, all of it was removed from both AWS and the codebase, and the contact action became a plain email link with a messaging alternative. Leaving unused infrastructure running is how small cloud bills quietly grow.
“On a small project, the discipline is knowing what to take back out.”