---
title: "Wonderia — Multilingual Site on Google Cloud — Tran Manh Tuan"
description: "The multilingual brand website of Wonderia YOKOHAMA (wonderia.jp) — 4 languages, marketing self-publishing via Contentful, running serverless on Google Cloud."
canonical: "https://tmtuan.dev/en/projects/wonderia"
language: "en"
image: "https://tmtuan.dev/_img/projects/wonderia/wonderia.afca6a30-og.jpg"
tokens: 890
---

# Wonderia

**Wonderia YOKOHAMA** is the brand-facing website at **wonderia.jp**, reaching visitors in 4 languages: Japanese, English, Korean and Traditional Chinese. The brief: the marketing team updates content without waiting for a developer, every contact and group-booking request reaches the customer-support team without getting lost or mixed with spam, and the system runs reliably and securely at a low operating cost.

The site is built with **Next.js 15 / React 19**, with next-intl handling locale-based routing and multilingual SEO. Pages are pre-rendered at build time, so they load almost instantly and never depend on the CMS at request time; motion and parallax effects give the site the feel of an entertainment destination. Editors write content in **Contentful** — clicking Publish or Deploy to Dev right inside the CMS triggers a build, deploys to the matching environment and reports the result to Slack, with no IT tickets and no waiting for a release.

The contact form and the group-booking form (with its own structure) go through a **dedicated API (Node.js/Express on Cloud Run)**: strict input validation with Zod, bot filtering with Google reCAPTCHA, then a ticket created directly in **Zendesk**, so the CS team receives clean, complete requests it can answer right away. Outbound traffic leaves through a static IP (Cloud NAT), satisfying partners' whitelist requirements.

The entire infrastructure is defined with **Terraform**, with fully separated Dev and Production environments and a serverless architecture that scales with traffic. Every code change automatically passes three security scans — library and container vulnerabilities (Trivy), source-code security issues (Semgrep), leaked secrets (Gitleaks); secrets live in Secret Manager, containers run as a non-root user, and each service is granted only the permissions it needs.

## Details

- **Role:** Technical Lead
- **Website:** [wonderia.jp/](https://wonderia.jp/)

## Technology

- React
- Next.js
- TypeScript
- next-intl
- Contentful
- Node.js
- Express
- Cloud Run
- Zendesk
- reCAPTCHA
- Terraform
- Github Action
- Docker
- Trivy
- Semgrep
- Gitleaks

## Services this project shows

- [Corporate & Content Web Platforms](https://tmtuan.dev/en/services/web-platforms)
- [Cloud Infrastructure](https://tmtuan.dev/en/services/gcp-cloud-infrastructure)

## Related articles

- [Docs-as-code Knowledge Base + Context Graph for a 15-project portfolio](https://tmtuan.dev/en/articles/knowledge-base-docs-as-code-context-graph)
- [How I Traced a Googlebot-only HTTP 500 Across Next.js, Cloud Run and the Hosting Edge](https://tmtuan.dev/en/articles/googlebot-500-firebase-hosting-nextjs)

## Structured data (JSON-LD)

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://tmtuan.dev/en/projects/wonderia#webpage","url":"https://tmtuan.dev/en/projects/wonderia","name":"Wonderia — Multilingual Site on Google Cloud","description":"The multilingual brand website of Wonderia YOKOHAMA (wonderia.jp) — 4 languages, marketing self-publishing via Contentful, running serverless on Google Cloud.","inLanguage":"en","isPartOf":{"@id":"https://tmtuan.dev/#website"},"about":{"@id":"https://tmtuan.dev/#person"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://tmtuan.dev/en"},{"@type":"ListItem","position":2,"name":"Projects","item":"https://tmtuan.dev/en/projects"},{"@type":"ListItem","position":3,"name":"Wonderia","item":"https://tmtuan.dev/en/projects/wonderia"}]}]}
```
