Skip to content
All work

Bindersnap

Production policy and procedure management software for small healthcare providers. Every approved version carries a permanent, exportable record of who reviewed and signed off on it.

Type
Product
Year
2023 — present
Built with
TypeScript · React · Bun · Gitea

Bindersnap is policy and procedure management software for small healthcare providers: clinics, ambulatory surgery centers, home health agencies, hospices, behavioral health programs and rural health clinics. It is live in production at app.bindersnap.com, with public pricing, a self-serve 14-day trial and a full help center.

The problem

Most small providers run policy approvals through Word, email and a shared drive. That works until a surveyor asks which version of a policy was in effect and who approved it. The answer then sits in an inbox, or in a file called IC_Policy_FINAL_APPROVED_Mar14.docx, or nowhere at all.

Enterprise policy platforms solve this, but they are priced and built for hospital systems. Bindersnap gives a compliance or operations lead at a 20-person agency the same guarantee: the current approved version of every policy, and a complete record of who signed off on it, on one page.

What it does

  • Every change is reviewed. An approved policy cannot be edited in place. A change becomes a new version that goes through review and sign-off before it replaces the old one.
  • The record is permanent. Each published version keeps its approvers, dates and comments, and the full history exports as a PDF audit packet years later.
  • It works with the documents you already have. Word and PDF files upload and version as they are. New policies can be written in Bindersnap’s own editor. Nothing forces a Word file into a new format.
  • Pricing that fits a small team. Writers are $39 a month each. Reviewers and readers are free, so the whole staff can read current policy without adding seats.
  • Your history is yours. If an organization stops paying, it loses editing, never access to its own approval history.
  • No patient data. Bindersnap stores policies and approvals, not PHI. The security page and privacy policy say exactly what is stored.

How it is built

The audit trail is the product, so the architecture is built around making it trustworthy.

  • Git as the system of record. Each binder is a repository in Gitea. A change is a pull request, a review is a pull request review, and each published version is a tag. Documents, versions, approvals and comments are git objects rather than database rows, so the evidence is the same data the approval rules were enforced on. Users never see any of it.
  • Typed configuration in SQLite. Organization settings, membership and billing live in migrated tables, so questions that span hundreds of documents are one query.
  • Credentials never reach the browser. A Bun API owns authentication and keeps each user’s repository token server-side behind an HttpOnly cookie. The React app talks only to that API.
  • Simple, reproducible infrastructure. The API and Gitea run under Docker Compose on AWS EC2, configured by pyinfra on every push. The app and the public site are static builds served from Cloudflare’s edge.
  • Fast on a phone. The landing page reaches largest contentful paint in 2.4 s on mobile Lighthouse with 0 ms of blocking time, and the sign-in page loads 41 KB of code instead of 478 KB.

Recent work

This fall Bindersnap shipped a full redesign: a warm visual identity with WCAG AA contrast enforced in CI, separate addresses for the marketing site and the app, and a public library of guides. That library includes pages for each type of provider, answers to common regulatory questions, free policy templates, and comparisons with PowerDMS, PolicyTech and PolicyStat.

Get started

Start a 14-day trial with no card required, or read moving your policy manual in to see what the first afternoon looks like. Pricing is on the public pricing page.

Writing

More on this project

Let's connect

Have something hard that has to work?

Contract work, a full-time role, or a problem you want a second opinion on — I read every message and reply to the ones that aren't a template.

Email me

Usually replies within a day or two · St. Louis, Missouri

ESC

Home

Main landing page & highlights

Page

Work

All engineering projects & case studies

Page

Writing

Technical notes & engineering articles

Page

Games

Browser games, several against real models

Page

About

Background, career timeline & skills

Page

Contact

Email, inquiries & consultation

Page

Copy Email Address

davidgraymi@gmail.com

Action

Toggle Light / Dark Theme

Switch color theme

Action

Resume

Web page, with a PDF download

Read

Visit GitHub

github.com/davidgraymi

External

Visit LinkedIn

linkedin.com/in/david-gray-mi

External

Beat the bot

Tetris against the value network from my reinforcement-learning project. Same pieces, two minutes, most lines wins.

Game

Draw a digit

Draw 0–9 and watch a weighted KNN classifier find its nearest MNIST neighbours as you go.

Game

Is it poisonous?

A real mushroom from the UCI dataset. Make your call, then watch an ID3 decision tree make its own.

Game

Route the robots

Draw a warehouse, place robots and goals, and race a LaCAM multi-agent path-finding solver to the shortest plan.

Game

Daily Wordlet

One five-letter word a day, the same for everyone. Six guesses.

Game

Bot or human?

14 rounds. One line from a public-domain classic, one written by a language model. Spot the bot.

