Portfolio Case Study

JOBDA

A multilingual AI-powered blog deployed as a live service: Next.js App Router with Tailwind CSS v4, eight supported locales, Yurasis AI content pipeline, AdSense integration, and a public API layer serving content to the standalone site from the Yurasis platform.

June 22, 20264 min readLive service
Supported locales
8
Ad placements
3 (leaderboard / in-article / in-feed)
Content source
Yurasis AI pipeline

Project brief

Client
JOBDA
Role
Full-stack architecture, public API design, multilingual routing, AI content pipeline integration
Stack
Next.js 15 App RouterTailwind CSS v4TypeScript strict mode8 locale i18n systemYurasis AI pipelineExternal Sites public APIGoogle AdSenseVercel deployment

Highlights

Built as a standalone Next.js site that consumes content from the Yurasis platform via a dedicated public API (/api/public/external-sites/jobda), decoupling the front-end from the content backend entirely.
Implemented a server-side i18n system across 8 locales (en, ko, ja, zh, fr, de, es, it) using URL-segment routing — each locale gets its own path prefix with SSR-rendered dictionaries, no client-side locale resolution.
Integrated Google AdSense with three ad placements (leaderboard, in-article, in-feed) across the blog layout without impacting Core Web Vitals — ads are deferred, async, and slotted into the content grid.
The content pipeline is Yurasis AI: posts are generated through the multi-stage AI pipeline (Opener → Researcher → Writer → Critic → FinalEditor) and published directly to the JOBDA blog via the platform API.

Architecture

Standalone site consuming a platform API

JOBDA is deployed as its own Next.js site but owns no content database. Every post, blog metadata, category, and view count comes from Yurasis via /api/public/external-sites/jobda — a dedicated public read API that requires no auth. The site is purely a rendering layer: it fetches, formats, and presents content without managing it.

This decoupling means the content editing, AI generation, scheduling, and SEO tooling all live in Yurasis. JOBDA inherits improvements automatically. The only thing the site manages is its own design system, i18n dictionaries, and ad slot placements.

i18n

Eight locales, server-rendered, zero client locale resolution

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.

Language switching is a plain anchor navigation that replaces the locale segment in the current path. The locale switcher uses usePathname() to detect the active segment, replaces it, and renders a dropdown — no state, no router.push, no flash of untranslated content.

Monetization

AdSense slots integrated without layout shift

Three ad slots are placed across the blog: a leaderboard below the global header (AD-1), a rectangle in the article sidebar visible on large screens (AD-2), and an in-article unit injected after the third paragraph of post content (AD-3). A fourth in-feed unit (AD-4) appears mid-grid on the archive page after the 9th post.

In the live site these are real AdSense units. In the portfolio demo they render as labeled placeholder blocks that preserve the same dimensions so the layout is identical — no cumulative layout shift.

Content pipeline

AI-generated posts from topic to published article

Content is authored through the Yurasis AI pipeline: a job specifies the topic, target locale, template, and writing style profile. The pipeline runs Opener (topic analysis, SEO keywords), Researcher (web search), Writer (draft with active fine-tuned model), Critic (independent review), FinalEditor (polish), and Styler (platform formatting). The resulting post is published directly to the JOBDA blog.

Because JOBDA uses the Yurasis platform API as its CMS, every post benefits from built-in SEO fields — metaDescription, faqSchema, tags, readingTime, and hreflang alternates — without any bespoke tooling on the site side.

Interactive build
JOBDA

This demo connects to the live JOBDA API and renders real published content. You can browse the blog homepage, navigate the post archive with category and tag filters, and read full articles — the same experience as the deployed site, running within the Yurasis portfolio.

See demo

Yurasis

상호: 유라시스 랩

대표: 이규형

사업자등록번호: 842-05-03371

주소: 서울특별시 강남구 선릉로69길 19, 101동 401호(역삼동, 역삼래미안)

업태: 정보통신업 · 종목: 응용 소프트웨어 개발 및 공급업, 컴퓨터 프로그래밍 서비스업

TEL: 010-2709-9846

Email: siholee@yurasis.com

JOBDA Case study | YURASIS Portfolio