◇ CM ~/builds/timswood
← BUILDS
§B04 CASE STUDY 2026.01
LIVE · DEPLOYED

timswood.com

Retirement tribute site for my father-in-law — a gift that gave him his own corner of the internet.

Cloudflare PagesHTMLCSSCloudflare Email RoutingCloudflare D1
$ cat timswood.spec
DATE
January 1, 2026
STATUS
LIVE · DEPLOYED
TAGS
cloudflare · pages · static-site · css · gift-project

What it is

A single-page retirement landing site for my father-in-law Tim — a master woodworker and licensed pilot who officially left the workforce in 2026. The site captures his two passions in a design that feels handcrafted: a carved wooden sign aesthetic, a blueprint-grid section, and a small easter egg — a paper plane that flies across the header on every load.

The site also includes a Wish Wall guestbook backed by Cloudflare D1 so friends and family can leave a permanent message.

Why I built it

Tim retired and I wanted to give him something personal and permanent — his own name on his own piece of the internet. Not a card, not a photo book: a real thing that he owns. The brief I gave myself: make it feel like a craftsman made it, and leave a door open for him to use it however he wants.

How it works

Cloudflare end-to-end — registrar, DNS, Pages, Email Routing, and D1 all under one account with one login. The site is a single index.html deployed to Cloudflare Pages. Email to tim@timswood.com forwards to his inbox via Cloudflare Email Routing. No servers, no CMS, nothing to maintain.

The wood-grain background is pure CSS — layered repeating-linear-gradient() calls simulating vertical plank grain. The carved-sign effect on the headline uses text-shadow for depth without any images, keeping the page under 50KB total.

The Wish Wall writes visitor messages to a D1 database via a Pages Function endpoint, so the guestbook persists without any external database service.

What I learned

A deeply constrained format (one HTML file, no build step, no dependencies) forces creative problem-solving in CSS. The interesting challenge was achieving convincing wood texture without a single image or external asset. The result is a page that loads in under 200ms globally with zero ongoing cost.

The other lesson: design constraints imposed by the subject matter — woodworking, craftsmanship, precision — made every decision easier. “Would a craftsman do it this way?” is a better design filter than any style guide.

What’s next

The domain and site are his. The structure is there if he wants to turn it into a portfolio for his woodworking, a project blog, or just keep the landing page forever.