TELUS
Solo Developer

TechCentral

Enterprise Knowledge Hub & Content Platform

Enterprise knowledge hub and frontend for dotCMS, serving 2,200+ technicians Canada-wide. Bilingual (EN-CA / FR-CA), region- and audience-aware, with AI-powered chat and high-performance search.

2,200+
Technicians
Bilingual
EN-CA / FR-CA
<150ms
Search p95
AI + RAG
Chat Assistant
2,000+
Articles Migrated

Executive Summary

TechCentral is an enterprise knowledge hub and custom frontend for dotCMS, serving over 2,200 technicians Canada-wide since its launch on February 23, 2026. Tailored by language (EN-CA/FR-CA) and region/audience, it's the single source of truth for job aids, billing, training, policies, and more.

The platform migrated over 2,000 articles from 7+ stakeholder groups and combines a headless CMS with a high-performance Next.js frontend, unified search, favourites, trending content, and an AI-powered Learning Hub Assistant that uses RAG to ingest articles for accurate, interactive Q&A. Based on the platform's success, TELUS extended the contract by 12 months, with new projects underway including an LMS and certification system for technicians.

System Architecture

TechCentral sits between a headless CMS and 2,200+ end users, orchestrating content delivery, search, user data, and AI-powered chat through a single Next.js application.

Content Engine
dotCMS
GraphQL API · Webhooks · 9 Content Types
Application
Next.js 15 + React 19
SSR · Server Components · TypeScript
Fuse.js
Search Index
PostgreSQL
User Data
AI / RAG
Chat Assistant
Prisma
ORM Layer
End Users
2,200+ Technicians
Bilingual · Region-Aware · Cross-Device

The Problem

Internal guidance discovery friction

Employees struggled to find the right information quickly. Content was scattered, search was poor, and there was no personalization based on role or region.

Bilingual + regional complexity

Canada requires English and French support, and different regions have different content needs. The platform needed to handle language and region preferences gracefully.

Editor autonomy needed

Content teams needed to publish and update without developer involvement, while maintaining strong UX and performance. Preview and rollback workflows were essential.

What I Delivered

Full dotCMS Integration (Headless CMS)

Custom high-performance frontend consuming content from dotCMS via GraphQL. Multiple content types (Job Aids, Billing, Training, News, Policies, and more), audience/region filtering, taxonomy, webhooks for search/cache invalidation, and VTL preview templates. Authoring stays in the CMS; delivery is the custom app.

Bilingual + Region-Aware Experience

Language (EN-CA/FR-CA) and region preferences drive routing and content filtering. Users see content relevant to their location and language preference automatically.

Unified Search

Fuse.js-powered server-side search with a three-pass execution strategy: original query, diacritic-normalized query (with scoring penalty), and spelling variation expansion -- deduplicated and ranked into a 0-100 relevance score. Weighted keys (title 60%, description 30%, tags 10%), percentile thresholding to cut noise, and bilingual indexes (EN-CA / FR-CA) built separately with in-memory per-pod caching. Permalinkable URL state and p95 latency under 150ms.

User Preferences + Favourites

Database-backed favourites with offline-first sync: optimistic UI updates, a queued offline buffer with exponential backoff and automatic retry, and cross-device sync via PostgreSQL. Conflict resolution uses a latest-wins strategy with server-authoritative deletes. User preferences use a hybrid localStorage + cookie architecture so middleware and server components can read language and region settings without round-trips, while the client retains richer profile data locally.

Editor Workflow Support

CMS preview support with version-controlled templates and predictable rollback. Content teams can publish independently while maintaining UX standards.

AI-Powered Learning Hub Assistant

Integrated chat button in the header opens the Learning Hub Assistant - a technician co-pilot that uses RAG to ingest TechCentral/dotCMS articles, providing accurate, conversational Q&A grounded in the same content users browse and search.

Trending, Alerts & Operational Tools

Trending articles by view count over a rolling window, real-time alerts and quick links from dotCMS, onboarding flows, article freshness badges, ratings, table of contents, and admin tools including search index rebuild/preview and outdated links scanner.

Technical Implementation

Stack

Next.js 15
React 19
TypeScript
Tailwind CSS
Prisma
Cloud SQL (PostgreSQL)
Vitest
Playwright
Python
Google Gemini

dotCMS Integration

dotCMS as the headless content engine consumed via GraphQL. Multiple content types (Job Aids, Billing, Training, News, Policies, ValueGen, HBR, Quick Links, Alerts, Help), audience/region filtering, taxonomy, webhooks for search/cache invalidation, and optional VTL preview templates.

Data Layer

Cloud SQL (PostgreSQL) + Prisma for favourites, sessions, article views, and ratings. Deliberate Node.js runtime choice to support DB-backed session handling in middleware. User preferences use a hybrid storage model -- a ~200-byte cookie for SSR/middleware (language, regions, onboarding state) synced with richer localStorage data on the client via a singleton ProfileService.

Search Architecture

Server-side Fuse.js execution with in-memory per-pod caching and a three-pass pipeline: original query, diacritic-normalized pass, and spelling-variation expansion -- each with calibrated scoring penalties, then deduplicated and thresholded. Separate bilingual indexes with webhook-triggered rebuilds. Includes a pagination workaround for a known dotCMS offset bug that returns empty results, ensuring reliable full-corpus indexing despite upstream limitations.

Testing Strategy

Vitest (unit/integration) + Playwright (E2E), with reusable utilities and onboarding-safe test flows. Testing pyramid ensures confidence without slowing development.

Deployment & Operations

Containerized on GKE with multi-stage Docker builds. Search index rebuilt via Kubernetes CronJob and webhook-triggered cache invalidation on CMS publish. Kubernetes health probes (liveness, readiness, startup), structured Pino logging, and CI/CD via GitHub Actions. Secure secrets handling and documented runbooks for maintainability.

Business Impact

AI-Powered Knowledge Assistant

The Learning Hub Assistant uses RAG to ingest TechCentral/dotCMS articles, giving 2,200+ technicians conversational access to job aids, policies, and training content. Answers are grounded in the same content they browse and search.

Reduced Operational Friction

Faster, more reliable access to internal guidance reduces friction for frontline and support teams - they find what they need without hunting.

Editor Independence

Content teams can publish and update without developer involvement, while the platform maintains strong UX and performance standards.

Lower Long-Term Ownership Cost

Built with maintainability in mind - structured docs, testing pyramid, predictable architecture. Future developers can understand and extend the system.

Contract Extended

Based on the platform's success and adoption by 2,200+ technicians, TELUS extended the contract by 12 months, with new projects underway including an LMS and certification system for technicians.

My Responsibilities

As the solo developer on this project, I owned:

  • End-to-end delivery: architecture, implementation, UI/UX, API/data integration, testing strategy, performance decisions, and operational considerations.
  • Managing platform constraints: CMS API limits/bugs, image delivery constraints - with pragmatic mitigations and documentation.
  • Building for maintainability: clear project structure, repeatable test patterns, and documented architectural decisions.

Need an Internal Tool Like This?

If your team is stuck searching through docs, spreadsheets, or siloed systems - let's talk about building something that works.