DRU Ltd.

A simpler website for DRU

A website we can update through Git, with articles and case studies in Markdown, one contact endpoint, and no database to maintain.

ENGINEERING / AT A GLANCE
0
application databases
1
isolated contact endpoint
Git
content and code in one workflow
Astro / TypeScript / Tailwind CSS / Cloudflare Pages

The problem

DRU needed a website that explains its services clearly, supports regular publishing, and makes it easy to get in touch—without adding unnecessary infrastructure to maintain.

The existing production template mixed useful contact information with generic service copy, placeholder links, and placeholder contact details. The new repository also contained a full starter showcase: demo pages, sample projects, a command launcher, and theme utilities.

The engineering decision

Keep the useful foundations and remove the features the site doesn’t need.

Astro already supplied static rendering, content collections, and a straightforward build process. TypeScript, Tailwind, MDX, sitemap generation, and local fonts were worth retaining. A component showcase, client-side page router, and a starter-generation CLI were not.

The replacement uses one shared page layout and one set of styles. Each service has its own page explaining what we can help with. Articles and case studies live in Markdown or MDX, with schemas that validate their metadata before a build.

The implementation

Content is rendered into HTML at build time. There is no database, account system, or CMS server. Draft content is excluded from public routes, listings, and the article feed.

The only server-side code is a contact endpoint designed for Cloudflare Pages Functions. It validates submissions and a Turnstile token before handing a plain-text message to an email provider. The page also supports a direct-email fallback. Contact details currently use an explicit placeholder; a real inbox and live delivery checks are required before launch.

Canonical URLs, metadata, structured data, and internal links are generated with the page—not assembled in the visitor’s browser.

What’s built and what’s still needed

The site has no application database and one contact endpoint. Articles and case studies are rendered into HTML before anyone visits the site.

This is our own website, not a client project. Contact details, email delivery, and the domain cutover still need to be configured and checked before launch. We haven’t measured changes in enquiries or search rankings.

Why it matters

Publishing means adding a content file and merging a pull request. The same review process controls code and content. There is less infrastructure to maintain and a clear place to change each part of the site.

Need help improving an existing system?

Related services

Your next build or engagement

Bring us
the challenge.

Need a custom build or contracted software delivery? Clients, recruiters, and agencies can discuss the agreed work directly with the engineers responsible for delivery.

Talk to an engineer