AI Link
AI Link is a corporate website introducing the company's mission, its AI services (Devin, Leaders AI) and news to business customers. The brief: bilingual Japanese–English from launch day, a fast launch with low operating cost and quick addition of new service pages, a consultation form that blocks spam and answers customers in their own language, and security from day one — worthy of a technology brand.
The site is built with Next.js 15 (App Router) + React + TypeScript, exported as a fully static site on a CDN: production has no server at all — pages load fast, there is no attack surface and infrastructure cost is close to zero. The UI sits on a design system (Chakra UI + Radix UI + Tailwind CSS, components with variants), so it stays consistent and new pages come together quickly; the codebase is a Turborepo monorepo with shared ESLint/TypeScript configuration and tests in Jest + Supertest.
Bilingualism is built into the architecture: Japanese lives at the root path, English under
/en. News articles are written as per-language Markdown managed in Git — every post has
an edit history, gets reviewed before publishing, and there are no CMS fees.
The contact form is validated in both the browser and the server against the same schema (react-hook-form + strict Zod — any unknown field is rejected), with layered spam protection: reCAPTCHA, per-IP rate limiting, an API that only accepts requests from the official domain, and security headers on the API. Customers receive an automatic reply in their own language, Japanese or English, and the team in charge gets a notification email — sent through AWS SES; the AWS and reCAPTCHA keys live in Secret Manager, attached to the service as secret references and never present in code.
Staging runs the exact build that will reach production, locked behind a password by a small service on Cloud Run designed fail-closed: if the password configuration is missing the service refuses to start, so staging can never be accidentally left open — the service has automated tests, its container runs as a regular user and its service account carries no excess permissions. A GitHub Actions pipeline lints, builds, deploys and reports to Slack; every Pull Request of both the website and the API is scanned automatically — library vulnerabilities, source-code issues, leaked secrets, container and configuration — with third-party bundles excluded from scope so reports stay clean.
Image 1 of 4
