Release Notes

See what's new in NavEd. Product updates, new features, and improvements for micro school, co-op, and small school management.

231 releases
Page 6 of 17
v2026.5.4.10

Public transcript builder: group courses by Grade Level or Subject.

Added a "Group courses by" toggle on the public transcript builder so families can switch between the existing grade-level grouping (default) and a subject-based view. Homeschool customers asked for this because homeschooled children often don't follow the exact state-recommended schedule when earning credits — grouping by subject makes the credit story clearer to colleges. The toggle persists per transcript, drag-and-drop reorder works in both modes, and existing transcripts continue to render in Grade Level mode by default with no change.

Improvements

  • New "Group courses by" segmented control above the courses table on the transcript builder, with Grade Level (default) and Subject options
  • On-screen courses table re-renders into per-subject sections when Subject is selected, alphabetical by subject label, skipping any subject with zero courses
  • Drag-and-drop reorder works inside each section in both modes; cross-section drags continue to be rejected
  • Generated PDF respects the toggle: in Subject mode the per-section tables, per-section GPA labels, and Academic Summary header all switch from "Grade Level" to "Subject Area"; in Grade Level mode the PDF is byte-for-byte identical to before
  • Reuses the existing required Subject Area field on every course — no new dropdowns, no new data to fill in, no migration

v2026.5.4.8

Public transcript builder: long modal label now wraps cleanly.

Fixed a smoke-test issue from the previous release: the "Concurrent / dual-enrollment course (taken at a community college or other institution)" checkbox label was getting cut off in the course edit modal because the long text wasn't wrapping. The label now wraps onto multiple lines so the full description is always visible.

Fixes

  • Course edit modal: long concurrent-enrollment checkbox label now wraps onto multiple lines instead of being truncated

v2026.5.4.7

Public transcript builder: per-course concurrent / dual-enrollment markers.

Added an option to mark a course as concurrent / dual-enrollment in the public transcript builder, requested by a homeschool parent who needed to flag classes her child took at a local community college. Each flagged course now shows an asterisk after its name in the generated PDF, with a footnote under the Academic Summary table explaining the convention. If you provide the institution name (e.g., "Sinclair Community College"), it appears in a deduplicated list below the footnote.

Improvements

  • New "Concurrent / dual-enrollment course" checkbox in the course edit modal, with an optional Institution Name text input
  • Generated PDF appends * to the course name in the per-grade-level table for each flagged course
  • Generated PDF includes the footnote * Indicates concurrent / dual-enrollment coursework below the Academic Summary table whenever at least one course is flagged
  • If institution names are populated, the deduplicated list renders indented below the footnote (alphabetically sorted for stable PDF output)
  • Backward compatible: existing transcripts saved before this release render byte-for-byte identically — no asterisks, no footnote, no changes

v2026.5.4.6

Public transcript builder: drag-handle icon and reorder hint for discoverability.

Added a visible grip-handle icon on every course row in the public transcript builder, plus a one-line tip ("Tip: Drag rows to reorder courses within a grade level.") above the courses table so first-time users can discover the drag-drop reorder feature shipped in the previous release. No behavior change — purely a discoverability affordance, follow-up to customer feedback after the initial drag-drop launch.

Improvements

  • New leading drag-handle column shows a muted icon on every course row, paired with a "Drag to reorder" tooltip
  • One-line tip rendered above the courses table makes the reorder feature discoverable without requiring the user to hover a row first
  • Existing drag-drop, click-to-edit, and trash-button behaviors all preserved; PDF output is unchanged (the icon and hint are builder-UI only)

v2026.5.4.4

Public transcript builder: drag-and-drop to reorder courses within a grade level.

You can now drag any course row up or down within a grade-level section to put your courses in the order you want them to appear on the transcript. Grab a row (or tap-and-hold on iPad/iPhone) and drop it where it belongs — the new order is saved instantly and prints in that exact order on the PDF. Drag-drop is scoped to within a single grade level: dragging a 9th-grade course into the 10th-grade section is blocked (use the row's edit modal to change a course's grade level). This was requested by a homeschool parent who said the previous insertion-order behavior felt random.

New Features

  • Course rows in the transcript builder are now draggable. Hovering a row on desktop shows a "move" cursor; on touch devices, long-press initiates a drag
  • Reorder is persisted into the transcript, survives page reload, and flows through to the downloaded PDF transcript in the new order
  • Click-to-edit and the trash-icon-to-delete behavior are preserved — drag only kicks in on actual drag motion
  • The 8th-grade hidden-when-empty guard from the prior release is preserved; reorder works inside the 8th-grade section once a course is added there

v2026.5.4.3

Public transcript builder: optional School Address and School Phone now appear in the PDF header.

