
02 — Screens and brief
- Supported locales
- 8
- Public surfaces
- Home / archive / reader
- Content source
- Yurasis API + safe fallback
- Client
- JOBDA
- Role
- Public API integration, multilingual routing, editorial experience, resilient demo delivery
03 — Architecture
A focused publishing surface over the Yurasis public API
JOBDA owns the reading experience, while published post data comes from /api/public/external-sites/jobda. The boundary is intentionally read-only: channel configuration, post summaries, post detail, translations, and view events are exposed without coupling the front end to Prisma or dashboard code.
Requests are server-rendered and cached for 60 seconds. If the public endpoint is temporarily unavailable, the same typed API helpers return deterministic fixtures so the portfolio remains navigable rather than collapsing into an error state.
04 — i18n
Eight locale-aware routes rendered on the server
Every supported locale (en, ko, ja, zh, fr, de, es, it) gets a URL prefix: /en/, /ko/, /ja/, etc. The [lang] segment drives locale selection server-side — the dictionary is loaded synchronously in getT(lang) and rendered into the HTML before it reaches the browser. There is no runtime i18n library, no dynamic import, and no client-side locale check.
The navigation, archive labels, empty states, pagination, and article chrome all use the same typed dictionary. The content locale remains a property of the published post, while the shell can still respond correctly for every supported route.
05 — Resilience
A demo that stays useful when upstream content changes
The public API is the preferred content source, but the presentation is not allowed to disappear when that dependency is slow or empty. Typed fixture data supplies a known blog, archive response, and article response at the same interface boundary.
This is deliberately visible as a portfolio demo rather than presented as a separate production deployment. Reviewers can judge the navigation and state design without mistaking sample content for a customer property.
06 — Reading flow
Home, discovery, and reading work as one continuous path
The home page leads with a clear editorial promise and surfaces most-read and recent content. The archive then provides category and tag filters, while the reader preserves metadata, translations, sanitized content, and a route back to discovery.
View tracking is sent after the article is visible, so analytics never needs to block the page. The demo therefore communicates both the reader experience and the platform integration behind it.
Interactive build
JOBDA
Open the working demo to move from the editorial home to the archive and post reader. It prefers the live Yurasis public API and falls back to deterministic fixtures when the source is unavailable.