Skip to content

January 2026 – present

Tenriva

Tenriva is software for companies that use Microsoft 365. When someone joins, changes role or leaves, it takes the request from HR through approvals, then sets up or removes their access automatically, keeping a record of every step.

Stack
NestJS, React, PostgreSQL, Redis, Socket.IO, Microsoft Graph, Stripe
The Tenriva home page at tenriva.com, with a coded mini version of the dashboard.
Public site
Tenriva licence inventory: paid seats in use, monthly spend, wasted spend and reclaimable seats.
Licences, test tenant

The problem

What was broken.

When someone joins a company, changes role or leaves, HR knows first but IT does the work. The request usually arrives as an email or a ticket, and someone in IT then sets up the account, licences, groups, Teams and mailbox by hand.

Every manual step is a chance to get it wrong. New starters wait for access on their first day, people who change role keep access they no longer need, and people who leave can still sign in, and still cost a paid licence, for weeks. Nobody can say who approved what, or when.

IT companies that manage Microsoft 365 for many clients have the same problem many times over, and they need to switch between clients safely, without ever mixing up one client's data with another's.

How it works

One request, from HR to done.

Requests / Joiner / REQ-1042

JD

Jordan Doe

Joiner request

Step 1 of 5
1
2
3
4
5
Current step
HR raises the joiner request
Next
Line manager approves

What I built

The product.

  • 01

    Joiner, mover and leaver requests.

    HR fills in a structured request, then the manager and IT approve it, with an optional second IT sign-off. Requests can be sent back, cancelled or retried, and every change is recorded.

  • 02

    Automatic setup in Microsoft 365.

    Once a request is approved, Tenriva breaks it into small steps: create the account, set the manager, add licences, groups, Teams, shared mailboxes and device rules. Each step checks whether it is already done, does the work, then confirms Microsoft 365 really shows the change.

  • 03

    Role profiles and licences.

    IT describes once what each role should get. New starters get the whole set, people changing role get just the difference, and licence use and cost are tracked for each company.

  • 04

    Offboarding that closes every door.

    People who leave are blocked and signed out everywhere. Then their mailbox, files, Teams, devices and licences are handled the way the company chose, ending with a report for the records.

  • 05

    Built for IT providers too.

    Three separate areas: a console for the Tenriva team, the app each customer's staff use, and a view where IT providers switch between the client companies they look after.

  • 06

    Payments, connected tools and live updates.

    Plans, free trials and EU payment methods run through Stripe. Changes in BambooHR, an HR system, become requests automatically, approvals arrive as private messages in Microsoft Teams, and screens update live while the work runs.

Stack

The tools behind it.

App
  • TypeScript
  • React
  • Vite
  • TanStack Query
  • Tailwind CSS
Server
  • NestJS
  • Socket.IO
Data
  • PostgreSQL
  • Liquibase
  • Redis
Services
  • Microsoft Graph
  • Microsoft Teams
  • BambooHR
  • Stripe
Hosting
  • Docker
  • GitHub Actions
Testing
  • Vitest
  • Playwright

Quality

How I know it works.

  • Every change is checked automatically before it goes in: code style, types, builds, both test suites, and a check that all seven languages have every piece of text.
  • 203 backend and 74 frontend test files.
  • 36 end-to-end tests that click through the app like a real person: joiners, movers, leavers, many joiners at once, approvals, passkeys, two-factor sign-in, linking IT provider clients, sign-up and trial checkout. Plus a load test with many setups running at once.
  • A written test plan and QA handbook, tracking 485 areas of the product and 9 complete user journeys.
  • 16 engineering documents covering the design, security, live updates, billing and day-to-day running, with a diagram for each flow.

Outcomes

Where it stands.

  • I designed and built Tenriva as a working product for many companies at once, and wrote the large majority of its code.
  • The whole joiner, mover and leaver process runs end to end against a real Microsoft 365 company, and the automated tests click through it on every change.
  • The public site is live at tenriva.com, with pricing that comes straight from the same plans the app bills.
  • It works in seven languages, installs like a phone app, and runs on a test environment with automatic releases.