04 · Internal tool
Grevity CMSLicensing & Subscription Admin
A TypeScript admin CMS for plans, clients, subscriptions and signed pendrive-bound licence files.

01
Problem
Grevity ships on hardware-locked pendrives, so the business needed one place to manage plans, clients, subscriptions and licence files.
02
What I built
I built a TypeScript monorepo admin CMS with a NestJS + Fastify API using Drizzle ORM on PostgreSQL (Supabase) and a React + Vite + Tailwind UI.
It covers plan lifecycle, clients with duplicate detection, plan assignment and renewals, an append-only audit log, and signed pendrive-bound .lic generation using HKDF, AES-GCM and RSA.
Security includes Argon2id logins, server-side sessions, CSRF protection and throttling, with Zod contracts shared end to end.
03
Stack
- NestJS
- React
- TypeScript
- PostgreSQL
- Tailwind CSS
Link Internal tool
04
Screenshots

02 · Clients list (phones blurred) 
03 · Client with current plan and history 
04 · Plan detail, services, usage and audit 
05 · Issued licences (demo signing key)