SENRM: A GovStack-Aligned National Registry Platform
NestJS, Keycloak, microservices, TypeScript, React, govtech, Docker
SENRM: A GovStack-Aligned National Registry Platform

SENRM: A GovStack-Aligned National Registry Platform

## Outcome Building an active, GovStack-aligned national registry platform for a West African government program: independent service building blocks composed behind an API gateway. ## Context SENRM is an ongoing contract engagement through Heber Senegal. I contribute backend architecture and implementation within the program delivery collaboration; the platform uses NestJS and TypeScript services, Keycloak, and a React and Vite portal. ## Problem A national registry needs identity, registry, workflow, document, notification, and scheduling capabilities that can evolve without becoming one tightly coupled system. ## Constraints Government-registry reliability and access-control expectations shape the design. This is active work, so program-specific details, operational results, and metrics remain confidential. ## Decisions and trade-offs The architecture follows GovStack’s independently deployable building-block pattern: each capability exposes a documented API and can evolve or scale separately. Centralizing authentication and role management in Keycloak favors consistent access control across services over distributed identity logic. ## Implementation I contributed to the platform's TypeScript monorepo, using pnpm and Turborepo and running under Docker, alongside the delivery team. NestJS building blocks for identity, registry, workflow, documents, notifications, and scheduling are composed behind an API gateway, with Keycloak and a React/Vite portal at the platform boundary. ## Results The work is ongoing. The delivery team has established independently deployable capabilities and centralized identity; public outcome metrics are not available. ## Takeaways For public-sector platforms, explicit service boundaries and shared identity foundations make it easier to meet changing program needs without turning every change into a monolith-wide release.