Customer Knowledge Base
Project information
- Category: WebDev
- Client: INSTAR Deutschland GmbH Guangzhou, China
- Project date: 01 Apr, 2012
- Project URL: wiki.instar.com
The problem: INSTAR had no structured online documentation — customers emailed, called, or asked a sales rep for answers.
What I did: Designed and built the internal and customer-facing wiki from scratch as a TypeScript React + Gatsby static site with an MDX content pipeline (a remark plugin chain handling PrismJS code highlighting, image optimization to WebP/AVIF via gatsby-image/Sharp, auto-generated heading anchors, and linked-file copying). It ships as an installable, offline-first Progressive Web App — a Workbox service worker with a precached page set plus a full PWA manifest — with per-page SEO (sitemap, canonical URLs, structured meta/Open-Graph/Twitter cards) and GA4 + gtag analytics.
The build runs with a tuned Node heap and a custom Webpack config (SSR-safe shims for browser-only modules). It is a per-locale (DE/EN/FR) static build served by a custom multi-stage Docker image: a small Go/GoFiber static server (prefork, recover + structured logging) on Alpine, tagged and pushed to the self-hosted GitLab container registry. Those per-locale images run as separate Nomad jobs behind a single hardened nginx ingress — TLS 1.3, HSTS, strict security headers, HTTP/2, HTTP to HTTPS redirect — with Let's Encrypt renewed by a scheduled Nomad batch job. Elasticsearch powers faceted full-text search (weighted multi-field, fuzzy, autosuggest, streaming results, shareable state in the URL).
Today it is the first place support, sales, and customers go before a ticket is even opened — the same Elasticsearch stack that later became the backbone of our AI prediction layer and the admin dashboard
The payoff: deflected the "where do I find X?" ticket category — for over a decade.