Skip to content
John Ndigirigi
WorkAboutWritingResumeContactBook a call (opens in a new tab)
  • Work
  • About
  • Writing
  • Resume
  • Contact
Book a call (opens in a new tab)
John Ndigirigi

Full-stack & AI Engineer · Nairobi, working remotely worldwide.

  • Work
  • About
  • Writing
  • Resume
  • Contact

© 2026 John Ndigirigi

Built with React + Vite + Tailwind

All work

Case study

Sociale

One platform for every cooperative, with each one's data isolated by the database, and LLM agents for board reporting, risk analysis and member support in production.

Role
Lead Developer
Team
Led the team and the architecture
Dates
Mar 2025 – May 2026
Links
  • socialefi.co (Sociale site, opens in a new tab)
  • GitHub (Sociale code, opens in a new tab)
Stack
  • TypeScript
  • Node.js
  • PostgreSQL
  • React
  • React Native
  • LLM agents
  • KERI
  • Aiken

The problem

Most savings groups and credit unions (SACCOs, chamas, stokvels and ROSCAs) run on WhatsApp groups, shared spreadsheets and paper ledgers. Loan risk is judged by committee intuition, audit trails are fragile, and a member's financial history is stuck inside one institution.

The software that exists doesn't fit how cooperatives work: shared governance, contribution cycles, loan committees, and members who move between institutions. And because every cooperative's records are financial data, no cooperative can ever see another's.

What I built

  • A Node.js REST API on PostgreSQL with row-level security, giving every cooperative fully isolated data without per-tenant infrastructure.
  • A React admin dashboard for cooperative administrators and a React Native app for members.
  • An integrated AI credit-scoring engine for loan risk assessment.
  • LLM agents for board reporting and risk analysis, and a multilingual assistant that helps members with contributions, loans and account activity.
  • Financial Passports, built on KERI, that turn a member's verified contribution and repayment history into credentials they can take between institutions.
  • An on-chain cooperative treasury on Cardano with multi-signature withdrawals, for cooperatives that opt in.

How it works

Sociale platform architectureAn admin dashboard in React and a member app in React Native both call one Node.js REST API, which resolves and authorises the tenant on every request. The API uses an AI layer with a credit-scoring engine, board reporting and risk analysis agents, and a multilingual member assistant. Data lives in PostgreSQL, where row-level security isolates each cooperative. The API also issues Financial Passports as portable KERI credentials, and connects to an on-chain treasury on Cardano with multi-signature withdrawals for cooperatives that opt in.CLIENTSAdmin dashboardReactMember appReact NativeNode.js REST APITenant resolved and authorised per requestAI layerCredit-scoring engineBoard reporting agentRisk analysis agentMultilingual assistantPOSTGRESQL · RLSCooperative ACooperative BCooperative NFinancial PassportsPortable KERIcredentialsOn-chain treasuryCardano, multi-sigOpt-in per cooperativeIsolated in the databaseOpt-in
Both apps share one API. PostgreSQL row-level security keeps every cooperative's data separate, the AI layer works through the same API, and the on-chain treasury is opt-in.

Key decisions

  1. Row-level security over a database per tenant

    Instead ofA separate database for each cooperative

    A database per tenant isolates data well, but migrations, backups and monitoring grow with every cooperative. PostgreSQL row-level security, forced on every tenant-scoped table with the tenant set per transaction, enforces isolation in the database, where an application bug can't bypass it. A new cooperative adds almost no operational cost.

  2. Portable credentials that don't depend on a chain

    Instead ofAnchoring member credentials to Cardano

    Financial Passports use KERI credentials, which can be verified from the issuer's key event log without querying any blockchain. A member's record stays valid whatever chain the treasury uses, and members never need a wallet.

  3. The chain is opt-in

    Instead ofPutting every cooperative's treasury on-chain

    Cooperatives that want independently verifiable treasury oversight use Aiken validators on Cardano, which enforce contribution rules and multi-signature withdrawals. The rest use the platform's off-chain ledger, so no one takes on blockchain complexity just to get better record-keeping.

Results

Sociale brought agentic AI workflows into production financial software for cooperatives, on an architecture where the database keeps each cooperative's data separate and a new cooperative needs no new infrastructure.

Screenshots

Sociale's landing page beside a cooperative dashboard with members, deposits, recent transactions and member trust scores.
Sociale's site, with a cooperative's dashboard.
← PreviousChildren's digital wellness appNext →Notamperdata