Portfolio Case Study

Yurasis Article

Next.jsTypeScriptSEOStructured DataMulti-tenant

The public publishing surface behind Yurasis guides and customer channels. One server-rendered system covers discovery, category and tag navigation, readable long-form content, per-channel branding, analytics, and search-ready metadata.

June 22, 20264 min readLive service
Yurasis public guide archive
01 / 4Guide archive

02 — Screens and brief

Reader contract
Archive → article → related content
Multi-tenant
One route, N channels
Search signals
Canonical / hreflang / JSON-LD

Client
Yurasis platform
Role
Public information architecture, article reading UX, multi-tenant rendering, technical SEO, traffic attribution

03Multi-tenant reader

One publishing system serves every customer channel

The article reader lives at /[lang]/article/[blogSlug]/[postSlug]. The blogSlug segment selects which blog's configuration to apply — primary color, name, categories, AdSense publisher ID, and site verification tags all come from the blog record. There is no per-blog deployment, no per-blog codebase, and no per-blog build.

The list view supports category and tag discovery, while the reader keeps titles, cover images, captions, headings, anchors, and related links easy to scan. The same public contract powers the Yurasis guide channel shown in this case study.

04SEO

Search-ready output is part of the reader contract

Each article page injects BlogPosting (with headline, description, author, publisher, image, wordCount, and timeRequired), Blog (with publisher reference), BreadcrumbList (three-item chain: Yurasis → blog → post), and FAQPage (when the post stores a faqSchema array). All four blocks are rendered as <script type="application/ld+json"> in the server HTML.

hreflang alternates are derived from published translation references. canonicalTranslation() prefers an indexable translation for the requested locale, then follows the channel default and Korean/English fallbacks, preventing unsupported or draft variants from becoming accidental search targets.

05Related posts

Related reading continues the discovery journey

When a post has a category, the reader fetches up to six posts from the same category, excludes the current post, and renders the first four as a related posts grid below the article. When no category exists the query falls back to the post's first tag. No embeddings, no ML model — just a filtered API call at request time.

The cards preserve the public URL contract and language preference, so a reader can continue within the same channel rather than reaching a dead end after one article.

06Analytics

Measurement happens after the page is readable

View count is incremented by a ViewTracker client component that fires a POST request after hydration using a keepalive fetch. The server renders the article without waiting for the view event — the count the reader sees is viewCount + 1, accounting for the current visit before the API confirms it.

Traffic attribution is recorded alongside the view event and daily metrics are aggregated separately. The public reader stays focused on speed and legibility while the dashboard receives useful performance data.

Interactive build

Yurasis Article

Browse the live Yurasis guide channel, then open an article to review the searchable archive, responsive reader, screenshots, anchors, related content, and structured SEO output.

See demo

Yurasis

상호: 유라시스 랩

대표: 이규형

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

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

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

TEL: 010-2709-9846

Email: siholee@yurasis.com

Yurasis Article Case study | YURASIS Portfolio