PROJECT_07

HECASA

Sitio web HECASA

Site for a custom ironwork and carpentry workshop, in development: services, project gallery and contact form, served from the edge on Cloudflare Workers.

TYPE
Website · Next.js
STATUS
IN PROGRESS
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Cloudflare Workers
  • OpenNext
  • Resend

CONTEXT

HECASA builds fitted kitchens, closets, custom furniture, gates and railings in Puebla. Their work sells on the photograph, so the site was built around the gallery: every project with its images, materials and finish. The name comes from the trade — HErrería y CArpintería — and both weigh the same in the structure, in that order.

WHAT IT SOLVES

  • A gallery of finished projects, each with its own sheet: materials, finish, hardware and build time.
  • A catalogue of both trades, from fitted kitchens and closets to gates, railings and metal structures.
  • The process explained in three steps — consultation, proposal, build — because it is the question that comes up most before ordering.
  • A contact form that reaches the workshop inbox, plus WhatsApp and a location for whoever prefers to call.
  • Local business structured data, so it turns up for "carpenter in Puebla" and not only by name.

HOW IT IS BUILT

  • Next.js 16 with the App Router, deployed to Cloudflare Workers through OpenNext: pages are pregenerated and the Worker only handles the form submission.
  • Photographs are compiled to WebP at several sizes during the build, not on every visit. Optimizing them at the edge exhausted the Worker resource limit and returned error 1102.
  • The form sends through Resend with the key stored as a secret, never in the repository or the client bundle.
  • Contact details live in a single file and, while they remain placeholders, the site neither links them nor declares them in the JSON-LD: it never publishes a phone number that does not exist.