Migration
Migrate from Clever in a weekend.
Chalk is a drop-in OAuth 2.0 replacement for Clever. Keep your downstream app integrations working while you switch — same flow, same scopes, same payload shape.
How it works
Three steps. Most districts cut over a handful of apps the first weekend and finish the long tail over the next two weeks.
01
Connect your SIS to Chalk
Point Chalk at PowerSchool, Skyward, or Infinite Campus. Chalk pulls the canonical roster via OneRoster 1.1.
02
Repoint your apps at Chalk
Update your existing Clever-integrated apps to Chalk's compatibility endpoints. Same OAuth 2.0 flow, same scopes, same payload shape.
03
Run the cutover wizard
Map users and roles in the admin console. Roll over apps at your own pace — Clever and Chalk can run side-by-side during the cutover.
What's compatible
The core OAuth 2.0 contract and the most-used payload shapes. Every district's edge cases differ — talk to us about your specific app inventory.
OAuth 2.0 authorization flow
Same authorize / token / refresh dance your apps already implement against Clever.
User info endpoints
Student, teacher, and admin user info responses that match Clever's payload shape.
Enrollment payloads
Sections, terms, and roster membership delivered in the shape your apps expect.
Role mapping
Student, teacher, district admin, and school admin roles mapped to OneRoster equivalents.
Why districts switch
Districts move off Clever for the same reasons they move off any rostering vendor: cost, control, and trust.
Free for schools
No per-seat fees, no per-API-call billing. The product is free for K-12 districts.
Data ownership
Self-host on your infrastructure, or let us host it — either way the roster is yours.
No vendor lock-in
OneRoster 1.1 in, OneRoster 1.1 out. If you ever leave Chalk, you leave with standard data.
Open source
AGPL-3.0. Read the code, audit the security model, contribute fixes.
Ready to start your migration?
Spin up a free Chalk tenant and test the Clever-compatible endpoints against one app before you commit to the cutover.