How Course Versioning Works in Vero
· 5 min read · OneRange Product Team
Once a course is published, Vero tracks every meaningful change as a version — so admins can iterate confidently while learners and historical records stay consistent
Training content is never really "done." Policies change, products ship, playbooks get sharper. The question we kept hearing from admins was simple: "If I edit a course that's already live, what happens to the people who already took it — and the people taking it right now?" Course versioning is our answer.
The core idea: snapshots, not silent overwrites
Every published course in Vero has a current_version. When you make a meaningful change — new topics, updated reference documents, a different skill mix, tweaked duration — and confirm it, Vero takes a snapshot of the previous state and bumps the version number. Nothing is overwritten silently. The old version is preserved in a dedicated snapshot table so you always have a record of what "v1" actually looked like the day it shipped.
What gets versioned
A new version is created when you change the substance of the course, not when you fix a typo. The things that trigger a version bump include:
- Topics and learning objectives
- Linked reference documents in the knowledge layer
- The skills the course teaches and their target proficiency levels
- Course duration and pacing
- Assessment or quiz structure
Cosmetic edits — renaming the course, swapping a cover image, adjusting the description — update the live course in place without creating a new version. The goal is to keep the version history meaningful.
How learners experience it
Learners who are mid-course stay on the version they started. We never yank the rug out from under someone halfway through a conversation with the AI tutor — that would invalidate their progress and their assessment results. New assignments, and learners who haven't started yet, get the current_version automatically.
Every assignment in Vero stores a course_version field. That means a completion record from three months ago will always point back to the exact version of the course that learner actually took, even if the course has been updated five times since.
The "snapshot before leaving" prompt
When you edit a published course and try to navigate away without confirming, Vero shows a leave-confirmation dialog with three stacked options: save as a new version, leave without snapshotting, or stay and keep editing. This is the safety net — it's very hard to accidentally lose work or accidentally publish a half-finished change to live learners.
Restoring an older version
From the course's versions dialog, admins can view any past snapshot and restore it as the new current_version. Restoring doesn't erase history — it creates a new version pointing to the older content, so the timeline stays intact. Past learners keep credit for the version they took; future learners get the restored content. This is the workflow we recommend if a new version introduces a regression and you need to roll back quickly.
Why this matters for reporting
Because every assignment is pinned to a specific course_version, your reporting stays honest. "Sarah completed the Discovery Calls course" means something specific — you can click through and see exactly which version she completed, what topics it covered, and which skills it assessed. Auditors love this. So do managers comparing cohorts across quarters.
What's next
We're working on version diffs — a side-by-side view of what actually changed between two versions — and on per-team version pinning for organizations that want certain groups to stay on a stable version while others test new content. If you have feedback on how your team wants to manage course lifecycle, we want to hear it.
Tags: Product, Courses, Versioning