Building a better psychoanalytic ehr from scratch

July 30, 2026
Building a Better Psychoanalytic EHR From Scratch

I want to share with you an exciting project I've been working on. Well — I can't quite share the project itself with you yet. Although if someone were interested in helping me figure out how to do that, I'm game to try.

Here's the background. I run a group practice. We have ten employees. Over the last ten years, we've used two different electronic health records platforms — first SimplePractice, and then, when they nearly doubled their prices, we switched to the far more bare-bones My Best Practice. My experience of both, and of every other platform I tested when I was contemplating switching, is that they all suck. They're all engaged in some combination of insisting on a model of the business of psychotherapy that bears no relationship to my model of it, and trying to sell me services in which I have no interest.

To my mind, what a good EHR does is — in a manner that is HIPAA compliant and that protects the confidentiality of treatment — facilitate the interaction between calendar, billing, collections, and notes. Ideally, it should be useful to clinicians, and not a burden on or a requirement of them. I don't want to integrate telehealth into my EHR. I don't want to hand over communication with my patients to an EHR. I don't particularly value credit card processing — at least personally, my patients don't pay by credit card, and I don't accept them, though many of my employees do and I facilitate that. What I want is a system that makes my clinicians' lives easier, and makes my life as a manager and a clinician easier.

Some months ago, I asked the proprietors of My Best Practice about a simple reporting functionality their system lacks. Reporting, to me, is a potentially really useful aspect of an EHR — and it is totally under-invested in by everyone I've worked with. SimplePractice had a robust suite of reports, none of which corresponded with my way of thinking, and which were not customizable or even minimally useful. My Best Practice was worse. Anyway, I asked about this functionality and their answer was dispiriting. My reaction was to think: if I were the person on the other end of this email exchange, and had access to the code base, I could add the feature being requested in an hour, stress-test it in another hour, and ship it in a grand total of two hours. So why were they putting me off? And further: why was I paying them hundreds of dollars a month for a suboptimal service?

With more than a little hubris, I thought to myself: I can build something far better. It'll take me — at the time I estimated — three to six months.

I was off by an order of magnitude. It took me less than two months to build something fully functional and usable. Now, in the third month since I started, my whole team is using it, and we're ending our subscription to My Best Practice in just a few weeks.

Here's what my EHR does differently from every other platform I've encountered:

It's simple and intuitive. No feature bloat, no onboarding maze.

Command-K search. At any time, pressing Control-K or Command-K brings up a site-wide search that lets you navigate to any page, patient, function, or report by typing just the first few letters. It's fast and it works.

Everything is drillable. Every value on every table can be clicked and drilled down to whatever lies beneath — to the actual calculation behind the number. Looking at a ledger showing practice-wide payments? Click a patient's name to see just their collections. Click a number to see which patients' payments contribute to it. Everything is infinitely adjustable and customizable.

Psychoanalytic quotes panel. On the right-hand side of the screen is a rotating collection of psychoanalytic quotes — currently about 200 of them, cycling every five to ten minutes. Users can hide the panel if it's distracting, expand it if they like it, flag quotes as potentially inaccurate, suggest new ones, or click any quote to be taken immediately to a Perplexity search that asks: Is this an accurate quotation? If so, where was it published? If not, say so.

Billing and collections are handled intuitively and with minimal friction. The system natively supports my idiosyncratic preference for charging patients a monthly fee — something no other platform accommodates gracefully. It generates superbills with a single click, exports all reports to CSV, Excel, or PDF at the user's preference, and calculates clinician pay based on real-time collections.

Credit card processing — I built it in reluctantly. But I did create something I'm genuinely pleased with: a dedicated payment link for each patient, essentially a private webpage where they can go to pay any amount at any time.

Pre-licensure tracking. The app tracks clinical hours for pre-licensed employees as well as hours of supervision, distinguishes between intakes and ongoing treatments, and handles the subtleties of a sliding-scale practice seamlessly.

And I'm not done. At every turn, I'm looking for ways to make the app itself more psychoanalytic. For example: I'm thinking of adding a pop-up when a clinician marks a patient as having missed a session — a small prompt to invite the clinician to wonder about the meaning of the absence. I've also been mulling whether to require credit card payments to take place during sessions themselves, so that the feelings and meanings associated with payment are brought into the room. I haven't done that yet — it feels a little superego-ish as a requirement — but I think I'll build it in as an option for individual clinicians to implement as they see fit.

I'm having a lot of fun with this.

I'd love to find a way to share it with others. The primary obstacle is the backend — the HIPAA-compliant storage layer. I'm simply not technical enough to know how to structure it so that someone else could implement their own backend storage without piggybacking on mine. And I have no interest in becoming a commercial provider of this service.

If anyone has thoughts about how that problem might be solved, I'm genuinely all ears.