Two new optional fields — School Address and School Phone — have been added to the free public transcript builder. When you fill them in, they appear centered under your school name in the PDF transcript header, between the school name and the "Official Academic Transcript" subtitle. Leave them blank and the PDF renders exactly as before — no awkward empty placeholder lines. This was requested by a homeschool parent who wanted to include her family academy's mailing address and contact phone on her child's transcript.

New Features

  • Two new optional inputs (School Address, School Phone) on the transcript builder form, between School Name and Parent/Guardian Name
  • Both fields are stored and synced to the database alongside the rest of the transcript, so they survive page reload
  • PDF transcript header dynamically expands when address/phone are populated; legacy transcripts (saved before this change) continue to render with the previous header layout exactly

v2026.4.29.3

Password reset and other account flows are now more reliable across all environments.

A configuration issue was causing automated tests to fail when NavEd tried to look up email addresses during password reset requests and other authentication flows. This only affected the test environment — no user-facing behavior changed — but it meant regressions in these flows could go undetected.

The fix ensures the email address table exists in the correct locations for both the shared domain and per-school contexts, which is the right setup for a multi-school platform where users are globally unique.

Fixes and Improvements

  • Fixed test failures caused by missing email-address table in the shared schema context
  • Password-reset and account flows now work correctly whether triggered from the main domain or a school's own subdomain

v2026.4.29.2

Two blog posts restored to the blog listing and sitemap after a formatter corrupted their metadata.

A code formatter run on April 28 accidentally mangled the metadata of two blog posts — "Progress Reports vs Report Cards" and "How to Write Narrative Assessments" — causing them to silently disappear from the blog index and XML sitemap. Both posts have been restored and are now visible again to readers and search engines.

Fixes and Improvements

  • Restored two blog posts that were excluded from all blog listings and the sitemap since April 28
  • Added a safeguard that validates every blog post's metadata at deploy time — any future formatting corruption will be caught before it goes live

v2026.4.28.2

More reliability improvements — tests now run on a clean database, and our build pipeline is more secure.

Building on yesterday's CI cleanup, we resolved two more reliability issues. Tests are now run against a dedicated, ephemeral database that exists only for the duration of each test run — eliminating timing dependencies and contention that could cause occasional, hard-to-reproduce failures.

For security, every automated build step this repo uses is now pinned to a verified snapshot, so a supply-chain incident on an upstream tool vendor's side can no longer affect our pipeline.

Fixes and Improvements

  • Tests now run against an ephemeral database — no more timing flakes or contention with other work
  • Build pipeline actions pinned to verified snapshots for supply-chain security

v2026.4.28.1

Invitation signups are now more resilient — no more redundant database work when a new user completes their account.

When someone accepts an invitation and creates their NavEd account, a behind-the-scenes signal fires twice (once when they click the invite link, once when they submit the signup form). Previously, the second firing would scan every active school in the database looking for their data, even though it had already been found and the account was already set up correctly. With many schools on NavEd, this created unnecessary database load on every invited signup.

We've fixed this by teaching the signup handler to recognize the second signal as a no-op and exit cleanly. We also improved invitation cancellation to clean up lookup data properly, so re-inviting someone to a different school always works on the first try.

Fixes and Improvements

  • Eliminated 30–60 redundant database queries per invited user signup
  • Invitation cancellation now removes the fast-path lookup record so future re-invites to different schools resolve correctly

Broken transcript links now show a helpful recovery option instead of a confusing error.

If someone followed an old or mis-typed transcript link — or if a search engine crawler stumbled onto an invalid URL — NavEd was logging it as an application error and surfacing it in our monitoring. The link still failed gracefully, but the noise made it harder to spot real problems.

We've fixed this by teaching the transcript viewer to recognize obviously invalid links upfront, without querying the database at all. Valid-looking links that have no matching transcript (expired or never-existed) are now also handled quietly, with a clear message and a recovery form so users can retrieve their link by email. Genuine unexpected errors still alert our team as before.

Fixes and Improvements

  • Transcript links containing invalid tokens (e.g. bots probing random URLs) are now rejected immediately — no database query, no error alert
  • Expired or missing transcript links now show a user-friendly error page with an email recovery form
  • Added regression tests covering all three token states: invalid format, valid but missing record, and genuine server error

v2026.4.26.1

Signing up via invitation is faster and more reliable — especially on mobile.

When a parent, teacher, or student accepted an invitation link and then filled out the signup form, NavEd was quietly doing a lot of unnecessary work behind the scenes. In some cases it was scanning every school in the system — sometimes 40 separate lookups — just to confirm something that was already known. You'd never see the extra work directly, but it added real latency to the signup page, and was increasingly noticeable on slower mobile connections.

We've fixed this by teaching the signup flow to recognize when it's already done the work — and stop repeating it. The invitation details are now found once and remembered, so the signup form completes quickly the first time, every time.

Fixes and Improvements

  • Signup via invitation link now completes with significantly fewer database lookups
  • Fixed an edge case where a stale invitation would cause unnecessary scanning across schools
  • Added a write-back so repeated invitation attempts (re-sends, session loss) stay fast too

