Company WebsiteCase study

Company Website for a Design-Build Contractor

Delivered scope

Nine routes live with an email-first lead pipeline, WhatsApp fallback, and CI-enforced media budgets

Conceptual artwork. Not a photograph or screenshot of the client's system.
Client
Design-build contractor
Category
Company Website
Location
Semarang, Indonesia
Completed
September 23, 2026

⚠ This case study is anonymised at the client’s request. The company name, domain, and project identities are not published. What is described below is the engineering scope of the work.

The problem

The client is a design-build contractor in Semarang whose portfolio of finished work had lived entirely in WhatsApp chats and word of mouth. They needed a site that does two things at once: present completed projects properly, and capture survey requests from prospective clients without any going missing.

What we built

A static Astro site on Cloudflare Workers, nine routes with Indonesian slugs throughout:

  • Home with a scroll-scrubbed build-sequence hero, followed by a scope stage, an RAB document section, and an interior deck.
  • Services as an interactive scope showcase, and About, which lays four acts over one continuous scrubbed clip.
  • Projects: ten real projects, each with a detail page and real photography of the work. Generated footage is used purely as illustration and is never captioned as a client project.
  • Contact shaped as a work order, the “Survey Request Sheet”, which lands on the site’s only server code: POST /api/contact.

The lead pipeline is email-first with a fallback: the lead reaches the client’s inbox via Resend with reply_to set to the visitor’s address; Fonnte WhatsApp fires only if email fails, so one lead produces one notification; if both fail, the site returns an honest 502 and points the visitor at WhatsApp. The form is guarded by a honeypot, validation, and cross-origin rejection.

Engineering decisions

Static first, the Worker only when needed. The Cloudflare edge serves matching static assets without invoking the Worker, so pages cost no invocations; only the form endpoint actually runs as server code.

Media budgets are held by CI, not taste. Every video and image carries per-file and per-page ceilings enforced by media:budget; the next clip that exceeds the remaining headroom fails the build. That is what keeps a cinematic hero fast.

Going live is one guarded edit. The real domain and the staging flag change in a single commit, and a guard test fails if they disagree, because both mistakes are invisible in a browser.

Handover

The site is live on the client’s domain, with automatic deploys from pushes to main once the full gate (format, lint, type-check, tests, build) is green. We wrote the domain-launch runbook, the SEO guide, and the ads-tracking guide into the repository, including the open items that must be resolved before the form is fully trusted in production.

From this study to your project

Does your team face a similar problem?

Tell us about the workflow and its constraints. We start with a scope we can describe and verify.

Next case study

Agentic Engineering: Risk-Routed Spec-Driven Dev