Become the #1 EN/VI knowledge base
Deliver data-verified character rankings, build guides, and weapon analytics in both English and Vietnamese.
A bilingual game database and guide built to close the gap between scattered player discussions, stale patch data, and the need for fast, answer-first character decisions.


When Duet Night Abyss launched in 2024/2025, the global and Vietnamese player communities suffered from fragmented tier lists, absent bilingual support, and stale patch data. GachaBuild3 was built to close this gap within 90 days — establishing first-mover authority in both language markets.
“The definitive English + Vietnamese DNA encyclopedia — built by the community, for the community.”
Deliver data-verified character rankings, build guides, and weapon analytics in both English and Vietnamese.
The only bilingual, real-time-updated, mode-ranked tier list and character database. Every page optimized for the exact question a player is asking.
The biggest product opportunity was not another wiki. It was reducing uncertainty at the exact moments players had to make roster and resource decisions.
New players pulled a 5-star character and had no fast way to know if it was actually meta — scattered Reddit threads and Discord debates offered no consensus.
60%+ of DNA's SEA player base is Vietnamese; English wikis left them behind. Machine-translated community posts created frequent inaccuracies.
Community spreadsheets and hobby wikis lagged behind balance changes by days or weeks. Players made roster decisions on outdated truth.
Weapon pairings, team comps, and skill priorities were scattered across Discord and YouTube instead of searchable, structured data.
A mode-ranked, answer-first experience. Homepage opened on highest-intent answer: S/A/B/C tier bands scannable in under two seconds.
Sanity schemas with EN + VI inline fields. Webhook-driven ISR revalidation kept rankings fresh in under five seconds.
Next.js App Router, static search, Docker Compose, Nginx, GA4, and SEO hardening created a production system that ran itself with 99.8% uptime.
“The most consequential decision was pairing schema-level bilingual content with ISR revalidation. That made freshness and accessibility native capabilities of the product — not cleanup work after launch.”
— Duet Night Abyss Product Pillars
SSR, SSG, and ISR with React Server Components — client JS only where interactivity mattered.
Structured content with real-time editing, GROQ queries, and automatic webhook revalidation pipelines.
3-service production stack with SSL termination, path-based routing, and unless-stopped restart policy.
Concurrent features, improved SSR hydration, and Context-based EN/VI language state management.
Utility-first styling with custom professional-card patterns and a Geist type system for zero layout shift.
Bilingual hreflang, JSON-LD structured data, per-page OpenGraph, and 6 custom event trackers.

The answer-first homepage. Players land on mode-ranked S/A/B/C tiers — no hero banner, no carousel.

Multi-dimensional filter chips update the character grid instantly — no page reload.

Structured character pages gave players one place for profiles, build decisions, and upgrade context.

Global sidebar anchors game switching, IA, and the EN/VI toggle.

High-level GA4 reporting tracked audience growth and engagement after launch.

Acquisition reports showed how search and direct discovery drove the early traffic mix.
3-service Docker stack with unless-stopped restart policy
Fast enough for mobile-first organic traffic
Strong early bilingual SEO footprint in 30 days
High clickthrough from scannable rankings into details
Meaningful bilingual usage from VN audiences
Fresh content shortly after CMS edits
This project closed with the same discipline it used to launch.
Export Sanity content, images, and final structured records via CSV and JSON before shutdown.
Preserve GA4 data, uptime notes, and operational context for future audits or case-study verification.
Point the project toward a static archive if discoverability still matters after decommissioning.
Invalidate API tokens, webhook secrets, and deployment credentials after the final takedown.
Return to the homepage for the full portfolio, PM journey, and supporting work.
Back to Portfolio