v2026.4.24.1

The Add Student page now tells new admins what to set up first — no more dead-end dropdowns.

When a brand-new head of school visited Students → Add Student before finishing initial setup, they would see Academic Grade, Session Year, and School dropdowns that looked broken — clickable, but empty, with no hint of what to do next. One customer spent several minutes trying to figure out why the form wouldn't accept their entry.

We've replaced the empty dropdowns with a clear yellow callout for each missing prerequisite, telling the admin exactly what's missing and offering a one-click button to go create it ("Create Academic Grade", "Manage Session Years", "Configure School"). While any of those three prerequisites is missing, the "Add Student" submit button is disabled with a subtle hint ("Complete the setup above before adding a student.") so the admin can't waste time submitting a form that was guaranteed to fail. Schools that have already finished setup see exactly the same Add Student page as before.

Fixes and Improvements

  • Replaced empty Academic Grade / Session Year / School dropdowns with a clear callout and direct setup link when the tenant hasn't created any yet
  • Disabled the "Add Student" submit button while any of the three prerequisites is missing, with a helper message explaining why

v2026.4.22.4

The search box on the Applications page is now unmissable.

After the first iteration (2026.4.22.3), the HOD re-tested and the search still blended in — it was sitting alongside Status and School Year as just another small labeled filter in the dark header bar. We've pulled it out entirely, given it its own row spanning the full card width, bumped it to standard input size, embedded the magnifying-glass icon inside the left edge of the field (the universal "search box" affordance), and added a descriptive placeholder ("Search by name, email, or student ID...") so the user knows exactly what it searches. A subtle shadow and a teal focus ring give it further visual priority over the secondary refinement filters.

Fixes and Improvements

  • Moved the Applications search box out of the dark filter header into its own full-width row below it, visible to all user types
  • Replaced the small external-icon design with a full-width standard-size input with the search icon embedded inside the left edge
  • Added a descriptive placeholder ("Search by name, email, or student ID...") to communicate scope at a glance
  • Added shadow and primary-color focus ring so the eye lands on it first before the Status/School Year secondary filters

v2026.4.22.3

Searching on the Applications page is now an obvious, visible box — not a hidden link.

A school admin reported that the search control on the Applications page was easy to miss: "The search feature gets lost in the text of the page. I wish there was a box there before clicking on it. My eyes are not drawn to it. I was looking at all the boxes to find a search option." They were right — the default table-header search looked more like a line of text than an input.

We've added a prominent search box with a magnifying-glass icon to the Applications filter bar, sitting in the same row as the Status and School Year filters. The old search widget has been removed so there's no duplicate. Typing into the new box still filters applications live as you type, and every other table feature — sorting, pagination, bulk actions, delete — works exactly as before.

Fixes and Improvements

  • Added a visible search input with a magnifying-glass icon as the first control in the Applications page filter bar, matching the styling of the Status and School Year selects
  • Removed the default "Search:" widget from the Applications page to avoid duplicate search UI
  • Live as-you-type filtering is preserved — typing in the new search box instantly filters the applications table

v2026.4.22.2

The free transcript builder now supports 8th grade courses.

Homeschool families whose kids took high-school-credit courses in middle school (Algebra 1, Geometry, a foreign language) had no way to record them in the transcript builder — the Add Course form only offered 9th through 12th grade. When an 8th-grade course is added, it now renders in its own "8th Grade" section on the transcript PDF, positioned chronologically above 9th grade, with its own GPA line in the Academic Summary.

Existing transcripts are unchanged: if a transcript has no 8th-grade courses, no empty "8th Grade" section is shown on either the on-page table or the downloaded PDF. The 8th grade header does not include a "Freshman" or similar class-year parenthetical — 8th graders are not freshmen.

Fixes and Improvements

  • Added an "8th" grade option to the free transcript builder's Add Course form
  • 8th-grade courses render in their own section on both the on-page table and the PDF transcript, ordered before 9th grade
  • Academic Summary table on the PDF includes an 8th Grade row when 8th-grade courses are present

v2026.4.22.1

Grade entry no longer crashes when a score exceeds 999.

If a teacher entered a point value of 1000 or higher in the gradebook, the save would silently fail with a server error. The grade appeared to submit but was never recorded — and retrying produced the same result. This affected both the standard grade entry view and the roster-based grade entry screen.

We've added proper validation that now catches this before it reaches the database and returns a clear error message so teachers know the value is out of the accepted range. No grades were lost; any rejected saves will need to be re-entered.

Fixes and Improvements

  • Fixed grade entry crash (500 error) when a score of 1000 or higher was submitted
  • Added "out of range" error message for grades above 999.99 instead of a silent failure
  • Applied the same validation guard to the roster-based grade entry path, which previously had no upper-bound check at all

Want to stay updated?

Sign up for NavEd to get notified about new features and improvements

Get Started Free