Release Notes

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

130 releases
Page 2 of 13
v2026.3.23.1

Foundation work for school payment collection is underway.

We're building the infrastructure that will allow schools to collect payments from parents directly through NavEd. This update adds the database models and service layer needed to connect schools with Stripe, the payment processor we use. No user-facing changes yet -- this is the groundwork for the full payment collection feature coming soon.

Under the Hood

  • Added Stripe Connect account tracking for schools
  • Added webhook event deduplication to prevent double-processing of payment events
  • Created Connect service layer for Stripe API interactions

v2026.3.19.5

NavEd now stays online during brief infrastructure hiccups — even when the database is momentarily unreachable.

Occasionally, our hosting provider performs brief maintenance on the database connection layer. When this happened, every page — including the system health check that tells our servers "yes, NavEd is still running" — would fail. This could cause our hosting platform to mistakenly think NavEd had crashed and restart it unnecessarily, extending the downtime.

We've restructured how NavEd handles these brief interruptions. The health check now responds independently, so even during a momentary database blip, your servers stay running and recover instantly once the connection is restored. We also eliminated unnecessary database lookups when loading stylesheets, icons, and other static files — so those assets load faster and aren't affected by database hiccups at all.

Fixes and Improvements

  • Health check endpoint now survives database proxy outages without triggering unnecessary server restarts
  • Static files (CSS, JavaScript, images) no longer require a database connection to load
  • Added structured logging to help us detect and diagnose infrastructure outages faster

v2026.3.19.4

The Gradebook page is now more resilient and significantly faster when loading assignment statistics.

When you open the Gradebook tab for a subject, NavEd calculates the highest, lowest, and average grade for each assignment. Previously, each of those calculations was triggering dozens of unnecessary individual database lookups — one for every student result, just to check a setting on the subject. For a class with 10 assignments and 20 students, that could mean over 600 tiny database calls on a single page load.

We've optimized all three grade statistic methods to load the data they need in a single efficient query per assignment. This dramatically reduces the number of database calls, makes the page load faster, and eliminates a rare crash that could occur if the database connection was briefly interrupted during the long chain of lookups.

Fixes and Improvements

  • Gradebook: eliminated N+1 query pattern in assignment highest/lowest/average grade calculations
  • Gradebook: pre-loads subject data to avoid redundant lookups per assignment
  • Applies to both the Subject Overview and standalone Grades views

v2026.3.19.3

Removed a diagnostic check that was generating occasional background errors.

A debug session-verification query in our middleware was occasionally failing due to database connection timing during high-traffic moments. The query was leftover diagnostic code from a resolved session persistence investigation and served no functional purpose — sessions have been saving correctly all along.

We've removed the unnecessary verification step, which eliminates the background error and shaves one redundant database query off every HTTP response.

Fixes and Improvements

  • Removed stale session-persistence diagnostic query from debug middleware (Sentry #7276789284)
  • Net reduction: one fewer EXISTS query per HTTP response in production

v2026.3.19.2

Improved error filtering for transient Railway proxy disruptions during page loads.

When Railway's database proxy briefly disconnects during infrastructure maintenance, some page loads (like the subject overview) were generating error reports wrapped in generic exception messages. Our error filter couldn't recognize these wrapped errors, creating noise in our monitoring. We've extended the filter to detect Railway proxy errors even when they're wrapped by application-level exception handling, and improved the exception handling in grade calculation methods to preserve the original error type for better diagnostics.

Fixes and Improvements

  • Extended Sentry before_send filter to catch Railway proxy errors wrapped in generic Exceptions (Sentry #7346911310)
  • Improved exception handling in 4 grade calculation methods to preserve original error types using raise type(e)(...) from e
  • Added 4 new regression tests for wrapped-exception filtering

v2026.3.19.1

Reduced background noise in error monitoring from transient Railway infrastructure events.

Occasionally, Railway's database proxy goes through brief unavailability windows during infrastructure maintenance. Our background task worker was dutifully reporting these connection timeouts to our error tracker, even though it automatically recovers within seconds every time. These transient errors were creating noise that made it harder to spot real issues.

We've added a targeted filter that recognizes Railway proxy connectivity errors and suppresses them from our error feed, while continuing to surface any genuine database errors. The background worker's self-healing behavior is unchanged — tasks continue to be retried and caught up automatically.

Fixes and Improvements

  • Added Sentry before_send filter for transient Railway proxy OperationalErrors
  • 8 new regression tests to ensure the filter only suppresses infrastructure noise

v2026.3.18.2

Fixed stale field names in subject grades tab tests.

The subject grades tab test suite (test_subject_grades_tab.py) was referencing multiple fields that were renamed in past migrations (subject_namename, academic_gradeacademic_grade_id, session_yearsession_year_id). This fix updates all stale references to use the current model field names.

Fixes and Improvements

  • Updated test_subject_grades_tab.py to use current model field names across Subject, Student, StudentSubject, AcademicGrade, and Parent model creation calls
  • Fixed URL reverse name from subject_overview to subject-overview
  • Added missing required school FK to Subject, Student, and Parent creation calls

v2026.3.18.1

Fixed stale field name in weekly digest tests.

The admin weekly digest test suite was referencing a field (subject_name) that was renamed to name long ago. This fix updates 7 test references to use the correct field name, preventing test failures.

Fixes and Improvements

  • Updated test_admin_weekly_digest.py to use the current Subject.name field instead of the legacy subject_name

v2026.3.17.2

Reduced false alerts from session monitoring.

NavEd's session monitoring was sending alerts when a user's session expired after a normal password change. This is expected behavior — when you change your password, other active sessions are automatically signed out for security. The monitoring now correctly treats this as routine rather than flagging it as an error.

Fixes and Improvements

  • Session hash mismatch logging downgraded from error to warning (no longer triggers Sentry alerts)
  • Added defensive support for future secret key rotation to prevent unnecessary session invalidation

v2026.3.17.1

The electives page no longer crashes for accounts with missing profiles.

If a student or parent account was set up incompletely — for example, after a demo reset or an interrupted signup — visiting the Electives page would show an error instead of loading. Now, you'll see a clear message asking you to contact your school administrator, and you'll be redirected safely to the home page.

This fix also covers the enrollment form, so saving elective choices is protected too.

Fixes and Improvements

  • Added graceful error handling for student and parent accounts with missing profiles on all electives pages
  • Added logging so school administrators can identify and fix affected accounts

v2026.3.16.1

Google sign-in is now faster for new users.

When a new user signed in with Google for the first time, NavEd was searching every school twice — once looking for an existing account, and again looking for a pending invitation. With 30+ schools on the platform, this added ~300ms of unnecessary delay to the sign-in flow.

Now both checks happen in a single pass through the schools, cutting the lookup time roughly in half.

Fixes and Improvements

  • Consolidated two separate school-scanning loops into one during Google sign-in
  • Updated performance documentation to reflect current school count (~30 active)

v2026.3.15.1

Signing up with Google just got faster.

When a new user signed up through Google, NavEd was checking every school in the system one by one to find their invitation — adding a noticeable delay during the signup process. The more schools on NavEd, the longer the wait.

Now, when you send an invitation, we immediately record which school it belongs to. So when the invitee signs in with Google, we know exactly where to look — no searching required. Signup is now near-instant regardless of how many schools use NavEd.

Fixes and Improvements

  • Eliminated slowdown during Google sign-in for invited users
  • Signup speed no longer degrades as more schools join NavEd

Want to stay updated?

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

Get Started Free