All projects
Full Stack case study

Hong Huat Website & CMS

A Thai-English corporate publishing platform with structured APIs for products, industries, articles, careers, and contact workflows.

Hong Huat public website on desktop
Public production website captured from honghuat.com.

Project introduction

Hong Huat is a multilingual corporate website and content platform for products, industries, company information, news, careers, customer references, and contact information.

What I worked on

  • Implemented responsive, localized pages with Next.js App Router and next-intl
  • Built NestJS modules for homepage content, products, industries, blogs, banners, careers, policies, contacts, files, and customer logos
  • Connected structured Prisma/PostgreSQL content to reusable Thai and English presentation components
  • Added validation, throttling, reCAPTCHA, and email handling to public contact workflows
  • Supported deterministic content migrations and Docker-based environments

Architecture

Authorized workflows manage structured business content through protected APIs. NestJS validates and persists records with Prisma and PostgreSQL, while the Next.js website requests localized data and renders it through shared components. MinIO-compatible storage handles managed files.

Outcome

Company content can evolve independently from public-page code while remaining consistent across languages and devices.

Core feature walkthrough

How the main product workflows operate

Core feature 01 · Multilingual publishing

Structured Thai and English content moves from protected editing to reusable public pages

Hong Huat models business content by domain instead of saving entire pages as opaque blobs. Products, industries, articles, careers, banners and policies each have explicit translation and media relationships.

Editor → localized website

Protected admin · NestJS · Prisma · PostgreSQL · Next.js

Select a node for implementation detail
Translation is part of the schema

Dedicated translation models keep language values aligned with the same product, industry, article or page section.

Domain APIs reduce page coupling

The website consumes products and content through stable contracts rather than reading administration-shaped tables directly.

Content can evolve independently

Editors can update structured records and media while reusable frontend components preserve presentation consistency.