CivicHub — Unified Identity & Multi-Tenant Platform for a Regional Nonprofit Consortium
Architecting CivicHub, a nonprofit community-and-business-services platform serving a mid-sized US metro region. The platform pairs an off-the-shelf community layer with a custom NestJS business layer, unifying member identity across both through a single sign-on so members log in once and move between community tools and industry-specific dashboards.
Client
Regional Nonprofit Consortium (NDA)
Project Value
Confidential — Active Engagement
Rating

The Challenge
The client, a nonprofit intermediary structured as a group purchasing organization, needed to connect community members, local businesses across several verticals, and regional institutions on one platform — without building a community engine from scratch or fragmenting member identity across two separate logins. Their existing plan combined a licensed community platform with a to-be-built business layer, but had no verified integration path, no confirmed data model for multi-vertical tenancy, and no answer for how a member's role and subscription tier would stay in sync across both systems.
The Goal
Verify the integration feasibility of the licensed community platform (API access, webhook catalog, SSO support) before committing to a build; then deliver a unified single-login experience, a role-based access control matrix gating specialised workflows behind subscription tiers, and a multi-tenant data model where onboarding a new business vertical is a configuration change, not a code change.
Solution & Implementation
1Analysis
Ran a structured discovery and audit phase before writing application code: an exhaustive review of the community platform's exposed API and webhook framework, a gap analysis between its out-of-the-box capabilities and the client's multi-domain vision, and a joint SSO proof-of-concept with the platform vendor's support team to de-risk the identity architecture before it became a dependency on the build timeline.
2Designing Solution
Selected Auth0 as the single master system of record for identity, with the community platform federating in via SAML 2.0 SSO rather than maintaining its own separate user store — eliminating the two-identity-drift problem entirely. The business layer is a single NestJS codebase (no separate microservice for business logic) exposing a REST gateway for external integrations and a GraphQL schema for internal frontend data-fetching, both behind OAuth2 + JWT scope-based authorization.
3Customizing Business Logic
Modeled each business vertical (e.g. dental, dry cleaning, professional services) as a stored JSONB template describing its fields, workflow steps, and permission rules, rather than hardcoding logic per vertical — so adding a new vertical becomes a configuration task, not a redeploy. Each vertical routes through a dedicated subdomain on shared backend parameters, with PostgreSQL Row-Level Security enforcing tenant isolation at the database layer beneath the same templated schema.
4Scale & Optimize
Designed a webhook-first, event-driven sync between the community platform and the core backend: a dedicated receiver verifies and de-duplicates each incoming event before publishing it to a Redis-backed queue, a separate consumer worker processes it independently of the receiver, and a low-frequency reconciliation poll runs alongside as a safety net for any webhook the community platform fails to deliver. The entire environment is defined as code (AWS CDK) so staging and production stay identical throughout the build.
Results & Impact
Single Sign-On (Target)
Tenant Isolation (Target)
New Vertical Onboarding (Target)
Infra Parity (Target)
Event Sync Resilience (Target)
Auth0 as the single master identity source eliminates the two-identity-drift problem between the community platform and the custom business layer
JSONB-templated vertical configuration means onboarding dental, dry-cleaning, or professional-services workflows is a config change, not a code deploy
PostgreSQL Row-Level Security enforces tenant isolation at the database layer beneath the same templated schema
Webhook-first event sync with an idempotent receiver, durable queue, and reconciliation-poll safety net keeps the platform resilient to a third-party platform's delivery guarantees
A single NestJS codebase (no separate business-logic microservice) exposes both a REST gateway for external integrations and a GraphQL schema for internal data-fetching
AWS CDK defines every environment as code, so staging and production stay identical throughout a compressed build timeline
Key Technologies
Project Gallery
Technical Approach
CivicHub's identity architecture routes every login through Auth0 as the single master system of record, with the licensed community platform federating in via SAML 2.0 SSO rather than maintaining its own separate account store. This eliminates the two-identity-drift problem that affects platforms pairing a licensed community tool with a custom business layer — a member's role or subscription-tier change only ever needs to be written once. The business layer itself is a single NestJS codebase exposing a REST gateway for external integrations and a GraphQL schema for internal data-fetching, both behind OAuth2 + JWT scope-based authorization, so there is no separate microservice for business logic to keep in sync.
Each business vertical — dental, dry cleaning, professional services, and others added over time — is modeled as a stored JSONB template in PostgreSQL describing its fields, workflow steps, and permission rules, rather than hardcoded per-vertical logic. Onboarding a new vertical becomes a configuration task: write a new JSON template, not open a pull request. Row-Level Security policies sit beneath the same templated schema, enforcing tenant isolation at the database layer so no application code path can accidentally leak data across tenants.
Integration with the community platform follows a webhook-first, event-driven pattern: a dedicated receiver verifies and de-duplicates each incoming event before publishing it to a Redis-backed queue, a separate consumer worker processes it asynchronously, and a low-frequency reconciliation poll runs alongside as a fallback for any webhook the platform fails to deliver. The full architecture pattern — including the identity federation approach and the RLS/JSONB tenancy model — is written up in detail in our guide to designing multi-tenant SaaS for nonprofits.
Frequently Asked Questions
About Ortem Technologies
Ortem Technologies is a premier custom software, mobile app, and AI development company. We serve enterprise and startup clients across the USA, UK, Australia, Canada, and the Middle East. Our cross-industry expertise spans fintech, healthcare, and logistics, enabling us to deliver scalable, secure, and innovative digital solutions worldwide.
Related Case Studies

Location-Based Retail Marketplace Startup (NDA, Australia)
NearDeal — Real-Time Geofenced Deals Marketplace for Local Retail

Clinic & Hospital Management Platform (NDA, Global)
CareFlow AI — Human-in-the-Loop Clinic & Hospital Operating System
Ready to Build Something Like This?
We've built nonprofit & community services solutions like this for teams across the US, UK, and Middle East. Fixed scope. Fixed price. Senior engineers from day one.
Free 30-minute scoping call — no commitment, no sales pitch.


