Skip to content
back to the quest log
MGM single sign-on screen protecting the private Asset Library
epic◆ productlive

MGM Asset Library

A private Unity Asset Store

An internal asset library for a research lab — with editor plugins that pull assets straight into Unity and Unreal.

role
Architect & platform engineer
org
MGM Laboratory
when
2025 — 2026

What it is

Four repositories, one product: a NestJS API, a Next.js client, and native editor plugins for Unity and Unreal so an artist never leaves their tool to fetch an asset.

The interesting half is the pipeline. Every upload runs through BullMQ workers — analyser, antivirus scan, glTF conversion, thumbnail generation, search indexing, notification fan-out and archive purge — across Postgres, MongoDB, Redis, S3 and Meilisearch, with a WebSocket gateway pushing progress back to the browser.

Keycloak gates everything except the about page. Admin actions are audit-logged by interceptor, destructive ones need explicit confirmation, and the API ships as two images so workers scale separately from the request path.

where the effort went

  • Pipeline92
  • Security85
  • Scale74
  • Craft80

the numbers

Repositories
4

API · web · Unity · Unreal

Worker queues
8
Datastores
5

PG · Mongo · Redis · S3 · Meili

Locales
EN · ID

built with

  • NestJS
  • Next.js
  • Prisma
  • PostgreSQL
  • MongoDB
  • Redis
  • BullMQ
  • Meilisearch
  • MinIO
  • Keycloak
  • Unity
  • Unreal Engine
  • Docker

delivery record

What I made

Artists and developers needed one governed source for reusable assets without leaving Unity or Unreal to browse, download, and unpack files manually.

  • 01

    Web catalog and NestJS asset API

  • 02

    Native Unity and Unreal editor integrations

  • 03

    Eight-stage asynchronous analysis and publishing pipeline

  • 04

    Antivirus, glTF conversion, thumbnails, indexing, and archive cleanup

  • 05

    Keycloak access control and auditable administration

  • 06

    Independent API and worker images for separate scaling

Hard problems

The constraints mattered as much as the finished interface.

01field note

Making uploads safe before discovery

problem
Large, heterogeneous asset archives should not become searchable or downloadable before scanning and conversion finish.
response
BullMQ coordinates explicit pipeline stages and pushes progress over WebSocket while published state stays separate from raw upload state.
02field note

Serving both browsers and game editors

problem
Web users, Unity, and Unreal need the same permissions and metadata through very different interfaces.
response
A shared API and Keycloak identity model sit underneath dedicated clients for each environment.

Screens

after shipping

What stayed with me

  • An asset library is a processing and trust pipeline before it is a catalog.

  • Editor integrations succeed when authentication and downloads feel native to the tool where artists already work.