Release Notes

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

182 releases
Page 3 of 17
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 on the Add Student page with a yellow "alert-warning" callout + 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
  • Added a regression test pinning the empty-state path so this never silently breaks again
  • No visual or behavioral change for tenants that already have grades, session years, and a school configured

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 + input-sm 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 DataTables "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
  • Added 9 regression tests to pin the 8th grade wiring across the three frontend files

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

v2026.4.21.2

Signing in with Google is faster — no more unnecessary database lookups for new users.

When someone signs up to NavEd using Google for the first time without an invitation link, our system was quietly running 36 extra database queries in the background trying to find invitation data that didn't exist. The signup itself succeeded, but those extra round-trips added over a second of unnecessary processing time on every organic Google OAuth signup.

We've added a guard that detects uninvited signups immediately and skips the database scan entirely. Invited users are unaffected — their invitation data is still found and applied correctly.

Fixes and Improvements

  • Organic Google OAuth signups no longer trigger a cross-schema tenant scan (resolves Sentry #7335431387)
  • Added self-healing: stale invitation routing records are now corrected automatically on first login
  • Added 3 regression tests to prevent this from recurring

v2026.4.21.1

A student account in an unusual state was seeing a server error on subject and grade pages—that's fixed.

In rare cases, a student account can end up without a complete profile record behind it (for example, if the account was created during a brief setup window that didn't complete successfully). When that happened, any page that needed to look up the student's grades, clubs, or subject documents would crash with a 500 error instead of handling the situation gracefully.

We've added defensive error handling across subject overview, grade pages, subject documents, and the clubs list so that if a student account is ever in this incomplete state, the page either loads safely with no data or shows a clear message asking the student to contact their school administrator—no more crashes. We also fixed a typo in a page template that would have prevented the subject documents form from submitting correctly for any user.

Fixes and Improvements

  • Fixed 500 error on subject overview pages for accounts with incomplete student profiles
  • Fixed 500 error on grade pages for accounts with incomplete student profiles
  • Fixed 500 error on subject documents pages for accounts with incomplete student profiles
  • Fixed 500 error on clubs list page for accounts with incomplete student profiles
  • Fixed a broken form action URL in the subject documents template

v2026.4.10.1

A new blog post was hiding from search engines—we found it and brought it back.

Our "What Is Standards-Based Grading?" article published this week, but because of a small formatting quirk in the file, it never made it into our sitemap. Search engines like Google and Bing use the sitemap to discover new content, so without that entry, the post was effectively invisible to anyone searching for it.

The post itself was always accessible if you had the direct link, but we want every piece of content we write for educators to be as easy to find as possible. We've fixed the post and added a safeguard so that similar formatting issues in future posts won't cause the same silent disappearance.

Fixes and Improvements

  • Restored standards-based-grading-guide to the sitemap so search engines can index it
  • Added a defensive check in the blog post parser to handle formatting edge cases gracefully

v2026.4.9.1

The Payment Settings page just got a fresh coat of paint—and a few thoughtful touches.

We redesigned the Payment Settings and Stripe onboarding pages to match the rest of NavEd's modern look. But it's not just cosmetic. We also made the experience friendlier for school administrators setting up payments for the first time.

The "Connect with Stripe" screen now features a trust message so you know your banking details are never stored by NavEd. We replaced technical Stripe jargon like "Accept Charges" and "Receive Payouts" with plain language—"Collect tuition payments" and "Receive funds to your bank." And if Stripe is reviewing your information, the page now clearly tells you no action is needed on your end.

Fixes and Improvements

  • Removed 71 lines of custom styling in favor of NavEd's design system
  • Added accessibility attributes to all decorative icons
  • Upgraded the "Account Disconnected" alert to make the severity clearer

Want to stay updated?

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

Get Started Free