Game

Reaction test

Wait for the panel to light up amber, then hit it as fast as you can.

Game

Lost signal

The 404 page's dodge game. Packets rain down; steer the receiver out of the way.

Game

neural-cost

A framework-neutral Python library that tells you how fast a neural network should run, not just how fast it does — FLOPs, tensor traffic and a roofline model across PyTorch, JAX and TensorFlow.

Personal

Sign Language Interpretation System

Control any smart device with American Sign Language — hand tracking, a gesture classifier and grammar correction, wired together over a client-server link.

Capstone

Bindersnap

Production policy and procedure management software for small healthcare providers. Every approved version carries a permanent, exportable record of who reviewed and signed off on it.

Product

Patient Care Portal Triage

An NLP pipeline that routes patient portal messages to the right team and surfaces relevant evidence-based research while they wait for a human.

Research

Threat modeling a zero-trust deployment pipeline

A continuous deployment pipeline for configuration-as-code and infrastructure-as-code into Kubernetes, designed from its threat model outward so the release process does the security review.

Professional

Moving three toolchain apps to Kubernetes on Azure

Three toolchain applications moved to Kubernetes on Azure, deployed one way with Helm and infrastructure-as-code, and secured with an Istio service mesh.

Professional

A processor built from the ground up

Kernel, task scheduler and communication protocol written from nothing, in C and Ada, now in production and distributed globally.

Professional

A system library that runs anywhere

One portable C++ library targeting any RTOS or bare-metal system, packaged with Docker, Bazel and GitLab CI — cutting porting work by 4×.

Professional

LaCam for Multi-Agent Path Finding

A from-scratch LaCam solver for CS440 — agents searching a space of joint configurations, each expanded by a constraint tree that rules out collisions and swaps.

School

Wordlet

A word guessing game built in Flutter and compiled to the web — playable right here, no install, no account.

Personal

Reinforcement Learning applied to Tetris

An agent that learns to play Tetris — a genuinely fun excuse to get hands-on with reward shaping.

School

Handwritten digit recognition with weighted KNN

A KNN classifier for handwritten digits, plus a k-value optimizer that collapses repeated distance calculations into a single pass.

School

ID3 mushroom classification

A from-scratch ID3 decision tree that predicts whether a mushroom is edible or poisonous from its attributes.

School

Healthcare length-of-stay estimator

A data mining project predicting how long a patient will stay, from admission-time features.

School

This website

A static site built with Astro, hosted free on GitHub Pages, designed so writing a post costs one markdown file and nothing else.

Personal

A roofline number should say what it doesn't know

I pointed neural-cost at my own AlphaZero chess net and got a confident 69% efficiency that was wrong three ways. Here is what it now reports instead, and the four bugs that only showed up on a real Apple GPU.

Post

Bindersnap's new look, and why most of it isn't color

Bindersnap now has a warm redesign, its own home at bindersnap.com, the app at app.bindersnap.com, and a landing page that paints in 2.4 s on a phone.

Post

An Unexpected Email, REPRO-SIGN, and 11 Citations on Google Scholar

Years after our college capstone, an out-of-the-blue email from European AI researchers wanting to reproduce our sign language paper sent me to Google Scholar, where we've been cited 11 times.

Post

Connecting the Dots: How a Sign Language Capstone Got Me Hooked on AI

Looking back at my senior capstone project at Missouri State — building a real-time American Sign Language smart home controller with MediaPipe, custom CNNs, and networking — and how it sparked my path in machine learning.

Post

GPU vs. CPU: Roofline Benchmarks on Apple Silicon MPS with neural-cost v0.2.0

The neural-cost v0.2.0 GPU benchmark moves from CPU roofline analysis to Apple Silicon's MPS GPU backend — measuring PyTorch and JAX across five architectures, four batch sizes, and both eager and compiled execution modes.

Post

PyTorch vs. JAX vs. TensorFlow: A Roofline Benchmark Across 5 Architectures

An empirical investigation comparing PyTorch 2.14, JAX 0.11, and TensorFlow across five model architectures and four batch sizes, measuring compiler speedups, kernel overheads, and hardware limits on Apple Silicon.

Post

neural-cost: Roofline Analysis Across PyTorch, JAX, and TensorFlow

A framework-neutral Python library that estimates a neural network's FLOPs and tensor traffic, measures its runtime, and uses a roofline model to tell you exactly where performance is being left on the table.

Post

I rebuilt this site so that publishing costs one file

The old site was a single 41,000-character index.html. Every change was archaeology. Here is what I replaced it with and why the constraint was maintenance, not design.

Post
↑ ↓ to navigate↵ to select
esc to close

Terminal