Launching TeachMetrics

This week I launched TeachMetrics, a self-hosted analytics platform for Teachable school owners. It syncs your school's full history (students, enrollments, courses, transactions) into a database you control, keeps it current through webhooks, and turns it into dashboards built for a school owner's deeper questions: revenue trends, cohort retention, student progress, discount performance, lifetime value, and an AI you can question in plain English. Founding price is $100 per school per year.

Building the analytics was the familiar part. Deciding what kind of relationship to have with the people who buy it took longer, and that's the half worth writing about.

Drinking our own champagne

I run a Teachable school with Jason Mefford. Teachable is excellent at what it's built for: creating, marketing, and selling courses. But as a school grows, its owner grows into questions that sit a layer deeper than any platform's built-in reporting. Which cohorts stick around? Which coupon campaigns acquire new students, and which discount the ones who would have bought anyway? Which students could use a nudge at 20% progress? Teachable's API and webhooks make all the underlying data available. What I wanted was the analytics layer on top.

So I built that layer for myself first: poll the API, receive the webhooks, keep a permanent always-current store of my school's history, put eleven analytics pages on top. Then it became obvious that every school owner grows into the same questions, and that non-technical people running schools as varied as the humanities itself deserved those answers without having to become data engineers first.

The part I didn't expect: the license

Here's what I thought launching a paid product meant: build a checkout, deliver a download. Here's what it actually meant: deciding, in writing, what a customer is allowed to trust.

TeachMetrics is source-available and runs on your server, holding your own students' data. Most software companies quietly make decisions to protect themselves against their customers via an End User License Agreement (EULA). I am choosing another way:

- Versions you received keep working, forever. Stop renewing and you lose updates and support, not the software. The license says this in its own headlined section, because it's the clause most licenses hide.
- There is no kill switch. The license affirmatively warrants that the code contains no license-enforcement traps, no phone-home gating, nothing that can stop your instance from working. Because you have the source, you can verify the claim instead of trusting it.
- The telemetry is four fields. Once a day the app may ask my server whether an update or security advisory exists: a license ID, a random install ID, a version string, a timestamp. The license commits me to updating that disclosure before the payload ever changes. There's an off switch, and a settings panel that shows exactly what was sent.
- Every section has a plain-language summary. Clearly marked as non-binding, because a software license you can't read is a license that only protects one side.

The AI feature got the same treatment, and that architecture got its own post: the prompt is not a security boundary. The short version: the model is treated as an untrusted SQL author, boxed in by aggregate-only views and an allow-list validator, so bring-your-own-provider can't mean bring-your-own-data-leak.

None of this is altruism. It's positioning that only a self-hosted product can honestly claim. The big platforms can't offer "your data never touches our servers." I can't offer their scale. Fair trade.

Built with a partner

Regular readers know the AI development harness built on trust behind my recent work: written tenets, kanban-tracked slices, honest self-assessment after every ship. TeachMetrics is that harness's largest output so far, and the launch was a stress test. The stretch from "let's monetize" to "on sale" took eight days.

I'm the founder and the accountable human. But "I used an AI tool" would be the wrong description. It was closer to running a very small, very disciplined team where one member never sleeps and writes everything down.

The founding deal

Self-hosted is $100 per school per year: a year of updates and support on top of software that keeps working regardless, with a 30-day money-back guarantee, because the license's promises should be testable risk-free. If you'd rather not run a server at all, there's a managed option at $500 per year. That one starts with a conversation, not a checkout.

If you run a Teachable school and you've ever lost an afternoon in a spreadsheet chasing an answer about your own business, teachmetrics.co is for you. The docs walk through the ten-minute install, and the license says what it means in plain language.

Questions, skepticism, and feature requests all welcome.