PJL Sales Ops

Phillip Johnson Landscapes Website

WordPress out, Astro on Cloudflare Workers in, with every service page feeding the CRM.

97commits
19content pages migrated
16pages with CRM lead forms
Home page hero carousel, images served through Cloudflare Image Transformations
Home page hero carousel, images served through Cloudflare Image Transformations

The legacy WordPress site had no meta descriptions on internal pages and shipped about seventy theme demo pages alongside the real content. The rebuild is a static Astro site on Cloudflare Workers with images in R2 served through Image Transformations, a git-backed CMS for staff, and Pipedrive lead forms on every service page so enquiries land in the CRM that the rest of the sales stack acts on.

What changed

Content is Markdown in Astro content collections: pages, posts, press clippings and a projects collection covering the practice's notable work, including the 5000 Poppies installations and the Chelsea Flower Show garden. The site uses the same brand typography as the proposal engine so documents and web feel like one organisation.

Images live in an R2 bucket behind a custom images hostname. A small component wraps every image in Cloudflare Image Transformation URLs, so the repo stays small and the browser gets the right size and format.

Operational care

The Worker in front of the static bundle handles the apex redirect and a single dynamic upload route with a MIME allowlist, a transport cap and a resize above 5120 pixels. The workers.dev hostname is disabled with a comment explaining that without that, the admin, image library and API paths would be reachable without Access. The R2 reorganisation was done as a manifest, copy, rewrite, verify and delete sequence with before-and-after inventories checked into the docs folder.