Tanmay Maka What I’ve built

A counselling practice · live

Book once. The practice’s numbers move with it.

For the owner of a counselling practice, who exported data from the booking tool to understand the practice in another. I put the client booking site and a practice analytics app on one shared database, and the analytics side imports old CSV exports and Excel workbooks so old and new data sit together.

Two web apps · Next.jsOne shared databaseLive · privateDeployment runbook
Two apps, one database: bookings on the left, the practice’s numbers on the right.
northlight.example/book
crm.northlight.exampleCompany overview

A simulation with made-up numbers. Northlight Counselling, its therapists, clients and export files are invented; this is not the real app or any practice’s data. Nothing is uploaded anywhere.

What it’s for

Four parts, plainly.

01

Who it’s for

The owner of a counselling practice.

02

By hand, until now

They exported data from the booking tool to understand the practice in another.

03

What I built

Two web apps on one shared database: a client booking site and a practice analytics app with caseloads, compliance and other key numbers. The analytics app can import booking-service CSV exports and Excel workbooks so old and new data sit together.

04

Where it is

Live and private: two Next.js apps in one repository, with a written deployment runbook.

Rough edges

What it isn’t.

Honest line: it runs for one practice, so this is a stand-in with made-up numbers. Inside the code the analytics app is called Fen CRM, which is a separate thing from the Fen landing page.