Every family hears the message.
Kastr is K-12 school-to-home communication. One composer, the channels families actually answer, translation into 30+ languages — so the snow day, the conference reminder and the early dismissal all reach the family that needs them. The price is on the site. So is the list of things we have not built yet.
| The pattern | What it costs you | The name for it |
|---|---|---|
| Per-student renewals that escalate | Annual increases that compound, plus a tier upsell at each renewal cycle. The number you signed is not the number you pay in year three. | Renewal anxiety |
| Free to districts, paid by families | The district pays nothing. Families are sold subscriptions inside the app the district asked them to install. | Your families pay |
| Comms bundled into a brand suite | Suite pricing for websites, apps and social tools when what you actually needed was a messaging tool. | Bloat tax |
| Free comms if you switch your whole stack | Messaging thrown in with the SIS. Cheap on the invoice, and now one vendor owns rostering, grades and communication. | Bet-the-stack |
| Build it in-house | Two years of engineering time, then carrier compliance, quiet hours and translation forever. | Opportunity cost |
| Kastr | Per-student price fixed for 36 months, then capped at CPI-U. Contractual export rights on any day of the term. No revenue from your families, ever. | A fifth shape |
None of the first four is dishonest. Each is a rational answer to a real constraint. They are simply four different ways of not telling a district what the third year costs.
The console, as it actually looks
Districts do not buy screenshots, but they do buy the thing that front-office staff will open forty times a week. So here it is: broadcasts, an inbox, forms, families, staff, community groups, and an audit log that nobody can edit, including us.
Broadcasts
| Broadcast | Audience | Sent |
|---|---|---|
| Early dismissal, snow | Everyone · 14,217 families | 12 min ago |
| Spring conferences open | Saved selection · 412 | 3 hrs ago |
| Bus 47 running late | Saved selection · 38 | Yesterday |
| Free and reduced lunch reminder | Saved selection · 5,209 | 2 days ago |
| Field trip permission slip | Saved selection · 891 | 3 days ago |
Illustrative console, fictional district. Kastr is pre-launch and these are not customer figures. An audience is either everyone or an explicit selection of people saved as a reusable preset; picking a student automatically expands to that student's guardians.
The sidebar is deliberately short. Every item on it is something a district administrator uses in a normal week, and there is nothing on it we have not shipped. A products page that shows twelve modules and delivers four is how evaluations die in month three.
Four things we put in the master agreement
Anyone can write a promise on a marketing page and change it at the next redesign. These four are clauses, with section numbers, in the agreement your counsel will redline.
- §3.2 — Pricing Commitment.
- The per-student price is fixed for the 36-month initial term. Year four and beyond is capped at the lesser of CPI-U or 5% annually. Any feature we ship during the locked term is included at no extra charge.
- §7.1 — Data Portability.
- You may export all of it — messages, forms, audit logs, family contact records — at any time during the term, in a machine-readable format, without notice and without fee. Being precise about today: this is a contract right, and we run the export for you on request, same day. Self-serve export tooling ships with the May 2027 release. We are not going to describe an unbuilt button as one click.
- §9.4 — Non-Solicitation of End Users.
- Kastr will not market, sell or advertise to district families through the service, and will not derive revenue from family-facing subscriptions, fees or transaction processing of any kind. Not a tier we could add later. A clause.
- §11.2 — Change-of-Control Exit Right.
- On acquisition, a change of majority ownership, or a material change to data-handling terms, you may terminate within 90 days with a full data export, a prorated refund of the unused term, and no early-termination penalty. This category consolidates constantly. That right is worth more than most features.
The question worth asking every vendor on your shortlist, including us. "Will you write your maximum annual increase into the agreement, as a number?" It costs nothing to answer if the answer is yes. Ours is §3.2, and you can read it before you talk to a human.
Send a message. See what it cost. Get a reply in Spanish.
That is most of the product. The composer is fast because the rest of the application stays out of the way.
Illustrative composer, fictional district. The cost figure is a deliberate upper bound — the composer prices SMS at 1¢ a message so the estimate is never a pleasant surprise in the wrong direction. Scheduling resolves the audience at send time, not at schedule time, so a family added on Thursday still gets Friday's message.
- A cost and reach estimate before you send. Tick a channel and the estimate updates. No competitor we have found shows a district what a send is about to cost while they are composing it.
- Read the translation before it goes. The draft renders in up to five languages against real DeepL, so nobody discovers a mangled Spanish version from a parent's reply.
- Send a test to yourself. A real SMS on your own phone, prefixed
[TEST], before it goes district-wide. - Schedule for later, resolved at send time. The audience is computed when the message goes out, not when you scheduled it, so a family enrolled on Thursday still receives Friday's message.
- Per-family channel preferences, honoured. Quiet hours default to 21:00–07:00 and are bypassed only by an emergency-flagged send, which is itself gated on a capability rather than a checkbox.
- SMS to voice failover. When an SMS fails terminally, delivery falls back to voice with the failover linked to the original, so the delivery record tells the truth about what happened.
What is included at every district size
Five capabilities cover the overwhelming majority of what a district sends in a year. All of them are in every plan. There are no tier upsells, no add-on modules and no per-message fees.
| Capability | What you get |
|---|---|
| Mass broadcast | SMS, email and voice, unlimited, with per-family channel preferences honoured and a queue built on SELECT … FOR UPDATE SKIP LOCKED so a crashed worker's messages recover instead of vanishing. |
| Two-way conversations | Threaded, translated in both directions, and written into the audit log. |
| Translation into 30+ languages | Real DeepL, with a preview before sending and a global cache keyed on a hash of the source text, so we never pay to translate the same string twice. The cache holds no index of who said what. |
| Forms and permission slips | Roster-aware, responses readable over the API as well as in the console. |
| Community groups | A PTA volunteer can post as the group and manage its members with no district-console access at all, and every group-identity post still records the real author for audit. |
Delivery is idempotent at the row level, keyed on broadcast, person and channel, which is the difference between a retry and a district receiving the closure notice twice.
Open by default: a REST API, a CLI and an MCP server
The most useful thing AI brings to a district is not a bot bolted to the side of a dashboard. It is clean, governed, logged access to the data and the actions. So everything in Kastr is reachable three ways.
- REST API. 28 endpoints across 23 routes. Search families, POST a roster, send a broadcast, pull form responses — the same operations the console runs, behind one bearer key.
- CLI.
kastr people,kastr health,kastr send. 16 commands, MIT licensed. Cron it, pipe it, drop it in CI. - MCP server. 19 typed tools for any MCP client, running under your key, your row-level security and your audit log, with the send held for a human.
Outbound webhooks are signed Stripe-style — X-Kastr-Signature: sha256=<hmac> over the timestamp and the raw body — behind a DNS-resolving SSRF guard that rejects loopback, RFC1918 and link-local targets before delivery, with exponential backoff and automatic disable after ten consecutive failures. The full platform page has the curl commands and the MCP config.
Migration, with a receipt your board can file
Our ParentSquare importer is MIT-licensed and runs without a Kastr account. Point it at the seven-file export bundle and it validates every record, then emits a signed PDF: a per-file SHA-256 manifest, an HMAC over the bundle hash, source-versus-imported counts, and a ledger of every dropped record with its reason.
Migration receipt — ParentSquare export
| Record class | In source | Validated | Dropped |
|---|---|---|---|
| Schools | 14 | 14 | 0 |
| Students | 18,044 | 18,044 | 0 |
| Contacts (guardians) | 14,217 | 13,908 | 309 |
| Student–contact links | 31,205 | 30,974 | 231 |
| Staff | 1,089 | 1,089 | 0 |
| Classes | 1,412 | 1,412 | 0 |
| Enrolments | 64,880 | 64,880 | 0 |
Illustrative receipt, synthetic district. Being exact about what this tool does: it reads, validates and signs. It does not write rows into a live Kastr tenant — that step happens with us during onboarding.
That drop ledger is worth reading even if you never sign with us. Every long-lived roster accumulates guardians literally named "mom", duplicate phone numbers shared across siblings, and relationships pointing at students who left in 2021. A migration is the one moment you get a full inventory of it. How migration works, step by step.
Pricing, on the page, where it belongs
$3.50 per student per year under 5,000 students. $3.25 from 5,000 to 14,999. $3.00 above that. One tier. Everything included. Fixed for 36 months, then capped at the lesser of CPI-U or 5%.
You did not have to book a call to read that, which is not true of most of this category. The largest platform in K-12 family communication publishes a pricing page containing three tiers, four add-ons and no dollar amount of any kind. See the full pricing page, including a three-year total-cost comparison across five district sizes, or read what ParentSquare actually costs and how to find the number for a district your size without a sales cycle.
Where we are not the answer
We are pre-launch. Publishing the gaps on the homepage is cheaper for both of us than discovering them in a security review.
- No single sign-on. A magic link is our only authentication — 32 random bytes, 15-minute TTL, single use, bound to the device that requested it. There is no SAML, no OIDC and no MFA. If SSO is non-negotiable for your district, we fail that requirement today.
- No attachments, photo or video sharing. Teachers use this daily on other platforms. We have not built it.
- No mobile push notifications. The family surface is a web app. SMS, email and voice are the three channels that actually deliver.
- No SOC 2 report. Not audited, not in audit. The window opens at our first district cutover, and until then we publish dated status rather than a badge.
- No customer references. None. We are recruiting design partners. If reference calls with districts your size are part of your process, that is a real reason to pick somebody else this cycle.
- No auto-notice engine. Attendance and lunch-balance rules can be configured; nothing fires them yet. It is on the roadmap and it is not a product.
- No grade, school or route targeting. An audience is everyone or an explicit selection of people. The presets are not live and the API rejects them rather than quietly sending to the whole district.
- No native SIS connectors. Roster data is POSTed to
/api/v1/roster/sync, where a diff engine classifies every record and a guardrail aborts the run if it would withdraw more than half your active students. There is no vendor-branded connector doing the fetching for you.
Read why we build it this way, or the head-to-head against the market leader — which includes the six rows where they win.
Questions people actually ask
How much does Kastr cost per student?
$3.50 per student per year for districts under 5,000 students, $3.25 from 5,000 to 14,999, and $3.00 at 15,000 and above. One tier at every size, every feature included, no per-message fees and no add-on modules. The rate is fixed for the 36-month initial term and capped thereafter at the lesser of CPI-U or 5% under clause §3.2.
How does migration from our current platform work?
Request a full export from your incumbent, then run our MIT-licensed importer against it. It parses the seven-file bundle, normalises phone numbers to E.164, validates emails, maps languages, de-duplicates contacts and filters junk guardian records, then emits a signed PDF receipt with a per-file SHA-256 manifest and a ledger of every dropped record. The importer validates and signs; loading those records into a live tenant happens with us during onboarding.
Which channels does Kastr actually deliver on?
Three: SMS, email and voice. Push notifications are not built — the family surface is a web app. When an SMS fails terminally the message fails over to voice, with the failover linked back to the original so the delivery record reflects what really happened.
Which SIS systems does Kastr integrate with?
Roster data is POSTed to /api/v1/roster/sync in a documented shape, and the diff engine classifies every record as added, changed, unchanged or withdrawn with a SHA-256 payload hash per run. There are no vendor-branded native connectors for PowerSchool, Infinite Campus, Skyward, Aeries or Synergy today, and we are not going to list logos for integrations that do not exist. The withdraw guardrail aborts a sync that would withdraw more than half your active records, which is the truncated-export failure that turns one bad file into a district-wide outage.
Are you SOC 2, FERPA, COPPA and SOPIPA compliant?
FERPA, COPPA and SOPIPA: architecturally compliant and signed through the DPA in the master agreement. SOC 2 Type II: not audited and not in audit — the window opens at our first district cutover. We publish dated status rather than badges, because a badge on a pre-launch vendor's site is the first thing a good security reviewer catches.
What happens to our data if Kastr is acquired or shuts down?
Clause §11.2 gives you 90 days to terminate on a change of control or a material change to data-handling terms, with a full export, a prorated refund and no penalty. The migration importer is already MIT-licensed and public, so the tooling that moves data keeps working whether or not we do — that is worth more than a source-escrow arrangement you would have to litigate to open.
One price. Every feature. Locked for three years.
$3.50 per student per year under 5,000 students. No tiers, no add-on modules, no per-message fees. Published on the site because you should not have to book a call to learn a price.